From 93214598901c14fa05ce11810ece2162e5251a33 Mon Sep 17 00:00:00 2001 From: jsu Date: Mon, 27 Apr 2020 16:16:02 -0700 Subject: [PATCH 1/2] add tenacity.retry --- pytaboola/client.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pytaboola/client.py b/pytaboola/client.py index 5c4d768..a2f314c 100644 --- a/pytaboola/client.py +++ b/pytaboola/client.py @@ -1,6 +1,7 @@ import json import logging import requests +import tenacity from pytaboola.errors import Unauthorized from pytaboola.utils import parse_response @@ -90,6 +91,12 @@ def authorization_header(self): def token_details(self): return self.execute('GET', 'backstage/api/1.0/token-details/') + @tenacity.retry( + stop=tenacity.stop_after_attempt(6), + wait=tenacity.wait_exponential(multiplier=1, exp_base=2), + retry=tenacity.retry_if_exception_type((ReadTimeout, ConnectTimeout)), + before_sleep=tenacity.before_sleep_log(logger, logging.INFO), + ) def execute(self, method, uri, query_params=None, allow_refresh=True, raw=False, authenticated=True, **payload): From 2c815ace03b6ce6d2a25f62194015e6def21789c Mon Sep 17 00:00:00 2001 From: jsu Date: Mon, 27 Apr 2020 16:27:30 -0700 Subject: [PATCH 2/2] add exceptions --- pytaboola/client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pytaboola/client.py b/pytaboola/client.py index a2f314c..bfcfa09 100644 --- a/pytaboola/client.py +++ b/pytaboola/client.py @@ -2,6 +2,7 @@ import logging import requests import tenacity +from requests.exceptions import ReadTimeout, ConnectTimeout from pytaboola.errors import Unauthorized from pytaboola.utils import parse_response