8
8
from Algorithmia .errors import ApiError , ApiInternalError , raiseAlgoApiError
9
9
from enum import Enum
10
10
from algorithmia_api_client .rest import ApiException
11
- from algorithmia_api_client import CreateRequest , UpdateRequest , VersionRequest , Details , Settings , SettingsMandatory , SettingsPublish , \
11
+ from algorithmia_api_client import CreateRequest , UpdateRequest , VersionRequest , Details , Settings , SettingsMandatory , \
12
+ SettingsPublish , \
12
13
CreateRequestVersionInfo , VersionInfo , VersionInfoPublish
13
14
14
- OutputType = Enum ('OutputType' ,'default raw void' )
15
+ OutputType = Enum ('OutputType' , 'default raw void' )
16
+
15
17
16
18
class Algorithm (object ):
17
19
def __init__ (self , client , algoRef ):
@@ -32,7 +34,7 @@ def __init__(self, client, algoRef):
32
34
raise ValueError ('Invalid algorithm URI: ' + algoRef )
33
35
34
36
def set_options (self , timeout = 300 , stdout = False , output = OutputType .default , ** query_parameters ):
35
- self .query_parameters = {'timeout' :timeout , 'stdout' :stdout }
37
+ self .query_parameters = {'timeout' : timeout , 'stdout' : stdout }
36
38
self .output_type = output
37
39
self .query_parameters .update (query_parameters )
38
40
return self
@@ -42,7 +44,8 @@ def create(self, details={}, settings={}, version_info={}):
42
44
detailsObj = Details (** details )
43
45
settingsObj = SettingsMandatory (** settings )
44
46
createRequestVersionInfoObj = CreateRequestVersionInfo (** version_info )
45
- create_parameters = {"name" : self .algoname , "details" : detailsObj , "settings" : settingsObj , "version_info" : createRequestVersionInfoObj }
47
+ create_parameters = {"name" : self .algoname , "details" : detailsObj , "settings" : settingsObj ,
48
+ "version_info" : createRequestVersionInfoObj }
46
49
create_request = CreateRequest (** create_parameters )
47
50
try :
48
51
# Create Algorithm
@@ -57,7 +60,8 @@ def update(self, details={}, settings={}, version_info={}):
57
60
detailsObj = Details (** details )
58
61
settingsObj = Settings (** settings )
59
62
createRequestVersionInfoObj = CreateRequestVersionInfo (** version_info )
60
- update_parameters = {"details" : detailsObj , "settings" : settingsObj , "version_info" : createRequestVersionInfoObj }
63
+ update_parameters = {"details" : detailsObj , "settings" : settingsObj ,
64
+ "version_info" : createRequestVersionInfoObj }
61
65
update_request = UpdateRequest (** update_parameters )
62
66
try :
63
67
# Update Algorithm
@@ -70,9 +74,10 @@ def update(self, details={}, settings={}, version_info={}):
70
74
# Publish an algorithm
71
75
def publish (self , details = {}, settings = {}, version_info = {}):
72
76
publish_parameters = {"details" : details , "settings" : settings , "version_info" : version_info }
73
- url = "/v1/algorithms/" + self .username + "/" + self .algoname + "/versions"
77
+ url = "/v1/algorithms/" + self .username + "/" + self .algoname + "/versions"
74
78
print (publish_parameters )
75
- api_response = self .client .postJsonHelper (url , publish_parameters , parse_response_as_json = True , ** self .query_parameters )
79
+ api_response = self .client .postJsonHelper (url , publish_parameters , parse_response_as_json = True ,
80
+ ** self .query_parameters )
76
81
return api_response
77
82
# except ApiException as e:
78
83
# error_message = json.loads(e.body)
@@ -81,7 +86,8 @@ def publish(self, details={}, settings={}, version_info={}):
81
86
def builds (self , limit = 56 , marker = None ):
82
87
try :
83
88
if marker is not None :
84
- api_response = self .client .manageApi .get_algorithm_builds (self .username , self .algoname , limit = limit , marker = marker )
89
+ api_response = self .client .manageApi .get_algorithm_builds (self .username , self .algoname , limit = limit ,
90
+ marker = marker )
85
91
else :
86
92
api_response = self .client .manageApi .get_algorithm_builds (self .username , self .algoname , limit = limit )
87
93
return api_response
@@ -109,11 +115,10 @@ def get_build_logs(self, build_id):
109
115
raise raiseAlgoApiError (error_message )
110
116
111
117
def build_logs (self ):
112
- url = '/v1/algorithms/' + self .username + '/' + self .algoname + '/builds'
118
+ url = '/v1/algorithms/' + self .username + '/' + self .algoname + '/builds'
113
119
response = json .loads (self .client .getHelper (url ).content .decode ('utf-8' ))
114
120
return response
115
121
116
-
117
122
def get_scm_status (self ):
118
123
try :
119
124
api_response = self .client .manageApi .get_algorithm_scm_connection_status (self .username , self .algoname )
@@ -157,7 +162,6 @@ def versions(self, limit=None, marker=None, published=None, callable=None):
157
162
error_message = json .loads (e .body )
158
163
raise raiseAlgoApiError (error_message )
159
164
160
-
161
165
# Compile an algorithm
162
166
def compile (self ):
163
167
try :
@@ -176,25 +180,26 @@ def pipe(self, input1):
176
180
elif self .output_type == OutputType .void :
177
181
return self ._postVoidOutput (input1 )
178
182
else :
179
- return AlgoResponse .create_algo_response (self .client .postJsonHelper (self .url , input1 , ** self .query_parameters ))
183
+ return AlgoResponse .create_algo_response (
184
+ self .client .postJsonHelper (self .url , input1 , ** self .query_parameters ))
180
185
181
186
def _postRawOutput (self , input1 ):
182
- # Don't parse response as json
183
- self .query_parameters ['output' ] = 'raw'
184
- response = self .client .postJsonHelper (self .url , input1 , parse_response_as_json = False , ** self .query_parameters )
185
- # Check HTTP code and throw error as needed
186
- if response .status_code == 400 :
187
- # Bad request
188
- raise ApiError (response .text )
189
- elif response .status_code == 500 :
190
- raise ApiInternalError (response .text )
191
- else :
192
- return response .text
187
+ # Don't parse response as json
188
+ self .query_parameters ['output' ] = 'raw'
189
+ response = self .client .postJsonHelper (self .url , input1 , parse_response_as_json = False , ** self .query_parameters )
190
+ # Check HTTP code and throw error as needed
191
+ if response .status_code == 400 :
192
+ # Bad request
193
+ raise ApiError (response .text )
194
+ elif response .status_code == 500 :
195
+ raise ApiInternalError (response .text )
196
+ else :
197
+ return response .text
193
198
194
199
def _postVoidOutput (self , input1 ):
195
- self .query_parameters ['output' ] = 'void'
196
- responseJson = self .client .postJsonHelper (self .url , input1 , ** self .query_parameters )
197
- if 'error' in responseJson :
198
- raise ApiError (responseJson ['error' ]['message' ])
199
- else :
200
- return AsyncResponse (responseJson )
200
+ self .query_parameters ['output' ] = 'void'
201
+ responseJson = self .client .postJsonHelper (self .url , input1 , ** self .query_parameters )
202
+ if 'error' in responseJson :
203
+ raise ApiError (responseJson ['error' ]['message' ])
204
+ else :
205
+ return AsyncResponse (responseJson )
0 commit comments