Skip to content

Commit 1ad1ed2

Browse files
committed
Move retry decorators from APIBaseClient to LotsClient and AssetsClient
1 parent b72d6e8 commit 1ad1ed2

3 files changed

Lines changed: 34 additions & 13 deletions

File tree

openprocurement_client/clients.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from retrying import retry
1010
from munch import munchify
1111

12-
from .exceptions import RequestFailed
1312
from openprocurement_client.resources.document_service import \
1413
DocumentServiceClient
1514

@@ -78,10 +77,6 @@ def _delete_resource_item(self, url, headers=None):
7877
return munchify(loads(response_item.text))
7978
raise InvalidResponse(response_item)
8079

81-
@retry(wait_exponential_multiplier=200,
82-
wait_exponential_max=1200,
83-
stop_max_delay=45000,
84-
retry_on_exception=lambda exc: isinstance(exc, RequestFailed))
8580
def _get_resource_item(self, url, headers=None):
8681
_headers = self.headers.copy()
8782
_headers.update(headers or {})
@@ -107,10 +102,6 @@ def _get_resource_items(self, params=None, feed='changes'):
107102

108103
raise InvalidResponse(response)
109104

110-
@retry(wait_exponential_multiplier=200,
111-
wait_exponential_max=1200,
112-
stop_max_delay=45000,
113-
retry_on_exception=lambda exc: isinstance(exc, RequestFailed))
114105
def _patch_resource_item(self, url, payload, headers=None):
115106
_headers = self.headers.copy()
116107
_headers.update(headers or {})

openprocurement_client/resources/assets.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# -*- coding: utf-8 -*-
2+
from retrying import retry
3+
24
from openprocurement_client.clients import APIResourceClient
35
from openprocurement_client.constants import ASSETS
6+
from openprocurement_client.exceptions import RequestFailed
47

58

69
class AssetsClient(APIResourceClient):
@@ -12,6 +15,18 @@ def __init__(self, *args, **kwargs):
1215
super(AssetsClient, self).__init__(resource=self.resource, *args,
1316
**kwargs)
1417

15-
get_asset = APIResourceClient.get_resource_item
16-
1718
get_assets = APIResourceClient.get_resource_items
19+
20+
@retry(wait_exponential_multiplier=200,
21+
wait_exponential_max=1200,
22+
stop_max_delay=45000,
23+
retry_on_exception=lambda exc: isinstance(exc, RequestFailed))
24+
def patch_asset(self, asset_id, patch_data):
25+
return self.patch_resource_item(asset_id, patch_data)
26+
27+
@retry(wait_exponential_multiplier=200,
28+
wait_exponential_max=1200,
29+
stop_max_delay=45000,
30+
retry_on_exception=lambda exc: isinstance(exc, RequestFailed))
31+
def get_asset(self, asset_id):
32+
return self.get_resource_item(asset_id)

openprocurement_client/resources/lots.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# -*- coding: utf-8 -*-
2+
from retrying import retry
3+
24
from openprocurement_client.clients import APIResourceClient
35
from openprocurement_client.constants import LOTS
6+
from openprocurement_client.exceptions import RequestFailed
47

58

69
class LotsClient(APIResourceClient):
@@ -12,6 +15,18 @@ def __init__(self, *args, **kwargs):
1215
super(LotsClient, self).__init__(resource=self.resource, *args,
1316
**kwargs)
1417

15-
get_lot = APIResourceClient.get_resource_item
16-
1718
get_lots = APIResourceClient.get_resource_items
19+
20+
@retry(wait_exponential_multiplier=200,
21+
wait_exponential_max=1200,
22+
stop_max_delay=45000,
23+
retry_on_exception=lambda exc: isinstance(exc, RequestFailed))
24+
def patch_lot(self, lot_id, patch_data):
25+
return self.patch_resource_item(lot_id, patch_data)
26+
27+
@retry(wait_exponential_multiplier=200,
28+
wait_exponential_max=1200,
29+
stop_max_delay=45000,
30+
retry_on_exception=lambda exc: isinstance(exc, RequestFailed))
31+
def get_lot(self, lot_id):
32+
return self.get_resource_item(lot_id)

0 commit comments

Comments
 (0)