changeset 1efc9a3e76a5 in modules/stock_package_shipping_sendcloud:default
details:
https://hg.tryton.org/modules/stock_package_shipping_sendcloud?cmd=changeset&node=1efc9a3e76a5
description:
Add timeout configuration for requests
issue10746
review371891002
diffstat:
carrier.py | 12 +++++++-----
doc/configuration.rst | 10 ++++++++++
2 files changed, 17 insertions(+), 5 deletions(-)
diffs (74 lines):
diff -r 9c0c6b7e7317 -r 1efc9a3e76a5 carrier.py
--- a/carrier.py Sat Aug 21 19:38:04 2021 +0200
+++ b/carrier.py Thu Sep 23 10:06:16 2021 +0200
@@ -20,6 +20,8 @@
from .exceptions import SendcloudError
SENDCLOUD_API_URL = 'https://panel.sendcloud.sc/api/v2/'
+TIMEOUT = config.getfloat(
+ 'stock_package_shipping_sendcloud', 'requests_timeout', default=300)
def sendcloud_api(func):
@@ -90,7 +92,7 @@
return addresses
response = requests.get(
SENDCLOUD_API_URL + 'user/addresses/sender',
- auth=self.auth)
+ auth=self.auth, timeout=TIMEOUT)
response.raise_for_status()
addresses = response.json()['sender_addresses']
self._addresses_sender_cache.set(self.id, addresses)
@@ -124,7 +126,7 @@
params['is_return'] = is_return
response = requests.get(
SENDCLOUD_API_URL + 'shipping_methods', params=params,
- auth=self.auth)
+ auth=self.auth, timeout=TIMEOUT)
response.raise_for_status()
methods = response.json()['shipping_methods']
self._shiping_methods_cache.set(key, methods)
@@ -149,7 +151,7 @@
def get_parcel(self, id):
response = requests.get(
SENDCLOUD_API_URL + 'parcels/%s' % id,
- auth=self.auth)
+ auth=self.auth, timeout=TIMEOUT)
response.raise_for_status()
return response.json()['parcel']
@@ -157,7 +159,7 @@
def create_parcels(self, parcels):
response = requests.post(
SENDCLOUD_API_URL + 'parcels', json={'parcels': parcels},
- auth=self.auth)
+ auth=self.auth, timeout=TIMEOUT)
if response.status_code == 400:
msg = response.json()['error']['message']
raise requests.HTTPError(msg, response=response)
@@ -166,7 +168,7 @@
@sendcloud_api
def get_label(self, url):
- response = requests.get(url, auth=self.auth)
+ response = requests.get(url, auth=self.auth, timeout=TIMEOUT)
response.raise_for_status()
return response.content
diff -r 9c0c6b7e7317 -r 1efc9a3e76a5 doc/configuration.rst
--- a/doc/configuration.rst Sat Aug 21 19:38:04 2021 +0200
+++ b/doc/configuration.rst Thu Sep 23 10:06:16 2021 +0200
@@ -25,3 +25,13 @@
methods are kept in the cache.
The default value is: ``60 * 60``.
+
+.. _config-stock_package_shipping_sendcloud.requests_timeout:
+
+```requests_timeout```
+======================
+
+The ``requests_timeout`` defines the time in seconds the module is waiting for
+a response from the Sendcloud server.
+
+The default value is: ``300``.