python3-commons 0.6.1__tar.gz → 0.6.3__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 (47) hide show
  1. {python3_commons-0.6.1/src/python3_commons.egg-info → python3_commons-0.6.3}/PKG-INFO +5 -4
  2. {python3_commons-0.6.1 → python3_commons-0.6.3}/pyproject.toml +4 -3
  3. {python3_commons-0.6.1 → python3_commons-0.6.3}/requirements.txt +3 -2
  4. python3_commons-0.6.3/src/python3_commons/api_client.py +44 -0
  5. {python3_commons-0.6.1 → python3_commons-0.6.3/src/python3_commons.egg-info}/PKG-INFO +5 -4
  6. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/SOURCES.txt +1 -0
  7. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/requires.txt +3 -2
  8. {python3_commons-0.6.1 → python3_commons-0.6.3}/.coveragerc +0 -0
  9. {python3_commons-0.6.1 → python3_commons-0.6.3}/.github/workflows/python-publish.yaml +0 -0
  10. {python3_commons-0.6.1 → python3_commons-0.6.3}/.gitignore +0 -0
  11. {python3_commons-0.6.1 → python3_commons-0.6.3}/AUTHORS.rst +0 -0
  12. {python3_commons-0.6.1 → python3_commons-0.6.3}/CHANGELOG.rst +0 -0
  13. {python3_commons-0.6.1 → python3_commons-0.6.3}/LICENSE +0 -0
  14. {python3_commons-0.6.1 → python3_commons-0.6.3}/README.md +0 -0
  15. {python3_commons-0.6.1 → python3_commons-0.6.3}/README.rst +0 -0
  16. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/Makefile +0 -0
  17. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/_static/.gitignore +0 -0
  18. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/authors.rst +0 -0
  19. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/changelog.rst +0 -0
  20. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/conf.py +0 -0
  21. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/index.rst +0 -0
  22. {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/license.rst +0 -0
  23. {python3_commons-0.6.1 → python3_commons-0.6.3}/requirements_dev.txt +0 -0
  24. {python3_commons-0.6.1 → python3_commons-0.6.3}/requirements_test.txt +0 -0
  25. {python3_commons-0.6.1 → python3_commons-0.6.3}/setup.cfg +0 -0
  26. {python3_commons-0.6.1 → python3_commons-0.6.3}/setup.py +0 -0
  27. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/__init__.py +0 -0
  28. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/audit.py +0 -0
  29. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/conf.py +0 -0
  30. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/db.py +0 -0
  31. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/fs.py +0 -0
  32. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/helpers.py +0 -0
  33. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/logging/__init__.py +0 -0
  34. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/logging/filters.py +0 -0
  35. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/logging/formatters.py +0 -0
  36. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/object_storage.py +0 -0
  37. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/__init__.py +0 -0
  38. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/json.py +0 -0
  39. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/msgpack.py +0 -0
  40. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/msgspec.py +0 -0
  41. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/dependency_links.txt +0 -0
  42. {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/top_level.txt +0 -0
  43. {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/conftest.py +0 -0
  44. {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_audit.py +0 -0
  45. {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_helpers.py +0 -0
  46. {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_msgpack.py +0 -0
  47. {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_msgspec.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: python3-commons
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
6
  License: gpl-3
@@ -12,12 +12,13 @@ Requires-Python: >=3.13
12
12
  Description-Content-Type: text/x-rst
13
13
  License-File: LICENSE
14
14
  License-File: AUTHORS.rst
15
+ Requires-Dist: aiohttp==3.11.11
15
16
  Requires-Dist: asyncpg==0.30.0
16
17
  Requires-Dist: lxml==5.3.0
17
- Requires-Dist: minio==7.2.13
18
+ Requires-Dist: minio==7.2.15
18
19
  Requires-Dist: msgpack==1.1.0
19
20
  Requires-Dist: msgspec==0.19.0
20
- Requires-Dist: pydantic[email]==2.10.4
21
+ Requires-Dist: pydantic[email]==2.10.6
21
22
  Requires-Dist: pydantic-settings==2.7.1
22
23
  Requires-Dist: zeep==4.3.1
23
24
  Provides-Extra: testing
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python3-commons"
7
- version = "0.6.1"
7
+ version = "0.6.3"
8
8
  description = "Re-usable Python3 code"
9
9
  authors = [
10
10
  {name = "Oleg Korsak", email = "kamikaze.is.waiting.you@gmail.com"}
@@ -17,12 +17,13 @@ classifiers = [
17
17
  ]
18
18
  keywords = []
19
19
  dependencies = [
20
+ "aiohttp==3.11.11",
20
21
  "asyncpg==0.30.0",
21
22
  "lxml==5.3.0",
22
- "minio==7.2.13",
23
+ "minio==7.2.15",
23
24
  "msgpack==1.1.0",
24
25
  "msgspec==0.19.0",
25
- "pydantic[email]==2.10.4",
26
+ "pydantic[email]==2.10.6",
26
27
  "pydantic-settings==2.7.1",
27
28
  "zeep==4.3.1"
28
29
  # Replace msgspec Git dependency for PyPI compatibility, consider releasing
@@ -1,8 +1,9 @@
1
+ aiohttp==3.11.11
1
2
  asyncpg==0.30.0
2
3
  lxml==5.3.0
3
- minio==7.2.13
4
+ minio==7.2.15
4
5
  msgpack==1.1.0
5
6
  msgspec==0.19.0
6
- pydantic[email]==2.10.4
7
+ pydantic[email]==2.10.6
7
8
  pydantic-settings==2.7.1
8
9
  zeep==4.3.1
@@ -0,0 +1,44 @@
1
+ from contextlib import asynccontextmanager
2
+ from datetime import datetime, UTC
3
+ from typing import Literal, Mapping
4
+ from urllib.parse import urlencode
5
+
6
+ import aiohttp
7
+ from pydantic import HttpUrl
8
+
9
+ from python3_commons import audit
10
+ from python3_commons.conf import s3_settings
11
+ from python3_commons.helpers import request_to_curl
12
+
13
+
14
+ @asynccontextmanager
15
+ async def request(
16
+ base_url: HttpUrl,
17
+ uri: str,
18
+ params: Mapping | None = None,
19
+ method: Literal['get', 'post', 'patch', 'put', 'delete'] = 'get',
20
+ audit_name: str | None = None,
21
+ ):
22
+ now = datetime.now(tz=UTC)
23
+ date_path = now.strftime('%Y/%m/%d')
24
+ timestamp = now.strftime('%H%M%S_%f')
25
+ uri_path = uri[:-1] if uri.endswith('/') else uri
26
+ uri_path = uri_path[1:] if uri_path.startswith('/') else uri_path
27
+ url = f'{base_url}{uri}'
28
+
29
+ if params:
30
+ url_with_params = f'{url}?{urlencode(params)}'
31
+
32
+ if audit_name:
33
+ curl_request = request_to_curl(url_with_params, method, {}, None)
34
+ await audit.write_audit_data(
35
+ s3_settings,
36
+ f'{date_path}/{audit_name}/{uri_path}/{method}_{timestamp}_request.txt',
37
+ curl_request.encode('utf-8')
38
+ )
39
+
40
+ async with aiohttp.ClientSession() as client:
41
+ client_method = getattr(client, method)
42
+
43
+ async with client_method(url, params=params) as response:
44
+ yield response
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: python3-commons
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
6
  License: gpl-3
@@ -12,12 +12,13 @@ Requires-Python: >=3.13
12
12
  Description-Content-Type: text/x-rst
13
13
  License-File: LICENSE
14
14
  License-File: AUTHORS.rst
15
+ Requires-Dist: aiohttp==3.11.11
15
16
  Requires-Dist: asyncpg==0.30.0
16
17
  Requires-Dist: lxml==5.3.0
17
- Requires-Dist: minio==7.2.13
18
+ Requires-Dist: minio==7.2.15
18
19
  Requires-Dist: msgpack==1.1.0
19
20
  Requires-Dist: msgspec==0.19.0
20
- Requires-Dist: pydantic[email]==2.10.4
21
+ Requires-Dist: pydantic[email]==2.10.6
21
22
  Requires-Dist: pydantic-settings==2.7.1
22
23
  Requires-Dist: zeep==4.3.1
23
24
  Provides-Extra: testing
@@ -19,6 +19,7 @@ docs/index.rst
19
19
  docs/license.rst
20
20
  docs/_static/.gitignore
21
21
  src/python3_commons/__init__.py
22
+ src/python3_commons/api_client.py
22
23
  src/python3_commons/audit.py
23
24
  src/python3_commons/conf.py
24
25
  src/python3_commons/db.py
@@ -1,9 +1,10 @@
1
+ aiohttp==3.11.11
1
2
  asyncpg==0.30.0
2
3
  lxml==5.3.0
3
- minio==7.2.13
4
+ minio==7.2.15
4
5
  msgpack==1.1.0
5
6
  msgspec==0.19.0
6
- pydantic[email]==2.10.4
7
+ pydantic[email]==2.10.6
7
8
  pydantic-settings==2.7.1
8
9
  zeep==4.3.1
9
10
 
File without changes