python3-commons 0.16.4__tar.gz → 0.16.6__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.16.4 → python3_commons-0.16.6}/PKG-INFO +1 -1
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/log/formatters.py +1 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/object_storage.py +6 -9
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons.egg-info/PKG-INFO +1 -1
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.coveragerc +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.devcontainer/Dockerfile +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.devcontainer/devcontainer.json +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.devcontainer/docker-compose.yml +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.env_template +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.github/workflows/checks.yml +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.github/workflows/python-publish.yaml +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.github/workflows/release-on-tag-push.yml +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.gitignore +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.pre-commit-config.yaml +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/.python-version +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/AUTHORS.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/CHANGELOG.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/LICENSE +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/README.md +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/README.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/Makefile +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/_static/.gitignore +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/authors.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/changelog.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/conf.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/index.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/docs/license.rst +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/pyproject.toml +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/setup.cfg +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/api_client.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/async_functools.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/audit.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/auth.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/cache.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/conf.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/helpers.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/models/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/models/auth.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/models/common.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/models/rbac.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/db/models/users.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/exceptions.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/fs.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/generators.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/helpers.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/log/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/log/filters.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/permissions.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/common.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/json.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/msgpack.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/msgspec.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons.egg-info/SOURCES.txt +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons.egg-info/dependency_links.txt +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons.egg-info/requires.txt +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons.egg-info/top_level.txt +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/integration/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/integration/test_cache.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/integration/test_osc.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/conftest.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/log/__init__.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/log/test_formatters.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/test_async_functools.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/test_audit.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/test_helpers.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/test_msgpack.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/tests/unit/test_msgspec.py +0 -0
- {python3_commons-0.16.4 → python3_commons-0.16.6}/uv.lock +0 -0
|
@@ -31,12 +31,9 @@ def get_client() -> ObjectStorageClient:
|
|
|
31
31
|
if not _CLIENT:
|
|
32
32
|
with _CLIENT_LOCK:
|
|
33
33
|
if not _CLIENT:
|
|
34
|
-
|
|
35
|
-
_CLIENT = client
|
|
36
|
-
else:
|
|
37
|
-
client = _CLIENT
|
|
34
|
+
_CLIENT: ObjectStorageClient = ObjectStorageClient()
|
|
38
35
|
|
|
39
|
-
return
|
|
36
|
+
return _CLIENT
|
|
40
37
|
|
|
41
38
|
|
|
42
39
|
class ObjectStorage(metaclass=SingletonMeta):
|
|
@@ -135,7 +132,7 @@ async def list_objects(bucket_name: str, prefix: str, *, recursive: bool = True)
|
|
|
135
132
|
|
|
136
133
|
|
|
137
134
|
async def get_object_streams(
|
|
138
|
-
|
|
135
|
+
bucket_name: str, path: str, *, recursive: bool = True
|
|
139
136
|
) -> AsyncGenerator[tuple[str, datetime, StreamingBody]]:
|
|
140
137
|
async for obj in list_objects(bucket_name, path, recursive=recursive):
|
|
141
138
|
object_name = obj['Key']
|
|
@@ -146,7 +143,7 @@ async def get_object_streams(
|
|
|
146
143
|
|
|
147
144
|
|
|
148
145
|
async def get_objects(
|
|
149
|
-
|
|
146
|
+
bucket_name: str, path: str, *, recursive: bool = True
|
|
150
147
|
) -> AsyncGenerator[tuple[str, datetime, bytes]]:
|
|
151
148
|
async for object_name, last_modified, stream in get_object_streams(bucket_name, path, recursive=recursive):
|
|
152
149
|
data = await stream.read()
|
|
@@ -168,7 +165,7 @@ async def remove_object(bucket_name: str, object_name: str) -> None:
|
|
|
168
165
|
|
|
169
166
|
|
|
170
167
|
async def remove_objects(
|
|
171
|
-
|
|
168
|
+
bucket_name: str, prefix: str | None = None, object_names: Iterable[str] | None = None
|
|
172
169
|
) -> Sequence[Mapping] | None:
|
|
173
170
|
storage = ObjectStorage(s3_settings)
|
|
174
171
|
|
|
@@ -191,7 +188,7 @@ async def remove_objects(
|
|
|
191
188
|
chunk_size = 1000
|
|
192
189
|
|
|
193
190
|
for i in range(0, len(objects_to_delete), chunk_size):
|
|
194
|
-
chunk = objects_to_delete[i
|
|
191
|
+
chunk = objects_to_delete[i: i + chunk_size]
|
|
195
192
|
|
|
196
193
|
response = await s3_client.delete_objects(Bucket=bucket_name, Delete={'Objects': chunk})
|
|
197
194
|
|
|
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
|
|
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.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/msgpack.py
RENAMED
|
File without changes
|
{python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons/serializers/msgspec.py
RENAMED
|
File without changes
|
|
File without changes
|
{python3_commons-0.16.4 → python3_commons-0.16.6}/src/python3_commons.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
{python3_commons-0.16.4 → python3_commons-0.16.6}/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
|
|
File without changes
|