diff --git a/epo_ops/api.py b/epo_ops/api.py index 80eb76d..2ec90e4 100644 --- a/epo_ops/api.py +++ b/epo_ops/api.py @@ -11,7 +11,6 @@ from . import exceptions from .middlewares import Throttler from .models import ( - NETWORK_TIMEOUT, AccessToken, Docdb, Epodoc, @@ -21,6 +20,7 @@ log = logging.getLogger(__name__) +DEFAULT_NETWORK_TIMEOUT = 10.0 class Client(object): __auth_url__ = "https://ops.epo.org/3.2/auth/accesstoken" @@ -35,14 +35,15 @@ class Client(object): __register_path__ = "register" __register_search_path__ = "register/search" - def __init__(self, key, secret, accept_type="xml", middlewares=None): + def __init__(self, key, secret, accept_type="xml", middlewares=None, timeout=DEFAULT_NETWORK_TIMEOUT): self.accept_type = "application/{0}".format(accept_type) self.middlewares = middlewares if middlewares is None: self.middlewares = [Throttler()] - self.request = Request(self.middlewares) + self.request = Request(self.middlewares, timeout) self.key = key self.secret = secret + self.timeout = timeout self._access_token = None def family( @@ -351,7 +352,7 @@ def _acquire_token(self): self.__auth_url__, headers=headers, data=payload, - timeout=NETWORK_TIMEOUT, + timeout=self.timeout, ) response.raise_for_status() self._access_token = AccessToken(response) diff --git a/epo_ops/models.py b/epo_ops/models.py index 014e435..f2add30 100644 --- a/epo_ops/models.py +++ b/epo_ops/models.py @@ -10,10 +10,6 @@ log = logging.getLogger(__name__) - -NETWORK_TIMEOUT = 10.0 - - def _prepare_part(part): return "({0})".format(quote(part)) @@ -68,8 +64,9 @@ def is_expired(self): class Request(object): - def __init__(self, middlewares): + def __init__(self, middlewares, timeout=None): self.middlewares = middlewares + self.timeout = timeout self.reset_env() @property @@ -86,10 +83,10 @@ def reset_env(self): self.env.update(self.default_env) def post(self, url, data=None, **kwargs): - return self._request(_post_callback, url, data, **kwargs) + return self._request(self._post_callback, url, data, **kwargs) def get(self, url, data=None, **kwargs): - return self._request(_get_callback, url, data, **kwargs) + return self._request(self._get_callback, url, data, **kwargs) def _request(self, callback, url, data=None, **kwargs): self.reset_env() @@ -111,9 +108,8 @@ def _request(self, callback, url, data=None, **kwargs): return response -def _post_callback(url, data, **kwargs): - return requests.post(url, data, **kwargs, timeout=NETWORK_TIMEOUT) - + def _post_callback(self, url, data, **kwargs): + return requests.post(url, data, **kwargs, timeout=self.timeout) -def _get_callback(url, data, **kwargs): - return requests.get(url, **kwargs, timeout=NETWORK_TIMEOUT) + def _get_callback(self, url, data, **kwargs): + return requests.get(url, **kwargs, timeout=self.timeout)