Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Algorithmia/CLI.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import Algorithmia
import os
from Algorithmia.algo_response import AlgoResponse
from Algorithmia.client import REQUEST_TIMEOUT
import json, re, requests, six
import toml


class CLI():
def __init__(self):
self.client = Algorithmia.client()
Expand Down Expand Up @@ -102,7 +102,7 @@ def runalgo(self, options, client):

if(content != None):
result = AlgoResponse.create_algo_response(requests.post(url, data=algo_input,
headers={'Authorization':key,'Content-Type':content}, params= algo.query_parameters).json())
headers={'Authorization':key,'Content-Type':content}, params= algo.query_parameters, timeout=REQUEST_TIMEOUT).json())

if(result != None):
output = result.result
Expand Down
16 changes: 10 additions & 6 deletions Algorithmia/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import json, re, requests, six
import os

REQUEST_TIMEOUT = 5

class Client(object):
'Algorithmia Common Library'

Expand Down Expand Up @@ -40,6 +42,8 @@ def dir(self, dataUrl):
if dataUrl.startswith('file://'): return LocalDataDirectory(self, dataUrl)
else: return DataDirectory(self, dataUrl)

requests.post(url, data=algo_input,
headers={'Authorization':key,'Content-Type':content}, params= algo.query_parameters, timeout=REQUEST_TIMEOUT).json()
# Used internally to post json to the api and parse json response
def postJsonHelper(self, url, input_object, parse_response_as_json=True, **query_parameters):
headers = {}
Expand All @@ -60,7 +64,7 @@ def postJsonHelper(self, url, input_object, parse_response_as_json=True, **query
input_json = json.dumps(input_object).encode('utf-8')
headers['Content-Type'] = 'application/json'

response = requests.post(self.apiAddress + url, data=input_json, headers=headers, params=query_parameters)
response = requests.post(self.apiAddress + url, data=input_json, headers=headers, params=query_parameters, timeout=REQUEST_TIMEOUT)

if parse_response_as_json:
return response.json()
Expand All @@ -71,33 +75,33 @@ def getHelper(self, url, **query_parameters):
headers = {}
if self.apiKey is not None:
headers['Authorization'] = self.apiKey
return requests.get(self.apiAddress + url, headers=headers, params=query_parameters)
return requests.get(self.apiAddress + url, headers=headers, params=query_parameters, timeout=REQUEST_TIMEOUT)

def patchHelper(self, url, params):
headers = {'content-type': 'application/json'}
if self.apiKey is not None:
headers['Authorization'] = self.apiKey
return requests.patch(self.apiAddress + url, headers=headers, data=json.dumps(params))
return requests.patch(self.apiAddress + url, headers=headers, data=json.dumps(params), timeout=REQUEST_TIMEOUT)

# Used internally to get http head result
def headHelper(self, url):
headers = {}
if self.apiKey is not None:
headers['Authorization'] = self.apiKey
return requests.head(self.apiAddress + url, headers=headers)
return requests.head(self.apiAddress + url, headers=headers, timeout=REQUEST_TIMEOUT)

# Used internally to http put a file
def putHelper(self, url, data):
headers = {}
if self.apiKey is not None:
headers['Authorization'] = self.apiKey
response = requests.put(self.apiAddress + url, data=data, headers=headers)
response = requests.put(self.apiAddress + url, data=data, headers=headers, timeout=REQUEST_TIMEOUT)
return response.json()

# Used internally to http delete a file
def deleteHelper(self, url):
headers = {}
if self.apiKey is not None:
headers['Authorization'] = self.apiKey
response = requests.delete(self.apiAddress + url, headers=headers)
response = requests.delete(self.apiAddress + url, headers=headers, timeout=REQUEST_TIMEOUT)
return response.json()
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
'console_scripts': ['algo = Algorithmia.__main__:main']
},
install_requires=[
'requests',
'requests>=2.4.0',
'six',
'enum34',
'toml',
Expand Down