Skip to content

Commit bd2ed6b

Browse files
committed
feat: Make network timeout configurable
This also increases the default to 30 seconds
1 parent 54a7661 commit bd2ed6b

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

epo_ops/api.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from . import exceptions
1212
from .middlewares import Throttler
1313
from .models import (
14-
NETWORK_TIMEOUT,
1514
AccessToken,
1615
Docdb,
1716
Epodoc,
@@ -21,6 +20,7 @@
2120

2221
log = logging.getLogger(__name__)
2322

23+
DEFAULT_NETWORK_TIMEOUT = 30.0
2424

2525
class Client(object):
2626
__auth_url__ = "https://ops.epo.org/3.2/auth/accesstoken"
@@ -35,14 +35,15 @@ class Client(object):
3535
__register_path__ = "register"
3636
__register_search_path__ = "register/search"
3737

38-
def __init__(self, key, secret, accept_type="xml", middlewares=None):
38+
def __init__(self, key, secret, accept_type="xml", middlewares=None, timeout=DEFAULT_NETWORK_TIMEOUT):
3939
self.accept_type = "application/{0}".format(accept_type)
4040
self.middlewares = middlewares
4141
if middlewares is None:
4242
self.middlewares = [Throttler()]
43-
self.request = Request(self.middlewares)
43+
self.request = Request(self.middlewares, timeout)
4444
self.key = key
4545
self.secret = secret
46+
self.timeout = timeout
4647
self._access_token = None
4748

4849
def family(
@@ -351,7 +352,7 @@ def _acquire_token(self):
351352
self.__auth_url__,
352353
headers=headers,
353354
data=payload,
354-
timeout=NETWORK_TIMEOUT,
355+
timeout=self.timeout,
355356
)
356357
response.raise_for_status()
357358
self._access_token = AccessToken(response)

epo_ops/models.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@
1010

1111
log = logging.getLogger(__name__)
1212

13-
14-
NETWORK_TIMEOUT = 10.0
15-
16-
1713
def _prepare_part(part):
1814
return "({0})".format(quote(part))
1915

@@ -68,8 +64,9 @@ def is_expired(self):
6864

6965

7066
class Request(object):
71-
def __init__(self, middlewares):
67+
def __init__(self, middlewares, timeout=None):
7268
self.middlewares = middlewares
69+
self.timeout = timeout
7370
self.reset_env()
7471

7572
@property
@@ -86,10 +83,10 @@ def reset_env(self):
8683
self.env.update(self.default_env)
8784

8885
def post(self, url, data=None, **kwargs):
89-
return self._request(_post_callback, url, data, **kwargs)
86+
return self._request(self._post_callback, url, data, **kwargs)
9087

9188
def get(self, url, data=None, **kwargs):
92-
return self._request(_get_callback, url, data, **kwargs)
89+
return self._request(self._get_callback, url, data, **kwargs)
9390

9491
def _request(self, callback, url, data=None, **kwargs):
9592
self.reset_env()
@@ -111,9 +108,8 @@ def _request(self, callback, url, data=None, **kwargs):
111108
return response
112109

113110

114-
def _post_callback(url, data, **kwargs):
115-
return requests.post(url, data, **kwargs, timeout=NETWORK_TIMEOUT)
116-
111+
def _post_callback(self, url, data, **kwargs):
112+
return requests.post(url, data, **kwargs, timeout=self.timeout)
117113

118-
def _get_callback(url, data, **kwargs):
119-
return requests.get(url, **kwargs, timeout=NETWORK_TIMEOUT)
114+
def _get_callback(self, url, data, **kwargs):
115+
return requests.get(url, **kwargs, timeout=self.timeout)

0 commit comments

Comments
 (0)