Skip to content

Commit 6e6dee8

Browse files
committed
added a retry mechanic to PostJsonHelper to avoid 400 error issues
1 parent 5e2a8a8 commit 6e6dee8

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

Algorithmia/algorithm.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def publish(self, details={}, settings={}, version_info={}, source={}, scmsCrede
106106
url = "/v1/algorithms/" + self.username + "/" + self.algoname + "/versions"
107107
publish_parameters = {"details": details, "settings": settings,
108108
"version_info": version_info, "source": source, "scmsCredentials": scmsCredentials}
109-
api_response = self.client.postJsonHelper(url, publish_parameters, parse_response_as_json=True)
109+
api_response = self.client.postJsonHelper(url, publish_parameters, parse_response_as_json=True, retry=True)
110110
return api_response
111111

112112
def get_builds(self, limit=56, marker=None):
@@ -180,7 +180,7 @@ def versions(self, limit=None, marker=None, published=None, callable=None):
180180
def compile(self):
181181
# Compile algorithm
182182
url = '/v1/algorithms/' + self.username + '/' + self.algoname + '/compile'
183-
response = self.client.postJsonHelper(url, {}, parse_response_as_json=True)
183+
response = self.client.postJsonHelper(url, {}, parse_response_as_json=True, retry=True)
184184
return response
185185

186186
# Pipe an input into this algorithm

Algorithmia/client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from time import time
1717

1818

19-
2019
class Client(object):
2120
'Algorithmia Common Library'
2221

@@ -231,7 +230,7 @@ def report_insights(self, insights):
231230
return Insights(insights)
232231

233232
# Used internally to post json to the api and parse json response
234-
def postJsonHelper(self, url, input_object, parse_response_as_json=True, **query_parameters):
233+
def postJsonHelper(self, url, input_object, parse_response_as_json=True, retry=False, **query_parameters):
235234
headers = {}
236235
if self.apiKey is not None:
237236
headers['Authorization'] = self.apiKey
@@ -263,6 +262,8 @@ def postJsonHelper(self, url, input_object, parse_response_as_json=True, **query
263262
return response
264263
else:
265264
return response
265+
elif retry:
266+
return self.postJsonHelper(url, input_object, parse_response_as_json, False, **query_parameters)
266267
else:
267268
raise raiseAlgoApiError(response)
268269

@@ -293,7 +294,6 @@ def getJsonHelper(self, url, **query_parameters):
293294
response = response.json()
294295
raise raiseAlgoApiError(response)
295296

296-
297297
def getStreamHelper(self, url, **query_parameters):
298298
headers = {}
299299
if self.apiKey is not None:

0 commit comments

Comments
 (0)