python3-commons 0.18.8__tar.gz → 0.18.10__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.18.8/src/python3_commons.egg-info → python3_commons-0.18.10}/PKG-INFO +3 -3
- {python3_commons-0.18.8 → python3_commons-0.18.10}/pyproject.toml +2 -2
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/object_storage.py +14 -13
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/soap_client.py +28 -21
- {python3_commons-0.18.8 → python3_commons-0.18.10/src/python3_commons.egg-info}/PKG-INFO +3 -3
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons.egg-info/requires.txt +2 -2
- {python3_commons-0.18.8 → python3_commons-0.18.10}/uv.lock +31 -31
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.coveragerc +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.devcontainer/Dockerfile +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.devcontainer/devcontainer.json +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.devcontainer/docker-compose.yml +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.env_template +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.github/workflows/checks.yml +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.github/workflows/python-publish.yaml +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.github/workflows/release-on-tag-push.yml +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.gitignore +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.pre-commit-config.yaml +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/.python-version +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/AUTHORS.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/CHANGELOG.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/LICENSE +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/README.md +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/README.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/Makefile +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/_static/.gitignore +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/authors.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/changelog.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/conf.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/index.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/docs/license.rst +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/setup.cfg +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/api_client.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/async_functools.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/audit.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/auth.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/cache.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/conf.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/helpers.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/models/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/models/auth.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/models/common.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/models/rbac.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/db/models/users.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/exceptions.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/fs.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/generators.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/helpers.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/log/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/log/filters.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/log/formatters.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/permissions.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/common.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/json.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/msgpack.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/msgspec.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons.egg-info/SOURCES.txt +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons.egg-info/dependency_links.txt +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons.egg-info/top_level.txt +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/integration/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/integration/test_cache.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/integration/test_osc.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/conftest.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/log/__init__.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/log/test_formatters.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/test_async_functools.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/test_audit.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/test_helpers.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/test_msgpack.py +0 -0
- {python3_commons-0.18.8 → python3_commons-0.18.10}/tests/unit/test_msgspec.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python3-commons
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.10
|
|
4
4
|
Summary: Re-usable Python3 code
|
|
5
5
|
Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
|
|
6
6
|
License-Expression: GPL-3.0
|
|
@@ -38,8 +38,8 @@ Provides-Extra: database
|
|
|
38
38
|
Requires-Dist: asyncpg~=0.31.0; extra == "database"
|
|
39
39
|
Requires-Dist: SQLAlchemy[asyncio]~=2.0.49; extra == "database"
|
|
40
40
|
Provides-Extra: object-storage
|
|
41
|
-
Requires-Dist: aiobotocore~=3.
|
|
42
|
-
Requires-Dist: object-storage-client==0.0.
|
|
41
|
+
Requires-Dist: aiobotocore~=3.6.0; extra == "object-storage"
|
|
42
|
+
Requires-Dist: object-storage-client==0.0.25; extra == "object-storage"
|
|
43
43
|
Provides-Extra: soap-client
|
|
44
44
|
Requires-Dist: aiohttp[speedups]<3.15.0,>=3.13.5; extra == "soap-client"
|
|
45
45
|
Requires-Dist: certifi==2026.4.22; extra == "soap-client"
|
|
@@ -54,8 +54,8 @@ database = [
|
|
|
54
54
|
"SQLAlchemy[asyncio]~=2.0.49"
|
|
55
55
|
]
|
|
56
56
|
object-storage = [
|
|
57
|
-
"aiobotocore~=3.
|
|
58
|
-
"object-storage-client==0.0.
|
|
57
|
+
"aiobotocore~=3.6.0",
|
|
58
|
+
"object-storage-client==0.0.25"
|
|
59
59
|
]
|
|
60
60
|
soap-client = [
|
|
61
61
|
"aiohttp[speedups]>=3.13.5,<3.15.0",
|
|
@@ -140,7 +140,7 @@ async def list_objects(bucket_name: str, prefix: str, *, recursive: bool = True)
|
|
|
140
140
|
|
|
141
141
|
|
|
142
142
|
async def get_object_streams(
|
|
143
|
-
|
|
143
|
+
bucket_name: str, path: str, *, recursive: bool = True
|
|
144
144
|
) -> AsyncGenerator[tuple[str, datetime, StreamingBody]]:
|
|
145
145
|
async for obj in list_objects(bucket_name, path, recursive=recursive):
|
|
146
146
|
object_name = obj['Key']
|
|
@@ -151,7 +151,7 @@ async def get_object_streams(
|
|
|
151
151
|
|
|
152
152
|
|
|
153
153
|
async def get_objects(
|
|
154
|
-
|
|
154
|
+
bucket_name: str, path: str, *, recursive: bool = True
|
|
155
155
|
) -> AsyncGenerator[tuple[str, datetime, bytes]]:
|
|
156
156
|
async for object_name, last_modified, stream in get_object_streams(bucket_name, path, recursive=recursive):
|
|
157
157
|
data = await stream.read()
|
|
@@ -159,21 +159,22 @@ async def get_objects(
|
|
|
159
159
|
yield object_name, last_modified, data
|
|
160
160
|
|
|
161
161
|
|
|
162
|
-
async def remove_object(bucket_name: str,
|
|
163
|
-
storage
|
|
162
|
+
async def remove_object(bucket_name: str, path: str) -> None:
|
|
163
|
+
logger.debug('Removing object from object storage: %s:%s', bucket_name, path)
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
165
|
+
try:
|
|
166
|
+
client = get_client()
|
|
167
|
+
absolute_path = get_absolute_path(path)
|
|
168
|
+
url = f's3://{bucket_name}/{absolute_path}'
|
|
169
|
+
await client.remove_object(url)
|
|
170
|
+
except Exception as e:
|
|
171
|
+
logger.exception('Failed to remove object from object storage: %s:%s', bucket_name, path, exc_info=e)
|
|
171
172
|
|
|
172
|
-
|
|
173
|
+
raise
|
|
173
174
|
|
|
174
175
|
|
|
175
176
|
async def remove_objects(
|
|
176
|
-
|
|
177
|
+
bucket_name: str, prefix: str | None = None, object_names: Iterable[str] | None = None
|
|
177
178
|
) -> Sequence[Mapping] | None:
|
|
178
179
|
storage = ObjectStorage(s3_settings)
|
|
179
180
|
|
|
@@ -196,7 +197,7 @@ async def remove_objects(
|
|
|
196
197
|
chunk_size = 1000
|
|
197
198
|
|
|
198
199
|
for i in range(0, len(objects_to_delete), chunk_size):
|
|
199
|
-
chunk = objects_to_delete[i
|
|
200
|
+
chunk = objects_to_delete[i: i + chunk_size]
|
|
200
201
|
|
|
201
202
|
response = await s3_client.delete_objects(Bucket=bucket_name, Delete={'Objects': chunk})
|
|
202
203
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
+
import concurrent.futures
|
|
4
5
|
import logging
|
|
5
6
|
import ssl
|
|
6
7
|
from collections.abc import AsyncIterator, Sequence
|
|
@@ -136,32 +137,38 @@ class AsyncTransport(Transport):
|
|
|
136
137
|
|
|
137
138
|
def load(self, url: str) -> bytes:
|
|
138
139
|
"""
|
|
139
|
-
Called synchronously by zeep during WSDL parsing.
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
Called synchronously by zeep during WSDL/XSD parsing.
|
|
141
|
+
Always runs in a fresh thread with its own isolated event loop —
|
|
142
|
+
never touches self._loop to avoid deadlock.
|
|
142
143
|
"""
|
|
143
144
|
if not url:
|
|
144
145
|
return b''
|
|
145
146
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
147
|
+
async def _fetch() -> bytes:
|
|
148
|
+
async with ClientSession(
|
|
149
|
+
connector=TCPConnector(ssl=_make_ssl_context(verify=self._config.verify_ssl)),
|
|
150
|
+
timeout=ClientTimeout(total=self._config.timeout),
|
|
151
|
+
headers={'User-Agent': f'Zeep/{get_version()} (www.python-zeep.org)'},
|
|
152
|
+
) as session:
|
|
153
|
+
async with session.get(url, proxy=self._config.proxy) as resp:
|
|
154
|
+
body = await resp.read()
|
|
155
|
+
if resp.status >= 400:
|
|
156
|
+
raise TransportError(
|
|
157
|
+
status_code=resp.status,
|
|
158
|
+
message=body.decode(errors='ignore'),
|
|
159
|
+
)
|
|
160
|
+
return body
|
|
161
|
+
|
|
162
|
+
with concurrent.futures.ThreadPoolExecutor(max_workers=1) as pool:
|
|
163
|
+
return pool.submit(asyncio.run, _fetch()).result()
|
|
164
|
+
|
|
165
|
+
async def post_xml(
|
|
166
|
+
self,
|
|
167
|
+
address: str,
|
|
168
|
+
envelope: Any,
|
|
169
|
+
headers: dict[str, str],
|
|
158
170
|
) -> Response:
|
|
159
|
-
|
|
160
|
-
self.post(address, etree_to_string(envelope), headers),
|
|
161
|
-
self._loop,
|
|
162
|
-
)
|
|
163
|
-
|
|
164
|
-
return future.result()
|
|
171
|
+
return await self.post(address, etree_to_string(envelope), headers)
|
|
165
172
|
|
|
166
173
|
async def post(
|
|
167
174
|
self,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python3-commons
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.10
|
|
4
4
|
Summary: Re-usable Python3 code
|
|
5
5
|
Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
|
|
6
6
|
License-Expression: GPL-3.0
|
|
@@ -38,8 +38,8 @@ Provides-Extra: database
|
|
|
38
38
|
Requires-Dist: asyncpg~=0.31.0; extra == "database"
|
|
39
39
|
Requires-Dist: SQLAlchemy[asyncio]~=2.0.49; extra == "database"
|
|
40
40
|
Provides-Extra: object-storage
|
|
41
|
-
Requires-Dist: aiobotocore~=3.
|
|
42
|
-
Requires-Dist: object-storage-client==0.0.
|
|
41
|
+
Requires-Dist: aiobotocore~=3.6.0; extra == "object-storage"
|
|
42
|
+
Requires-Dist: object-storage-client==0.0.25; extra == "object-storage"
|
|
43
43
|
Provides-Extra: soap-client
|
|
44
44
|
Requires-Dist: aiohttp[speedups]<3.15.0,>=3.13.5; extra == "soap-client"
|
|
45
45
|
Requires-Dist: certifi==2026.4.22; extra == "soap-client"
|
|
@@ -4,7 +4,7 @@ requires-python = "==3.14.*"
|
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
6
6
|
name = "aiobotocore"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.6.0"
|
|
8
8
|
source = { registry = "https://pypi.org/simple" }
|
|
9
9
|
dependencies = [
|
|
10
10
|
{ name = "aiohttp" },
|
|
@@ -15,9 +15,9 @@ dependencies = [
|
|
|
15
15
|
{ name = "python-dateutil" },
|
|
16
16
|
{ name = "wrapt" },
|
|
17
17
|
]
|
|
18
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
18
|
+
sdist = { url = "https://files.pythonhosted.org/packages/28/52/4689a0c2ddced3888c687a84b820da37da6abda5ec52d96a7f11f22ff6ec/aiobotocore-3.6.0.tar.gz", hash = "sha256:78e6b95b258bcdde8d681d6851f88f337ed30b2d6611fae45366e6bf7488feb3", size = 123104, upload-time = "2026-05-01T20:33:31.109Z" }
|
|
19
19
|
wheels = [
|
|
20
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
20
|
+
{ url = "https://files.pythonhosted.org/packages/72/9a/17033aaafb880932eec0b0054a8e1cf201cb74501dfb0518c6b39fc5b258/aiobotocore-3.6.0-py3-none-any.whl", hash = "sha256:bf1c2e1d8492d98c9b63b330723a44b41a5d402afd19eaca704e107b91669c09", size = 88259, upload-time = "2026-05-01T20:33:29.213Z" },
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
[[package]]
|
|
@@ -176,16 +176,16 @@ wheels = [
|
|
|
176
176
|
|
|
177
177
|
[[package]]
|
|
178
178
|
name = "botocore"
|
|
179
|
-
version = "1.
|
|
179
|
+
version = "1.43.0"
|
|
180
180
|
source = { registry = "https://pypi.org/simple" }
|
|
181
181
|
dependencies = [
|
|
182
182
|
{ name = "jmespath" },
|
|
183
183
|
{ name = "python-dateutil" },
|
|
184
184
|
{ name = "urllib3" },
|
|
185
185
|
]
|
|
186
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
186
|
+
sdist = { url = "https://files.pythonhosted.org/packages/28/79/2f4be1896db3db7ccf44504253a175d56b6bd6b669619edc5147d1aa21ea/botocore-1.43.0.tar.gz", hash = "sha256:e933b31a2d644253e1d029d7d39e99ba41b87e29300534f189744cc438cdf928", size = 15286817, upload-time = "2026-04-29T22:07:31.723Z" }
|
|
187
187
|
wheels = [
|
|
188
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
188
|
+
{ url = "https://files.pythonhosted.org/packages/bf/4b/afc1fef8a43bafb139f57f73bbd70df82807af5934321e8112ae50668827/botocore-1.43.0-py3-none-any.whl", hash = "sha256:cc5b15eaec3c6eac05d8012cb5ef17ebe891beb88a16ca13c374bfaece1241e6", size = 14970102, upload-time = "2026-04-29T22:07:27Z" },
|
|
189
189
|
]
|
|
190
190
|
|
|
191
191
|
[[package]]
|
|
@@ -717,13 +717,13 @@ wheels = [
|
|
|
717
717
|
|
|
718
718
|
[[package]]
|
|
719
719
|
name = "object-storage-client"
|
|
720
|
-
version = "0.0.
|
|
720
|
+
version = "0.0.25"
|
|
721
721
|
source = { registry = "https://pypi.org/simple" }
|
|
722
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
722
|
+
sdist = { url = "https://files.pythonhosted.org/packages/01/34/c6796891f4271e65c14f0ab098a0e4abd2ff0658f4d065cfc7093869e85c/object_storage_client-0.0.25.tar.gz", hash = "sha256:c29a789b9e7d8fc8c42f7a3bf0ff881cb736024c87f571693d9799d367d80e9a", size = 41697, upload-time = "2026-05-05T17:18:01.082Z" }
|
|
723
723
|
wheels = [
|
|
724
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
725
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
726
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
724
|
+
{ url = "https://files.pythonhosted.org/packages/cf/84/edc997f45f4fe1df1f4b2fe1463f9c1fad3188478ab9b724fb9ceb6187fe/object_storage_client-0.0.25-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f2acc15b7987f58df609f8bb60abd02753233b440914fb42fa4456cf07126ba1", size = 1945474, upload-time = "2026-05-05T17:18:05.736Z" },
|
|
725
|
+
{ url = "https://files.pythonhosted.org/packages/55/71/720452bb2ac7ac2943d112ffc23530eb088585a90cebec40b1f832ec4fab/object_storage_client-0.0.25-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6343bd4b63e8e7e2facf4bbd1f7227ad6b27e242be273dfbe7e60e89ae70dca0", size = 2133158, upload-time = "2026-05-05T17:17:58.554Z" },
|
|
726
|
+
{ url = "https://files.pythonhosted.org/packages/27/84/aab307d9bc79ac48ae32b9f6fc0d644a4e577281e0583a9ac3802106def3/object_storage_client-0.0.25-cp314-cp314-win_amd64.whl", hash = "sha256:d9564f446849aa5c8d4e11bfbe9050909a1b61a7932618f5865a7c1224cf3b4f", size = 2131352, upload-time = "2026-05-05T17:17:59.937Z" },
|
|
727
727
|
]
|
|
728
728
|
|
|
729
729
|
[[package]]
|
|
@@ -737,11 +737,11 @@ wheels = [
|
|
|
737
737
|
|
|
738
738
|
[[package]]
|
|
739
739
|
name = "pip"
|
|
740
|
-
version = "26.1"
|
|
740
|
+
version = "26.1.1"
|
|
741
741
|
source = { registry = "https://pypi.org/simple" }
|
|
742
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
742
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b6/48/cb9b7a682f6fe01a4221e1728941dd4ac3cd9090a17db3779d6ff490b602/pip-26.1.1.tar.gz", hash = "sha256:d36762751d156a4ee895de8af39aa0abeeeb577f93a2eca6ab62467bbf0f8a78", size = 1840400, upload-time = "2026-05-04T19:02:21.248Z" }
|
|
743
743
|
wheels = [
|
|
744
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
744
|
+
{ url = "https://files.pythonhosted.org/packages/3a/eb/fea4d1d51c49832120f7f285d07306db3960f423a2612c6057caf3e8196f/pip-26.1.1-py3-none-any.whl", hash = "sha256:99cb1c2899893b075ff56e4ed0af55669a955b49ad7fb8d8603ecdaf4ed653fb", size = 1812777, upload-time = "2026-05-04T19:02:18.9Z" },
|
|
745
745
|
]
|
|
746
746
|
|
|
747
747
|
[[package]]
|
|
@@ -1017,15 +1017,15 @@ wheels = [
|
|
|
1017
1017
|
|
|
1018
1018
|
[[package]]
|
|
1019
1019
|
name = "python-discovery"
|
|
1020
|
-
version = "1.
|
|
1020
|
+
version = "1.3.0"
|
|
1021
1021
|
source = { registry = "https://pypi.org/simple" }
|
|
1022
1022
|
dependencies = [
|
|
1023
1023
|
{ name = "filelock" },
|
|
1024
1024
|
{ name = "platformdirs" },
|
|
1025
1025
|
]
|
|
1026
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1026
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ae/e0/cc5a8653e9a24f6cf84768f05064aa8ed5a83dcefd5e2a043db14a1c5f44/python_discovery-1.3.0.tar.gz", hash = "sha256:d098f1e86be5d45fe4d14bf1029294aabbd332f4321179dec85e76cddce834b0", size = 63925, upload-time = "2026-05-05T14:38:39.769Z" }
|
|
1027
1027
|
wheels = [
|
|
1028
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1028
|
+
{ url = "https://files.pythonhosted.org/packages/30/d4/24d543ab8b8158b7f5a97113c831205f5c900c92c8762b1e7f44b7ea0405/python_discovery-1.3.0-py3-none-any.whl", hash = "sha256:441d9ced3dfce36e113beb35ca302c71c7ef06f3c0f9c227a0b9bb3bd49b9e9f", size = 33124, upload-time = "2026-05-05T14:38:38.539Z" },
|
|
1029
1029
|
]
|
|
1030
1030
|
|
|
1031
1031
|
[[package]]
|
|
@@ -1123,7 +1123,7 @@ testing = [
|
|
|
1123
1123
|
|
|
1124
1124
|
[package.metadata]
|
|
1125
1125
|
requires-dist = [
|
|
1126
|
-
{ name = "aiobotocore", marker = "extra == 'object-storage'", specifier = "~=3.
|
|
1126
|
+
{ name = "aiobotocore", marker = "extra == 'object-storage'", specifier = "~=3.6.0" },
|
|
1127
1127
|
{ name = "aiohttp", extras = ["speedups"], marker = "extra == 'api-client'", specifier = ">=3.13.5,<3.15.0" },
|
|
1128
1128
|
{ name = "aiohttp", extras = ["speedups"], marker = "extra == 'authn'", specifier = ">=3.13.5,<3.15.0" },
|
|
1129
1129
|
{ name = "aiohttp", extras = ["speedups"], marker = "extra == 'soap-client'", specifier = ">=3.13.5,<3.15.0" },
|
|
@@ -1135,7 +1135,7 @@ requires-dist = [
|
|
|
1135
1135
|
{ name = "lxml", marker = "extra == 'soap-client'", specifier = "~=6.1.0" },
|
|
1136
1136
|
{ name = "msgpack", specifier = "~=1.1.2" },
|
|
1137
1137
|
{ name = "msgspec", specifier = "==0.21.1" },
|
|
1138
|
-
{ name = "object-storage-client", marker = "extra == 'object-storage'", specifier = "==0.0.
|
|
1138
|
+
{ name = "object-storage-client", marker = "extra == 'object-storage'", specifier = "==0.0.25" },
|
|
1139
1139
|
{ name = "pydantic-settings", specifier = "~=2.14.0" },
|
|
1140
1140
|
{ name = "python3-commons", extras = ["api-client"], marker = "extra == 'authn'" },
|
|
1141
1141
|
{ name = "python3-commons", extras = ["api-client"], marker = "extra == 'authz'" },
|
|
@@ -1170,11 +1170,11 @@ testing = [
|
|
|
1170
1170
|
|
|
1171
1171
|
[[package]]
|
|
1172
1172
|
name = "pytz"
|
|
1173
|
-
version = "2026.
|
|
1173
|
+
version = "2026.2"
|
|
1174
1174
|
source = { registry = "https://pypi.org/simple" }
|
|
1175
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1175
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861, upload-time = "2026-05-04T01:35:29.667Z" }
|
|
1176
1176
|
wheels = [
|
|
1177
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1177
|
+
{ url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload-time = "2026-05-04T01:35:27.408Z" },
|
|
1178
1178
|
]
|
|
1179
1179
|
|
|
1180
1180
|
[[package]]
|
|
@@ -1307,14 +1307,14 @@ asyncio = [
|
|
|
1307
1307
|
|
|
1308
1308
|
[[package]]
|
|
1309
1309
|
name = "types-aiobotocore"
|
|
1310
|
-
version = "3.
|
|
1310
|
+
version = "3.6.0"
|
|
1311
1311
|
source = { registry = "https://pypi.org/simple" }
|
|
1312
1312
|
dependencies = [
|
|
1313
1313
|
{ name = "botocore-stubs" },
|
|
1314
1314
|
]
|
|
1315
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1315
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b9/e4/5dd83c879eff726931ef222d3ae27f67999c3bc33dfae1ca8237ebccdf17/types_aiobotocore-3.6.0.tar.gz", hash = "sha256:e990056ce9d19094a9d9b36008ca0b2a4d69948ff58f50868dd159a81f6ad69c", size = 87978, upload-time = "2026-05-02T03:05:30.694Z" }
|
|
1316
1316
|
wheels = [
|
|
1317
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1317
|
+
{ url = "https://files.pythonhosted.org/packages/19/7c/cadd4b4d0bdd6f1cbc601177a115966dabd9afa022287f3f25423274ab97/types_aiobotocore-3.6.0-py3-none-any.whl", hash = "sha256:e38d5340bfb7ecc17a40acfd1043f4ed91af9f8189daa5e438bda2e7d276d406", size = 54805, upload-time = "2026-05-02T03:05:27.911Z" },
|
|
1318
1318
|
]
|
|
1319
1319
|
|
|
1320
1320
|
[package.optional-dependencies]
|
|
@@ -1324,11 +1324,11 @@ s3 = [
|
|
|
1324
1324
|
|
|
1325
1325
|
[[package]]
|
|
1326
1326
|
name = "types-aiobotocore-s3"
|
|
1327
|
-
version = "3.
|
|
1327
|
+
version = "3.6.0"
|
|
1328
1328
|
source = { registry = "https://pypi.org/simple" }
|
|
1329
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1329
|
+
sdist = { url = "https://files.pythonhosted.org/packages/66/90/eec276a418a417441a785dd394424fee87682cf34af29fe026f46883149e/types_aiobotocore_s3-3.6.0.tar.gz", hash = "sha256:5eb816af93791b7f42f58b2dd3b5ecfe24da9de414a7390c05c392cf1d9ef5b4", size = 77715, upload-time = "2026-05-02T03:03:31.274Z" }
|
|
1330
1330
|
wheels = [
|
|
1331
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1331
|
+
{ url = "https://files.pythonhosted.org/packages/e7/df/4f2dce96e6b71f3d8287351558824021a9857eb88506c6eb72c61b23bcb4/types_aiobotocore_s3-3.6.0-py3-none-any.whl", hash = "sha256:5af9f9710c9fe6ba9645852a0b13f6fca4eb44d87a35b0959063341a32f11b37", size = 85450, upload-time = "2026-05-02T03:03:29.054Z" },
|
|
1332
1332
|
]
|
|
1333
1333
|
|
|
1334
1334
|
[[package]]
|
|
@@ -1398,7 +1398,7 @@ wheels = [
|
|
|
1398
1398
|
|
|
1399
1399
|
[[package]]
|
|
1400
1400
|
name = "virtualenv"
|
|
1401
|
-
version = "21.3.
|
|
1401
|
+
version = "21.3.1"
|
|
1402
1402
|
source = { registry = "https://pypi.org/simple" }
|
|
1403
1403
|
dependencies = [
|
|
1404
1404
|
{ name = "distlib" },
|
|
@@ -1406,9 +1406,9 @@ dependencies = [
|
|
|
1406
1406
|
{ name = "platformdirs" },
|
|
1407
1407
|
{ name = "python-discovery" },
|
|
1408
1408
|
]
|
|
1409
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1409
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ec/0d/915c02c94d207b85580eb09bffab54438a709e7288524094fe781da526c2/virtualenv-21.3.1.tar.gz", hash = "sha256:c2305bc1fddeec40699b8370d13f8d431b0701f00ce895061ce493aeded4426b", size = 7613791, upload-time = "2026-05-05T01:34:31.402Z" }
|
|
1410
1410
|
wheels = [
|
|
1411
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1411
|
+
{ url = "https://files.pythonhosted.org/packages/b1/4f/f71e641e504111a5a74e3a20bc52d01bd86788b22699dd3fee1c63253cf6/virtualenv-21.3.1-py3-none-any.whl", hash = "sha256:d1a71cf58f2f9228fff23a1f6ec15d39785c6b32e03658d104974247145edd35", size = 7594539, upload-time = "2026-05-05T01:34:28.98Z" },
|
|
1412
1412
|
]
|
|
1413
1413
|
|
|
1414
1414
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/.github/workflows/release-on-tag-push.yml
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
|
|
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.18.8 → python3_commons-0.18.10}/src/python3_commons/db/models/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/__init__.py
RENAMED
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/common.py
RENAMED
|
File without changes
|
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/msgpack.py
RENAMED
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons/serializers/msgspec.py
RENAMED
|
File without changes
|
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{python3_commons-0.18.8 → python3_commons-0.18.10}/src/python3_commons.egg-info/top_level.txt
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|