@@ -22,8 +22,9 @@ class SingularClient(object):
2222 - https://developers.singular.net/v2.0/reference
2323 """
2424 BASE_API_URL = "https://api.singular.net/api/"
25+ DEFAULT_HTTP_TIMEOUT = 60 * 5
2526
26- def __init__ (self , api_key ):
27+ def __init__ (self , api_key , http_timeout = DEFAULT_HTTP_TIMEOUT ):
2728 self .api_key = api_key
2829 session = requests .Session ()
2930 retry = Retry (
@@ -35,6 +36,7 @@ def __init__(self, api_key):
3536 adapter = HTTPAdapter (max_retries = retry )
3637 session .mount ('http://' , adapter )
3738 session .mount ('https://' , adapter )
39+ self .default_http_timeout = http_timeout
3840 self .session = session
3941
4042 def run_report (self , start_date , end_date ,
@@ -353,7 +355,10 @@ def __api_request(self, method, endpoint, **kwargs):
353355 headers = {"Authorization" : self .api_key ,
354356 'User-Agent' : 'Singular API Client v%s' % __version__ }
355357
356- response = self .session .request (method , url , headers = headers , ** kwargs )
358+ response = self .session .request (method , url ,
359+ headers = headers ,
360+ timeout = self .default_http_timeout ,
361+ ** kwargs )
357362
358363 logger .info ("%(method)s %(url)s, kwargs = %(kwargs)s --> code = %(code)s" %
359364 dict (method = method , url = url , kwargs = repr (kwargs ), code = response .status_code ))
0 commit comments