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.
- {python3_commons-0.6.1/src/python3_commons.egg-info → python3_commons-0.6.3}/PKG-INFO +5 -4
- {python3_commons-0.6.1 → python3_commons-0.6.3}/pyproject.toml +4 -3
- {python3_commons-0.6.1 → python3_commons-0.6.3}/requirements.txt +3 -2
- python3_commons-0.6.3/src/python3_commons/api_client.py +44 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3/src/python3_commons.egg-info}/PKG-INFO +5 -4
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/SOURCES.txt +1 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/requires.txt +3 -2
- {python3_commons-0.6.1 → python3_commons-0.6.3}/.coveragerc +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/.github/workflows/python-publish.yaml +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/.gitignore +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/AUTHORS.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/CHANGELOG.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/LICENSE +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/README.md +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/README.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/Makefile +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/_static/.gitignore +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/authors.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/changelog.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/conf.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/index.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/docs/license.rst +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/requirements_dev.txt +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/requirements_test.txt +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/setup.cfg +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/setup.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/__init__.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/audit.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/conf.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/db.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/fs.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/helpers.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/logging/__init__.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/logging/filters.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/logging/formatters.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/object_storage.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/__init__.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/json.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/msgpack.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons/serializers/msgspec.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/dependency_links.txt +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/top_level.txt +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/conftest.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_audit.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_helpers.py +0 -0
- {python3_commons-0.6.1 → python3_commons-0.6.3}/tests/test_msgpack.py +0 -0
- {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
|
+
Metadata-Version: 2.2
|
2
2
|
Name: python3-commons
|
3
|
-
Version: 0.6.
|
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.
|
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.
|
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.
|
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.
|
23
|
+
"minio==7.2.15",
|
23
24
|
"msgpack==1.1.0",
|
24
25
|
"msgspec==0.19.0",
|
25
|
-
"pydantic[email]==2.10.
|
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
|
@@ -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
|
+
Metadata-Version: 2.2
|
2
2
|
Name: python3-commons
|
3
|
-
Version: 0.6.
|
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.
|
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.
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
{python3_commons-0.6.1 → python3_commons-0.6.3}/src/python3_commons.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|