File tree Expand file tree Collapse file tree 3 files changed +52
-1
lines changed Expand file tree Collapse file tree 3 files changed +52
-1
lines changed Original file line number Diff line number Diff line change 11import logging
2+ import requests
23import time
34from typing import TYPE_CHECKING , Optional
45
@@ -31,6 +32,7 @@ class Task(DbObject):
3132 name = Field .String ("name" )
3233 status = Field .String ("status" )
3334 completion_percentage = Field .Float ("completion_percentage" )
35+ result = Field .String ("result" )
3436 _user : Optional ["User" ] = None
3537
3638 # Relationships
@@ -65,3 +67,13 @@ def wait_till_done(self, timeout_seconds=300) -> None:
6567 timeout_seconds -= check_frequency
6668 time .sleep (sleep_time_seconds )
6769 self .refresh ()
70+
71+ def errors (self ):
72+ """ Downloads the result file from Task
73+ """
74+ if self .status == "FAILED" and self .result :
75+ response = requests .get (self .result )
76+ response .raise_for_status ()
77+ data = response .json ()
78+ return data .get ('error' )
79+ return None
Original file line number Diff line number Diff line change @@ -11,4 +11,4 @@ ignore_missing_imports = True
1111ignore_errors = True
1212
1313[mypy-labelbox]
14- ignore_errors = True
14+ ignore_errors = True
Original file line number Diff line number Diff line change 1+ from labelbox import DataRow
2+ from labelbox .schema .data_row_metadata import DataRowMetadataField
3+
4+ EMBEDDING_SCHEMA_ID = "ckpyije740000yxdk81pbgjdc"
5+
6+
7+ def test_task_errors (dataset , image_url ):
8+ client = dataset .client
9+ embeddings = [0.0 ] * 128
10+ task = dataset .create_data_rows ([
11+ {
12+ DataRow .row_data :
13+ image_url ,
14+ DataRow .metadata_fields : [
15+ DataRowMetadataField (schema_id = EMBEDDING_SCHEMA_ID ,
16+ value = embeddings ),
17+ DataRowMetadataField (schema_id = EMBEDDING_SCHEMA_ID ,
18+ value = embeddings )
19+ ]
20+ },
21+ ])
22+ assert task in client .get_user ().created_tasks ()
23+ task .wait_till_done ()
24+ assert task .status == "FAILED"
25+ assert task .errors () is not None
26+ assert 'message' in task .errors ()
27+
28+
29+ def test_task_success (dataset , image_url ):
30+ client = dataset .client
31+ task = dataset .create_data_rows ([
32+ {
33+ DataRow .row_data : image_url ,
34+ },
35+ ])
36+ assert task in client .get_user ().created_tasks ()
37+ task .wait_till_done ()
38+ assert task .status == "COMPLETE"
39+ assert task .errors () is None
You can’t perform that action at this time.
0 commit comments