@@ -71,9 +71,10 @@ def __init__(self,
7171 'X-User-Agent' : f'python-sdk { SDK_VERSION } '
7272 }
7373
74+ #TODO: Add exponential backoff so we don'tt overwhelm the api
7475 @retry .Retry (predicate = retry .if_exception_type (
7576 labelbox .exceptions .InternalServerError ))
76- def execute (self , query , params = None , timeout = 10 .0 ):
77+ def execute (self , query , params = None , timeout = 30 .0 ):
7778 """ Sends a request to the server for the execution of the
7879 given query.
7980
@@ -126,25 +127,23 @@ def convert_value(value):
126127 logger .debug ("Response: %s" , response .text )
127128 except requests .exceptions .Timeout as e :
128129 raise labelbox .exceptions .TimeoutError (str (e ))
129-
130130 except requests .exceptions .RequestException as e :
131131 logger .error ("Unknown error: %s" , str (e ))
132132 raise labelbox .exceptions .NetworkError (e )
133-
134133 except Exception as e :
135134 raise labelbox .exceptions .LabelboxError (
136135 "Unknown error during Client.query(): " + str (e ), e )
137-
138136 try :
139137 r_json = response .json ()
140138 except :
141- error_502 = '502 Bad Gateway'
142- if error_502 in response .text :
143- raise labelbox .exceptions .InternalServerError (error_502 )
144139 if "upstream connect error or disconnect/reset before headers" \
145140 in response .text :
146141 raise labelbox .exceptions .InternalServerError (
147142 "Connection reset" )
143+ elif response .status_code == 502 :
144+ error_502 = '502 Bad Gateway'
145+ raise labelbox .exceptions .InternalServerError (error_502 )
146+
148147 raise labelbox .exceptions .LabelboxError (
149148 "Failed to parse response as JSON: %s" % response .text )
150149
@@ -189,6 +188,7 @@ def check_errors(keywords, *path):
189188
190189 # Check if API limit was exceeded
191190 response_msg = r_json .get ("message" , "" )
191+
192192 if response_msg .startswith ("You have exceeded" ):
193193 raise labelbox .exceptions .ApiLimitError (response_msg )
194194
@@ -292,7 +292,6 @@ def upload_data(self,
292292 "1" : (filename , content , content_type ) if
293293 (filename and content_type ) else content
294294 })
295-
296295 try :
297296 file_data = response .json ().get ("data" , None )
298297 except ValueError as e : # response is not valid JSON
0 commit comments