vtexpy 0.0.0b33__tar.gz → 0.0.0b34__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of vtexpy might be problematic. Click here for more details.

Files changed (31) hide show
  1. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/PKG-INFO +1 -1
  2. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/pyproject.toml +1 -1
  3. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/base.py +19 -11
  4. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/LICENSE +0 -0
  5. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/README.md +0 -0
  6. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/__init__.py +0 -0
  7. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/__init__.py +0 -0
  8. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/catalog.py +0 -0
  9. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/checkout.py +0 -0
  10. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/custom.py +0 -0
  11. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/license_manager.py +0 -0
  12. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/logistics.py +0 -0
  13. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/master_data.py +0 -0
  14. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/orders.py +0 -0
  15. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/payments_gateway.py +0 -0
  16. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/pricing.py +0 -0
  17. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/promotions_and_taxes.py +0 -0
  18. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/types/__init__.py +0 -0
  19. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/types/catalog.py +0 -0
  20. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/types/generic.py +0 -0
  21. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_api/types/license_manager.py +0 -0
  22. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_config.py +0 -0
  23. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_constants.py +0 -0
  24. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_dto.py +0 -0
  25. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_exceptions.py +0 -0
  26. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_logging.py +0 -0
  27. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_sentinels.py +0 -0
  28. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_types.py +0 -0
  29. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_utils.py +0 -0
  30. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/_vtex.py +0 -0
  31. {vtexpy-0.0.0b33 → vtexpy-0.0.0b34}/vtex/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vtexpy
3
- Version: 0.0.0b33
3
+ Version: 0.0.0b34
4
4
  Summary: Unofficial VTEX API's Python SDK
5
5
  Home-page: https://github.com/lvieirajr/vtex-python
6
6
  License: Apache
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
  [tool.poetry]
6
6
  name = "vtexpy"
7
7
  description = "Unofficial VTEX API's Python SDK"
8
- version = "0.0.0b33"
8
+ version = "0.0.0b34"
9
9
  readme = "README.md"
10
10
  license = "Apache"
11
11
  authors = [
@@ -18,7 +18,7 @@ from httpx._types import (
18
18
  RequestData,
19
19
  RequestFiles,
20
20
  )
21
- from limits import RateLimitItem, storage, strategies
21
+ from limits import RateLimitItem, errors, storage, strategies
22
22
  from tenacity import (
23
23
  retry,
24
24
  retry_if_exception_type,
@@ -48,7 +48,7 @@ class BaseAPI:
48
48
  parent=self.client.logger,
49
49
  )
50
50
 
51
- def _request(
51
+ def _request( # noqa: C901
52
52
  self,
53
53
  method: HTTPMethodType,
54
54
  endpoint: str,
@@ -92,7 +92,10 @@ class BaseAPI:
92
92
  rate_limit and rate_limit_key and request_config.rate_limit_storage_url
93
93
  )
94
94
  else strategies.MovingWindowRateLimiter(
95
- storage.storage_from_string(request_config.rate_limit_storage_url),
95
+ storage.storage_from_string(
96
+ request_config.rate_limit_storage_url,
97
+ wrap_exceptions=True,
98
+ ),
96
99
  )
97
100
  )
98
101
 
@@ -122,13 +125,15 @@ class BaseAPI:
122
125
  def send_vtex_request() -> Response:
123
126
  with Client(timeout=request_config.timeout) as client:
124
127
  with disable_loggers(["httpcore", "httpx"]):
125
- while (
126
- rate_limit
127
- and rate_limit_key
128
- and rate_limiter
129
- and not rate_limiter.test(rate_limit, rate_limit_key)
130
- ):
131
- sleep(1)
128
+ if rate_limit and rate_limit_key and rate_limiter:
129
+ while True:
130
+ try:
131
+ if rate_limiter.test(rate_limit, rate_limit_key):
132
+ break
133
+ except errors.StorageError:
134
+ pass
135
+
136
+ sleep(1)
132
137
 
133
138
  try:
134
139
  response = client.request(
@@ -144,7 +149,10 @@ class BaseAPI:
144
149
  )
145
150
  finally:
146
151
  if rate_limit and rate_limit_key and rate_limiter:
147
- rate_limiter.hit(rate_limit, rate_limit_key)
152
+ try:
153
+ rate_limiter.hit(rate_limit, rate_limit_key)
154
+ except errors.StorageError:
155
+ pass
148
156
 
149
157
  response.request.headers = Headers(
150
158
  redact_headers(dict(response.request.headers)),
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes