wexample-api 6.1.9__tar.gz → 6.3.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.
Files changed (28) hide show
  1. {wexample_api-6.1.9 → wexample_api-6.3.0}/PKG-INFO +6 -6
  2. {wexample_api-6.1.9 → wexample_api-6.3.0}/README.md +3 -3
  3. {wexample_api-6.1.9 → wexample_api-6.3.0}/pyproject.toml +3 -3
  4. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/common/abstract_gateway.py +5 -6
  5. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/__init__.py +0 -0
  6. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/__pycache__/__init__.py +0 -0
  7. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/common/__init__.py +0 -0
  8. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/common/__pycache__/__init__.py +0 -0
  9. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/common/http_request_payload.py +0 -0
  10. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/const/__init__.py +0 -0
  11. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/const/__pycache__/__init__.py +0 -0
  12. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/const/http.py +0 -0
  13. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/demo/__init__.py +0 -0
  14. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/demo/demo_simple_gateway.py +0 -0
  15. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/enums/__init__.py +0 -0
  16. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/enums/__pycache__/__init__.py +0 -0
  17. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/enums/http.py +0 -0
  18. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/errors/__init__.py +0 -0
  19. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/errors/gateway_authentication_error.py +0 -0
  20. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/errors/gateway_connexion_error.py +0 -0
  21. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/middleware/__init__.py +0 -0
  22. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/models/__init__.py +0 -0
  23. {wexample_api-6.1.9 → wexample_api-6.3.0}/src/wexample_api/py.typed +0 -0
  24. {wexample_api-6.1.9 → wexample_api-6.3.0}/tests/common/__init__.py +0 -0
  25. {wexample_api-6.1.9 → wexample_api-6.3.0}/tests/common/test_http_request_payload.py +0 -0
  26. {wexample_api-6.1.9 → wexample_api-6.3.0}/tests/demo/__init__.py +0 -0
  27. {wexample_api-6.1.9 → wexample_api-6.3.0}/tests/demo/test_demo_simple_gateway.py +0 -0
  28. {wexample_api-6.1.9 → wexample_api-6.3.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.1.9
3
+ Version: 6.3.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>=13.1.0
16
- Requires-Dist: wexample-prompt>=10.2.0
15
+ Requires-Dist: wexample-helpers>=14.2.0
16
+ Requires-Dist: wexample-prompt>=13.0.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.1.9
24
+ Version: 6.3.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: >=13.1.0
108
- - wexample-prompt: >=10.2.0
107
+ - wexample-helpers: >=14.2.0
108
+ - wexample-prompt: >=13.0.0
109
109
 
110
110
  ## Versioning & Compatibility Policy
111
111
 
@@ -1,6 +1,6 @@
1
1
  # api
2
2
 
3
- Version: 6.1.9
3
+ Version: 6.3.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: >=13.1.0
87
- - wexample-prompt: >=10.2.0
86
+ - wexample-helpers: >=14.2.0
87
+ - wexample-prompt: >=13.0.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.1.9"
9
+ version = "6.3.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>=13.1.0",
25
- "wexample-prompt>=10.2.0",
24
+ "wexample-helpers>=14.2.0",
25
+ "wexample-prompt>=13.0.0",
26
26
  ]
27
27
 
28
28
  [project.readme]
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import json
3
4
  import time
4
5
  from collections.abc import Mapping
5
6
  from typing import TYPE_CHECKING, Any
@@ -225,12 +226,6 @@ class AbstractGateway(
225
226
  content_type = ContentType.MULTIPART.value
226
227
  payload.headers.pop(Header.CONTENT_TYPE.value, None)
227
228
 
228
- if payload.data is not None:
229
- if isinstance(payload.data, bytes):
230
- self.io.log(f"Sending binary payload ({len(payload.data)} bytes)")
231
- else:
232
- self.io.log(f"Sending {type(payload.data).__name__} payload")
233
-
234
229
  request_kwargs: dict[str, Any] = {
235
230
  "method": payload.method.value,
236
231
  "url": payload.url,
@@ -334,6 +329,10 @@ class AbstractGateway(
334
329
  except (ValueError, AttributeError):
335
330
  if response.text:
336
331
  message = response.text
332
+ # GitLab returns a nested dict (e.g. validation errors) under "message";
333
+ # keep the full content but as a string so it can flow through exceptions.
334
+ if not isinstance(message, str):
335
+ message = json.dumps(message, default=str)
337
336
  return message
338
337
 
339
338
  def _get_header_value(