vtexpy 0.0.0b32__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.0b32 → vtexpy-0.0.0b34}/PKG-INFO +1 -1
  2. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/pyproject.toml +1 -1
  3. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/base.py +19 -19
  4. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/orders.py +2 -2
  5. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/payments_gateway.py +1 -1
  6. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/LICENSE +0 -0
  7. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/README.md +0 -0
  8. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/__init__.py +0 -0
  9. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/__init__.py +0 -0
  10. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/catalog.py +0 -0
  11. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/checkout.py +0 -0
  12. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/custom.py +0 -0
  13. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/license_manager.py +0 -0
  14. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/logistics.py +0 -0
  15. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/master_data.py +0 -0
  16. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/pricing.py +0 -0
  17. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/promotions_and_taxes.py +0 -0
  18. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/types/__init__.py +0 -0
  19. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/types/catalog.py +0 -0
  20. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/types/generic.py +0 -0
  21. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_api/types/license_manager.py +0 -0
  22. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_config.py +0 -0
  23. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_constants.py +0 -0
  24. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_dto.py +0 -0
  25. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_exceptions.py +0 -0
  26. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_logging.py +0 -0
  27. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_sentinels.py +0 -0
  28. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_types.py +0 -0
  29. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_utils.py +0 -0
  30. {vtexpy-0.0.0b32 → vtexpy-0.0.0b34}/vtex/_vtex.py +0 -0
  31. {vtexpy-0.0.0b32 → 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.0b32
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.0b32"
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,14 +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)
132
- self.logger.info(f"{rate_limiter} limited {rate_limit_key}")
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)
133
137
 
134
138
  try:
135
139
  response = client.request(
@@ -145,14 +149,10 @@ class BaseAPI:
145
149
  )
146
150
  finally:
147
151
  if rate_limit and rate_limit_key and rate_limiter:
148
- rate_limiter.hit(rate_limit, rate_limit_key)
149
- remaining = rate_limiter.get_window_stats(
150
- rate_limit,
151
- rate_limit_key,
152
- ).remaining
153
- self.logger.info(
154
- f"Remaining requests for {rate_limit_key}: {remaining}",
155
- )
152
+ try:
153
+ rate_limiter.hit(rate_limit, rate_limit_key)
154
+ except errors.StorageError:
155
+ pass
156
156
 
157
157
  response.request.headers = Headers(
158
158
  redact_headers(dict(response.request.headers)),
@@ -88,7 +88,7 @@ class OrdersAPI(BaseAPI):
88
88
  environment=self.ENVIRONMENT,
89
89
  params=params,
90
90
  config=self.client.config.with_overrides(**kwargs),
91
- rate_limit=parse("2900 per minute"),
91
+ rate_limit=parse("1800 per minute"),
92
92
  rate_limit_key=f"{self.client.config.account_name}:orders",
93
93
  response_class=VTEXPaginatedItemsResponse[Any, Any],
94
94
  )
@@ -105,7 +105,7 @@ class OrdersAPI(BaseAPI):
105
105
  endpoint=f"/api/oms/pvt/orders/{order_id}",
106
106
  environment=self.ENVIRONMENT,
107
107
  config=self.client.config.with_overrides(**kwargs),
108
- rate_limit=parse("5900 per minute"),
108
+ rate_limit=parse("5800 per minute"),
109
109
  rate_limit_key=f"{self.client.config.account_name}:orders",
110
110
  response_class=VTEXDataResponse[Any],
111
111
  )
@@ -37,7 +37,7 @@ class PaymentsGatewayAPI(BaseAPI):
37
37
  endpoint=f"/api/pvt/transactions/{transaction_id}/interactions",
38
38
  environment=self.ENVIRONMENT,
39
39
  config=self.client.config.with_overrides(**kwargs),
40
- rate_limit=parse("3900 per minute"),
40
+ rate_limit=parse("3800 per minute"),
41
41
  rate_limit_key=(
42
42
  f"{self.client.config.account_name}:transaction_interactions"
43
43
  ),
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