wexample-api 6.4.0__tar.gz → 6.6.0__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.
- {wexample_api-6.4.0 → wexample_api-6.6.0}/PKG-INFO +6 -6
- {wexample_api-6.4.0 → wexample_api-6.6.0}/README.md +3 -3
- {wexample_api-6.4.0 → wexample_api-6.6.0}/pyproject.toml +3 -3
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/common/abstract_gateway.py +14 -10
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/__pycache__/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/common/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/common/__pycache__/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/common/http_request_payload.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/const/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/const/__pycache__/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/const/http.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/demo/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/demo/demo_simple_gateway.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/enums/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/enums/__pycache__/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/enums/http.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/errors/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/errors/gateway_authentication_error.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/errors/gateway_connexion_error.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/middleware/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/models/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/py.typed +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/tests/common/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/tests/common/test_http_request_payload.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/tests/demo/__init__.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/tests/demo/test_demo_simple_gateway.py +0 -0
- {wexample_api-6.4.0 → wexample_api-6.6.0}/tests/new_architecture/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: wexample-api
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.6.0
|
|
4
4
|
Summary: Some python basic helpers for apis.
|
|
5
5
|
Author-Email: weeger <contact@wexample.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,8 +12,8 @@ Requires-Python: >=3.10
|
|
|
12
12
|
Requires-Dist: attrs>=23.1.0
|
|
13
13
|
Requires-Dist: cattrs>=23.1.0
|
|
14
14
|
Requires-Dist: requests
|
|
15
|
-
Requires-Dist: wexample-helpers>=
|
|
16
|
-
Requires-Dist: wexample-prompt>=13.
|
|
15
|
+
Requires-Dist: wexample-helpers>=17.2.0
|
|
16
|
+
Requires-Dist: wexample-prompt>=13.4.0
|
|
17
17
|
Provides-Extra: dev
|
|
18
18
|
Requires-Dist: pytest; extra == "dev"
|
|
19
19
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -21,7 +21,7 @@ Description-Content-Type: text/markdown
|
|
|
21
21
|
|
|
22
22
|
# api
|
|
23
23
|
|
|
24
|
-
Version: 6.
|
|
24
|
+
Version: 6.6.0
|
|
25
25
|
|
|
26
26
|
Some python basic helpers for apis.
|
|
27
27
|
|
|
@@ -104,8 +104,8 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
104
104
|
- attrs: >=23.1.0
|
|
105
105
|
- cattrs: >=23.1.0
|
|
106
106
|
- requests:
|
|
107
|
-
- wexample-helpers: >=
|
|
108
|
-
- wexample-prompt: >=13.
|
|
107
|
+
- wexample-helpers: >=17.2.0
|
|
108
|
+
- wexample-prompt: >=13.4.0
|
|
109
109
|
|
|
110
110
|
## Versioning & Compatibility Policy
|
|
111
111
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# api
|
|
2
2
|
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.6.0
|
|
4
4
|
|
|
5
5
|
Some python basic helpers for apis.
|
|
6
6
|
|
|
@@ -83,8 +83,8 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
83
83
|
- attrs: >=23.1.0
|
|
84
84
|
- cattrs: >=23.1.0
|
|
85
85
|
- requests:
|
|
86
|
-
- wexample-helpers: >=
|
|
87
|
-
- wexample-prompt: >=13.
|
|
86
|
+
- wexample-helpers: >=17.2.0
|
|
87
|
+
- wexample-prompt: >=13.4.0
|
|
88
88
|
|
|
89
89
|
## Versioning & Compatibility Policy
|
|
90
90
|
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "wexample-api"
|
|
9
|
-
version = "6.
|
|
9
|
+
version = "6.6.0"
|
|
10
10
|
description = "Some python basic helpers for apis."
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "weeger", email = "contact@wexample.com" },
|
|
@@ -21,8 +21,8 @@ dependencies = [
|
|
|
21
21
|
"attrs>=23.1.0",
|
|
22
22
|
"cattrs>=23.1.0",
|
|
23
23
|
"requests",
|
|
24
|
-
"wexample-helpers>=
|
|
25
|
-
"wexample-prompt>=13.
|
|
24
|
+
"wexample-helpers>=17.2.0",
|
|
25
|
+
"wexample-prompt>=13.4.0",
|
|
26
26
|
]
|
|
27
27
|
|
|
28
28
|
[project.readme]
|
|
@@ -17,13 +17,19 @@ from wexample_prompt.mixins.with_io_manager import WithIoManager
|
|
|
17
17
|
from wexample_api.enums.http import ContentType, HttpMethod
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
|
-
from collections.abc import Mapping
|
|
21
|
-
|
|
22
20
|
from wexample_helpers.const.types import StringsList
|
|
23
21
|
|
|
24
22
|
from wexample_api.common.http_request_payload import HttpRequestPayload
|
|
25
23
|
from wexample_api.enums.http import Header
|
|
26
24
|
|
|
25
|
+
_RAW_BODY_CONTENT_TYPES = frozenset(
|
|
26
|
+
{
|
|
27
|
+
ContentType.FORM_URLENCODED.value,
|
|
28
|
+
ContentType.OCTET_STREAM.value,
|
|
29
|
+
ContentType.TEXT.value,
|
|
30
|
+
}
|
|
31
|
+
)
|
|
32
|
+
|
|
27
33
|
|
|
28
34
|
@base_class
|
|
29
35
|
class AbstractGateway(
|
|
@@ -238,11 +244,7 @@ class AbstractGateway(
|
|
|
238
244
|
if files:
|
|
239
245
|
request_kwargs["data"] = data or {}
|
|
240
246
|
request_kwargs["files"] = files
|
|
241
|
-
elif content_type in
|
|
242
|
-
ContentType.FORM_URLENCODED.value,
|
|
243
|
-
ContentType.OCTET_STREAM.value,
|
|
244
|
-
ContentType.TEXT.value,
|
|
245
|
-
}:
|
|
247
|
+
elif content_type in _RAW_BODY_CONTENT_TYPES:
|
|
246
248
|
request_kwargs["data"] = data
|
|
247
249
|
else:
|
|
248
250
|
request_kwargs["json"] = data
|
|
@@ -277,7 +279,7 @@ class AbstractGateway(
|
|
|
277
279
|
exception.response = (
|
|
278
280
|
response # Attach response to exception for debugging
|
|
279
281
|
)
|
|
280
|
-
if raise_exceptions
|
|
282
|
+
if raise_exceptions:
|
|
281
283
|
raise exception
|
|
282
284
|
|
|
283
285
|
return self.handle_api_response(
|
|
@@ -359,8 +361,10 @@ class AbstractGateway(
|
|
|
359
361
|
return raw.split(";", 1)[0].strip().lower() or None
|
|
360
362
|
|
|
361
363
|
def _handle_rate_limiting(self) -> None:
|
|
364
|
+
now = time.time()
|
|
362
365
|
if self.last_request_time is not None:
|
|
363
|
-
elapsed =
|
|
366
|
+
elapsed = now - self.last_request_time
|
|
364
367
|
if elapsed < self.rate_limit_delay:
|
|
365
368
|
time.sleep(self.rate_limit_delay - elapsed)
|
|
366
|
-
|
|
369
|
+
now = time.time()
|
|
370
|
+
self.last_request_time = now
|
|
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
|
{wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/errors/gateway_authentication_error.py
RENAMED
|
File without changes
|
{wexample_api-6.4.0 → wexample_api-6.6.0}/src/wexample_api/errors/gateway_connexion_error.py
RENAMED
|
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
|