python3-commons 0.9.4__tar.gz → 0.9.5__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.9.4 → python3_commons-0.9.5}/.pre-commit-config.yaml +2 -2
- {python3_commons-0.9.4/src/python3_commons.egg-info → python3_commons-0.9.5}/PKG-INFO +2 -2
- {python3_commons-0.9.4 → python3_commons-0.9.5}/pyproject.toml +2 -2
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/api_client.py +1 -2
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/auth.py +2 -3
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/db/models/auth.py +2 -2
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/db/models/common.py +5 -5
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/db/models/rbac.py +5 -5
- {python3_commons-0.9.4 → python3_commons-0.9.5/src/python3_commons.egg-info}/PKG-INFO +2 -2
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons.egg-info/requires.txt +1 -1
- {python3_commons-0.9.4 → python3_commons-0.9.5}/uv.lock +71 -71
- {python3_commons-0.9.4 → python3_commons-0.9.5}/.coveragerc +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/.github/workflows/python-publish.yaml +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/.github/workflows/release-on-tag-push.yml +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/.gitignore +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/.python-version +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/AUTHORS.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/CHANGELOG.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/LICENSE +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/README.md +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/README.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/Makefile +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/_static/.gitignore +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/authors.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/changelog.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/conf.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/index.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/docs/license.rst +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/setup.cfg +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/__init__.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/audit.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/cache.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/conf.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/db/__init__.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/db/helpers.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/db/models/__init__.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/fs.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/helpers.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/log/__init__.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/log/filters.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/log/formatters.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/object_storage.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/permissions.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/serializers/__init__.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/serializers/json.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/serializers/msgpack.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons/serializers/msgspec.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons.egg-info/SOURCES.txt +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons.egg-info/dependency_links.txt +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/src/python3_commons.egg-info/top_level.txt +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/tests/conftest.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/tests/test_audit.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/tests/test_cache.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/tests/test_helpers.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/tests/test_msgpack.py +0 -0
- {python3_commons-0.9.4 → python3_commons-0.9.5}/tests/test_msgspec.py +0 -0
@@ -1,12 +1,12 @@
|
|
1
1
|
repos:
|
2
2
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
3
|
-
rev: 0.
|
3
|
+
rev: 0.8.3
|
4
4
|
hooks:
|
5
5
|
- id: uv-lock
|
6
6
|
# - id: uv-export
|
7
7
|
|
8
8
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
9
|
-
rev: v0.12.
|
9
|
+
rev: v0.12.5
|
10
10
|
hooks:
|
11
11
|
# Run the linter.
|
12
12
|
- id: ruff-check
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: python3-commons
|
3
|
-
Version: 0.9.
|
3
|
+
Version: 0.9.5
|
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
|
@@ -12,7 +12,7 @@ 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: aiobotocore~=2.23.
|
15
|
+
Requires-Dist: aiobotocore~=2.23.2
|
16
16
|
Requires-Dist: aiohttp[speedups]~=3.12.14
|
17
17
|
Requires-Dist: asyncpg~=0.30.0
|
18
18
|
Requires-Dist: fastapi-users-db-sqlalchemy~=7.0.0
|
@@ -19,7 +19,7 @@ keywords = []
|
|
19
19
|
requires-python = "==3.13.*"
|
20
20
|
|
21
21
|
dependencies = [
|
22
|
-
"aiobotocore~=2.23.
|
22
|
+
"aiobotocore~=2.23.2",
|
23
23
|
"aiohttp[speedups]~=3.12.14",
|
24
24
|
"asyncpg~=0.30.0",
|
25
25
|
"fastapi-users-db-sqlalchemy~=7.0.0",
|
@@ -41,7 +41,7 @@ dev = [
|
|
41
41
|
"pip==25.1.1",
|
42
42
|
"pre-commit==4.2.0",
|
43
43
|
"pyright==1.1.403",
|
44
|
-
"ruff==0.12.
|
44
|
+
"ruff==0.12.5",
|
45
45
|
"setuptools==80.9.0",
|
46
46
|
"setuptools_scm==8.3.1",
|
47
47
|
"types-aiobotocore-s3",
|
@@ -8,7 +8,6 @@ from typing import AsyncGenerator, Literal, Mapping, Sequence
|
|
8
8
|
from uuid import uuid4
|
9
9
|
|
10
10
|
from aiohttp import ClientResponse, ClientSession, ClientTimeout, client_exceptions
|
11
|
-
from pydantic import HttpUrl
|
12
11
|
|
13
12
|
from python3_commons import audit
|
14
13
|
from python3_commons.conf import s3_settings
|
@@ -38,7 +37,7 @@ async def _store_response_for_audit(
|
|
38
37
|
@asynccontextmanager
|
39
38
|
async def request(
|
40
39
|
client: ClientSession,
|
41
|
-
base_url:
|
40
|
+
base_url: str,
|
42
41
|
uri: str,
|
43
42
|
query: Mapping | None = None,
|
44
43
|
method: Literal['get', 'post', 'put', 'patch', 'options', 'head', 'delete'] = 'get',
|
@@ -3,17 +3,17 @@ from http import HTTPStatus
|
|
3
3
|
from typing import Annotated, Any, Callable, Coroutine, Sequence, Type, TypeVar
|
4
4
|
|
5
5
|
import aiohttp
|
6
|
+
import msgspec
|
6
7
|
from fastapi import Depends, HTTPException
|
7
8
|
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
8
9
|
from jose import JWTError, jwt
|
9
|
-
from pydantic import BaseModel
|
10
10
|
|
11
11
|
from python3_commons.conf import oidc_settings
|
12
12
|
|
13
13
|
logger = logging.getLogger(__name__)
|
14
14
|
|
15
15
|
|
16
|
-
class TokenData(
|
16
|
+
class TokenData(msgspec.Struct):
|
17
17
|
sub: str
|
18
18
|
aud: str | Sequence[str]
|
19
19
|
exp: int
|
@@ -22,7 +22,6 @@ class TokenData(BaseModel):
|
|
22
22
|
|
23
23
|
T = TypeVar('T', bound=TokenData)
|
24
24
|
|
25
|
-
|
26
25
|
OIDC_CONFIG_URL = f'{oidc_settings.authority_url}/.well-known/openid-configuration'
|
27
26
|
_JWKS: dict | None = None
|
28
27
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import uuid
|
2
|
+
from datetime import datetime
|
2
3
|
|
3
4
|
from fastapi_users_db_sqlalchemy import GUID, SQLAlchemyBaseUserTableUUID
|
4
|
-
from pydantic import AwareDatetime
|
5
5
|
from sqlalchemy import BIGINT, DateTime, ForeignKey, String
|
6
6
|
from sqlalchemy.orm import Mapped, mapped_column
|
7
7
|
|
@@ -32,4 +32,4 @@ class ApiKey(BaseDBUUIDModel, Base):
|
|
32
32
|
)
|
33
33
|
partner_name: Mapped[str] = mapped_column(String, unique=True)
|
34
34
|
key: Mapped[str] = mapped_column(String, unique=True)
|
35
|
-
expires_at: Mapped[
|
35
|
+
expires_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import uuid
|
2
|
+
from datetime import datetime
|
2
3
|
|
3
|
-
from pydantic import AwareDatetime
|
4
4
|
from sqlalchemy import BIGINT, DateTime
|
5
5
|
from sqlalchemy.dialects.postgresql import UUID
|
6
6
|
from sqlalchemy.ext.compiler import compiles
|
@@ -27,15 +27,15 @@ def use_identity(element, compiler, **kw):
|
|
27
27
|
|
28
28
|
class BaseDBModel:
|
29
29
|
id: Mapped[int] = mapped_column(BIGINT, primary_key=True, sort_order=-3)
|
30
|
-
created_at: Mapped[
|
30
|
+
created_at: Mapped[datetime] = mapped_column(
|
31
31
|
DateTime(timezone=True), nullable=False, server_default=UTCNow(), sort_order=-2
|
32
32
|
)
|
33
|
-
updated_at: Mapped[
|
33
|
+
updated_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), onupdate=UTCNow(), sort_order=-1)
|
34
34
|
|
35
35
|
|
36
36
|
class BaseDBUUIDModel:
|
37
37
|
uid: Mapped[uuid.UUID] = mapped_column(UUID, primary_key=True, sort_order=-3)
|
38
|
-
created_at: Mapped[
|
38
|
+
created_at: Mapped[datetime] = mapped_column(
|
39
39
|
DateTime(timezone=True), nullable=False, server_default=UTCNow(), sort_order=-2
|
40
40
|
)
|
41
|
-
updated_at: Mapped[
|
41
|
+
updated_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), onupdate=UTCNow(), sort_order=-1)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import uuid
|
2
|
+
from datetime import datetime
|
2
3
|
|
3
4
|
from fastapi_users_db_sqlalchemy import GUID
|
4
|
-
from pydantic import AwareDatetime
|
5
5
|
from sqlalchemy import CheckConstraint, DateTime, ForeignKey, PrimaryKeyConstraint, String
|
6
6
|
from sqlalchemy.dialects.postgresql import UUID
|
7
7
|
from sqlalchemy.orm import Mapped, mapped_column
|
@@ -55,8 +55,8 @@ class RBACUserRole(Base):
|
|
55
55
|
ForeignKey('rbac_roles.uid', name='fk_rbac_user_roles_role', ondelete='CASCADE'),
|
56
56
|
index=True,
|
57
57
|
)
|
58
|
-
starts_at: Mapped[
|
59
|
-
expires_at: Mapped[
|
58
|
+
starts_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False)
|
59
|
+
expires_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
|
60
60
|
|
61
61
|
__table_args__ = (PrimaryKeyConstraint('user_id', 'role_uid', name='pk_rbac_user_roles'),)
|
62
62
|
|
@@ -74,8 +74,8 @@ class RBACApiKeyRole(Base):
|
|
74
74
|
ForeignKey('rbac_roles.uid', name='fk_rbac_api_key_roles_role', ondelete='CASCADE'),
|
75
75
|
index=True,
|
76
76
|
)
|
77
|
-
starts_at: Mapped[
|
78
|
-
expires_at: Mapped[
|
77
|
+
starts_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False)
|
78
|
+
expires_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
|
79
79
|
|
80
80
|
__table_args__ = (PrimaryKeyConstraint('api_key_uid', 'role_uid', name='pk_rbac_api_key_roles'),)
|
81
81
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: python3-commons
|
3
|
-
Version: 0.9.
|
3
|
+
Version: 0.9.5
|
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
|
@@ -12,7 +12,7 @@ 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: aiobotocore~=2.23.
|
15
|
+
Requires-Dist: aiobotocore~=2.23.2
|
16
16
|
Requires-Dist: aiohttp[speedups]~=3.12.14
|
17
17
|
Requires-Dist: asyncpg~=0.30.0
|
18
18
|
Requires-Dist: fastapi-users-db-sqlalchemy~=7.0.0
|
@@ -4,7 +4,7 @@ requires-python = "==3.13.*"
|
|
4
4
|
|
5
5
|
[[package]]
|
6
6
|
name = "aiobotocore"
|
7
|
-
version = "2.23.
|
7
|
+
version = "2.23.2"
|
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/1d/ae/523d48504902a6f17f6ec94311899f217f1bf64b9ca394c89c690c37434c/aiobotocore-2.23.2.tar.gz", hash = "sha256:9c2cbd6e813bb6c60b7f20fc11897976a583c57b0093a87bebfe80a9b08746b2", size = 115881, upload-time = "2025-07-24T17:48:15.957Z" }
|
19
19
|
wheels = [
|
20
|
-
{ url = "https://files.pythonhosted.org/packages/
|
20
|
+
{ url = "https://files.pythonhosted.org/packages/c9/2e/55780065672a69ab3d16062368d358ace7eac196b246e6b15b07301f8fbf/aiobotocore-2.23.2-py3-none-any.whl", hash = "sha256:5ca24feb49be73bd6cd92e82e95aefb0647c07bb85ca57000a0361b9554503d8", size = 84301, upload-time = "2025-07-24T17:48:14.494Z" },
|
21
21
|
]
|
22
22
|
|
23
23
|
[[package]]
|
@@ -235,16 +235,16 @@ wheels = [
|
|
235
235
|
|
236
236
|
[[package]]
|
237
237
|
name = "botocore"
|
238
|
-
version = "1.
|
238
|
+
version = "1.39.8"
|
239
239
|
source = { registry = "https://pypi.org/simple" }
|
240
240
|
dependencies = [
|
241
241
|
{ name = "jmespath" },
|
242
242
|
{ name = "python-dateutil" },
|
243
243
|
{ name = "urllib3" },
|
244
244
|
]
|
245
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
245
|
+
sdist = { url = "https://files.pythonhosted.org/packages/32/57/16d3d21963975b9be180e96695abfb146695ae7db57f9a2d47e92d33ce9d/botocore-1.39.8.tar.gz", hash = "sha256:3848bd9057ea8dbc059e7764eda63bda575727ad1101dbd03636ab4a6f283fa5", size = 14205898, upload-time = "2025-07-17T19:19:03.832Z" }
|
246
246
|
wheels = [
|
247
|
-
{ url = "https://files.pythonhosted.org/packages/
|
247
|
+
{ url = "https://files.pythonhosted.org/packages/11/ac/51462dd35fc60d11cdce93ba82ccf1635a161ceadc646d89f67d666fff31/botocore-1.39.8-py3-none-any.whl", hash = "sha256:ab43f79c6893271934faba7ae1987a313d59576361c544c70a5391ade560891d", size = 13866818, upload-time = "2025-07-17T19:18:58.521Z" },
|
248
248
|
]
|
249
249
|
|
250
250
|
[[package]]
|
@@ -371,33 +371,33 @@ wheels = [
|
|
371
371
|
|
372
372
|
[[package]]
|
373
373
|
name = "coverage"
|
374
|
-
version = "7.
|
375
|
-
source = { registry = "https://pypi.org/simple" }
|
376
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
377
|
-
wheels = [
|
378
|
-
{ url = "https://files.pythonhosted.org/packages/
|
379
|
-
{ url = "https://files.pythonhosted.org/packages/
|
380
|
-
{ url = "https://files.pythonhosted.org/packages/
|
381
|
-
{ url = "https://files.pythonhosted.org/packages/
|
382
|
-
{ url = "https://files.pythonhosted.org/packages/
|
383
|
-
{ url = "https://files.pythonhosted.org/packages/
|
384
|
-
{ url = "https://files.pythonhosted.org/packages/
|
385
|
-
{ url = "https://files.pythonhosted.org/packages/
|
386
|
-
{ url = "https://files.pythonhosted.org/packages/
|
387
|
-
{ url = "https://files.pythonhosted.org/packages/
|
388
|
-
{ url = "https://files.pythonhosted.org/packages/
|
389
|
-
{ url = "https://files.pythonhosted.org/packages/
|
390
|
-
{ url = "https://files.pythonhosted.org/packages/
|
391
|
-
{ url = "https://files.pythonhosted.org/packages/
|
392
|
-
{ url = "https://files.pythonhosted.org/packages/
|
393
|
-
{ url = "https://files.pythonhosted.org/packages/
|
394
|
-
{ url = "https://files.pythonhosted.org/packages/
|
395
|
-
{ url = "https://files.pythonhosted.org/packages/
|
396
|
-
{ url = "https://files.pythonhosted.org/packages/
|
397
|
-
{ url = "https://files.pythonhosted.org/packages/
|
398
|
-
{ url = "https://files.pythonhosted.org/packages/
|
399
|
-
{ url = "https://files.pythonhosted.org/packages/
|
400
|
-
{ url = "https://files.pythonhosted.org/packages/
|
374
|
+
version = "7.10.1"
|
375
|
+
source = { registry = "https://pypi.org/simple" }
|
376
|
+
sdist = { url = "https://files.pythonhosted.org/packages/87/0e/66dbd4c6a7f0758a8d18044c048779ba21fb94856e1edcf764bd5403e710/coverage-7.10.1.tar.gz", hash = "sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57", size = 819938, upload-time = "2025-07-27T14:13:39.045Z" }
|
377
|
+
wheels = [
|
378
|
+
{ url = "https://files.pythonhosted.org/packages/ef/72/135ff5fef09b1ffe78dbe6fcf1e16b2e564cd35faeacf3d63d60d887f12d/coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39", size = 214960, upload-time = "2025-07-27T14:11:55.959Z" },
|
379
|
+
{ url = "https://files.pythonhosted.org/packages/b1/aa/73a5d1a6fc08ca709a8177825616aa95ee6bf34d522517c2595484a3e6c9/coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7", size = 215220, upload-time = "2025-07-27T14:11:57.899Z" },
|
380
|
+
{ url = "https://files.pythonhosted.org/packages/8d/40/3124fdd45ed3772a42fc73ca41c091699b38a2c3bd4f9cb564162378e8b6/coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892", size = 245772, upload-time = "2025-07-27T14:12:00.422Z" },
|
381
|
+
{ url = "https://files.pythonhosted.org/packages/42/62/a77b254822efa8c12ad59e8039f2bc3df56dc162ebda55e1943e35ba31a5/coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7", size = 248116, upload-time = "2025-07-27T14:12:03.099Z" },
|
382
|
+
{ url = "https://files.pythonhosted.org/packages/1d/01/8101f062f472a3a6205b458d18ef0444a63ae5d36a8a5ed5dd0f6167f4db/coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994", size = 249554, upload-time = "2025-07-27T14:12:04.668Z" },
|
383
|
+
{ url = "https://files.pythonhosted.org/packages/8f/7b/e51bc61573e71ff7275a4f167aecbd16cb010aefdf54bcd8b0a133391263/coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0", size = 247766, upload-time = "2025-07-27T14:12:06.234Z" },
|
384
|
+
{ url = "https://files.pythonhosted.org/packages/4b/71/1c96d66a51d4204a9d6d12df53c4071d87e110941a2a1fe94693192262f5/coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7", size = 245735, upload-time = "2025-07-27T14:12:08.305Z" },
|
385
|
+
{ url = "https://files.pythonhosted.org/packages/13/d5/efbc2ac4d35ae2f22ef6df2ca084c60e13bd9378be68655e3268c80349ab/coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7", size = 247118, upload-time = "2025-07-27T14:12:09.903Z" },
|
386
|
+
{ url = "https://files.pythonhosted.org/packages/d1/22/073848352bec28ca65f2b6816b892fcf9a31abbef07b868487ad15dd55f1/coverage-7.10.1-cp313-cp313-win32.whl", hash = "sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7", size = 217381, upload-time = "2025-07-27T14:12:11.535Z" },
|
387
|
+
{ url = "https://files.pythonhosted.org/packages/b7/df/df6a0ff33b042f000089bd11b6bb034bab073e2ab64a56e78ed882cba55d/coverage-7.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e", size = 218152, upload-time = "2025-07-27T14:12:13.182Z" },
|
388
|
+
{ url = "https://files.pythonhosted.org/packages/30/e3/5085ca849a40ed6b47cdb8f65471c2f754e19390b5a12fa8abd25cbfaa8f/coverage-7.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4", size = 216559, upload-time = "2025-07-27T14:12:14.807Z" },
|
389
|
+
{ url = "https://files.pythonhosted.org/packages/cc/93/58714efbfdeb547909feaabe1d67b2bdd59f0597060271b9c548d5efb529/coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72", size = 215677, upload-time = "2025-07-27T14:12:16.68Z" },
|
390
|
+
{ url = "https://files.pythonhosted.org/packages/c0/0c/18eaa5897e7e8cb3f8c45e563e23e8a85686b4585e29d53cacb6bc9cb340/coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af", size = 215899, upload-time = "2025-07-27T14:12:18.758Z" },
|
391
|
+
{ url = "https://files.pythonhosted.org/packages/84/c1/9d1affacc3c75b5a184c140377701bbf14fc94619367f07a269cd9e4fed6/coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7", size = 257140, upload-time = "2025-07-27T14:12:20.357Z" },
|
392
|
+
{ url = "https://files.pythonhosted.org/packages/3d/0f/339bc6b8fa968c346df346068cca1f24bdea2ddfa93bb3dc2e7749730962/coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759", size = 259005, upload-time = "2025-07-27T14:12:22.007Z" },
|
393
|
+
{ url = "https://files.pythonhosted.org/packages/c8/22/89390864b92ea7c909079939b71baba7e5b42a76bf327c1d615bd829ba57/coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324", size = 261143, upload-time = "2025-07-27T14:12:23.746Z" },
|
394
|
+
{ url = "https://files.pythonhosted.org/packages/2c/56/3d04d89017c0c41c7a71bd69b29699d919b6bbf2649b8b2091240b97dd6a/coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53", size = 258735, upload-time = "2025-07-27T14:12:25.73Z" },
|
395
|
+
{ url = "https://files.pythonhosted.org/packages/cb/40/312252c8afa5ca781063a09d931f4b9409dc91526cd0b5a2b84143ffafa2/coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f", size = 256871, upload-time = "2025-07-27T14:12:27.767Z" },
|
396
|
+
{ url = "https://files.pythonhosted.org/packages/1f/2b/564947d5dede068215aaddb9e05638aeac079685101462218229ddea9113/coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd", size = 257692, upload-time = "2025-07-27T14:12:29.347Z" },
|
397
|
+
{ url = "https://files.pythonhosted.org/packages/93/1b/c8a867ade85cb26d802aea2209b9c2c80613b9c122baa8c8ecea6799648f/coverage-7.10.1-cp313-cp313t-win32.whl", hash = "sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c", size = 218059, upload-time = "2025-07-27T14:12:31.076Z" },
|
398
|
+
{ url = "https://files.pythonhosted.org/packages/a1/fe/cd4ab40570ae83a516bf5e754ea4388aeedd48e660e40c50b7713ed4f930/coverage-7.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18", size = 219150, upload-time = "2025-07-27T14:12:32.746Z" },
|
399
|
+
{ url = "https://files.pythonhosted.org/packages/8d/16/6e5ed5854be6d70d0c39e9cb9dd2449f2c8c34455534c32c1a508c7dbdb5/coverage-7.10.1-cp313-cp313t-win_arm64.whl", hash = "sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4", size = 217014, upload-time = "2025-07-27T14:12:34.406Z" },
|
400
|
+
{ url = "https://files.pythonhosted.org/packages/0f/64/922899cff2c0fd3496be83fa8b81230f5a8d82a2ad30f98370b133c2c83b/coverage-7.10.1-py3-none-any.whl", hash = "sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7", size = 206597, upload-time = "2025-07-27T14:13:37.221Z" },
|
401
401
|
]
|
402
402
|
|
403
403
|
[[package]]
|
@@ -437,11 +437,11 @@ wheels = [
|
|
437
437
|
|
438
438
|
[[package]]
|
439
439
|
name = "distlib"
|
440
|
-
version = "0.
|
440
|
+
version = "0.4.0"
|
441
441
|
source = { registry = "https://pypi.org/simple" }
|
442
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
442
|
+
sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" }
|
443
443
|
wheels = [
|
444
|
-
{ url = "https://files.pythonhosted.org/packages/
|
444
|
+
{ url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" },
|
445
445
|
]
|
446
446
|
|
447
447
|
[[package]]
|
@@ -1063,14 +1063,14 @@ wheels = [
|
|
1063
1063
|
|
1064
1064
|
[[package]]
|
1065
1065
|
name = "pytest-asyncio"
|
1066
|
-
version = "1.
|
1066
|
+
version = "1.1.0"
|
1067
1067
|
source = { registry = "https://pypi.org/simple" }
|
1068
1068
|
dependencies = [
|
1069
1069
|
{ name = "pytest" },
|
1070
1070
|
]
|
1071
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
1071
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4e/51/f8794af39eeb870e87a8c8068642fc07bce0c854d6865d7dd0f2a9d338c2/pytest_asyncio-1.1.0.tar.gz", hash = "sha256:796aa822981e01b68c12e4827b8697108f7205020f24b5793b3c41555dab68ea", size = 46652, upload-time = "2025-07-16T04:29:26.393Z" }
|
1072
1072
|
wheels = [
|
1073
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1073
|
+
{ url = "https://files.pythonhosted.org/packages/c7/9d/bf86eddabf8c6c9cb1ea9a869d6873b46f105a5d292d3a6f7071f5b07935/pytest_asyncio-1.1.0-py3-none-any.whl", hash = "sha256:5fe2d69607b0bd75c656d1211f969cadba035030156745ee09e7d71740e58ecf", size = 15157, upload-time = "2025-07-16T04:29:24.929Z" },
|
1074
1074
|
]
|
1075
1075
|
|
1076
1076
|
[[package]]
|
@@ -1184,7 +1184,7 @@ testing = [
|
|
1184
1184
|
|
1185
1185
|
[package.metadata]
|
1186
1186
|
requires-dist = [
|
1187
|
-
{ name = "aiobotocore", specifier = "~=2.23.
|
1187
|
+
{ name = "aiobotocore", specifier = "~=2.23.2" },
|
1188
1188
|
{ name = "aiohttp", extras = ["speedups"], specifier = "~=3.12.14" },
|
1189
1189
|
{ name = "asyncpg", specifier = "~=0.30.0" },
|
1190
1190
|
{ name = "fastapi-users", extras = ["sqlalchemy"], specifier = "~=14.0.1" },
|
@@ -1206,7 +1206,7 @@ dev = [
|
|
1206
1206
|
{ name = "pip", specifier = "==25.1.1" },
|
1207
1207
|
{ name = "pre-commit", specifier = "==4.2.0" },
|
1208
1208
|
{ name = "pyright", specifier = "==1.1.403" },
|
1209
|
-
{ name = "ruff", specifier = "==0.12.
|
1209
|
+
{ name = "ruff", specifier = "==0.12.5" },
|
1210
1210
|
{ name = "setuptools", specifier = "==80.9.0" },
|
1211
1211
|
{ name = "setuptools-scm", specifier = "==8.3.1" },
|
1212
1212
|
{ name = "types-aiobotocore-s3" },
|
@@ -1298,27 +1298,27 @@ wheels = [
|
|
1298
1298
|
|
1299
1299
|
[[package]]
|
1300
1300
|
name = "ruff"
|
1301
|
-
version = "0.12.
|
1302
|
-
source = { registry = "https://pypi.org/simple" }
|
1303
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
1304
|
-
wheels = [
|
1305
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1306
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1307
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1308
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1309
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1310
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1311
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1312
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1313
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1314
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1315
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1316
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1317
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1318
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1319
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1320
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1321
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1301
|
+
version = "0.12.5"
|
1302
|
+
source = { registry = "https://pypi.org/simple" }
|
1303
|
+
sdist = { url = "https://files.pythonhosted.org/packages/30/cd/01015eb5034605fd98d829c5839ec2c6b4582b479707f7c1c2af861e8258/ruff-0.12.5.tar.gz", hash = "sha256:b209db6102b66f13625940b7f8c7d0f18e20039bb7f6101fbdac935c9612057e", size = 5170722, upload-time = "2025-07-24T13:26:37.456Z" }
|
1304
|
+
wheels = [
|
1305
|
+
{ url = "https://files.pythonhosted.org/packages/d4/de/ad2f68f0798ff15dd8c0bcc2889558970d9a685b3249565a937cd820ad34/ruff-0.12.5-py3-none-linux_armv6l.whl", hash = "sha256:1de2c887e9dec6cb31fcb9948299de5b2db38144e66403b9660c9548a67abd92", size = 11819133, upload-time = "2025-07-24T13:25:56.369Z" },
|
1306
|
+
{ url = "https://files.pythonhosted.org/packages/f8/fc/c6b65cd0e7fbe60f17e7ad619dca796aa49fbca34bb9bea5f8faf1ec2643/ruff-0.12.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d1ab65e7d8152f519e7dea4de892317c9da7a108da1c56b6a3c1d5e7cf4c5e9a", size = 12501114, upload-time = "2025-07-24T13:25:59.471Z" },
|
1307
|
+
{ url = "https://files.pythonhosted.org/packages/c5/de/c6bec1dce5ead9f9e6a946ea15e8d698c35f19edc508289d70a577921b30/ruff-0.12.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:962775ed5b27c7aa3fdc0d8f4d4433deae7659ef99ea20f783d666e77338b8cf", size = 11716873, upload-time = "2025-07-24T13:26:01.496Z" },
|
1308
|
+
{ url = "https://files.pythonhosted.org/packages/a1/16/cf372d2ebe91e4eb5b82a2275c3acfa879e0566a7ac94d331ea37b765ac8/ruff-0.12.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73b4cae449597e7195a49eb1cdca89fd9fbb16140c7579899e87f4c85bf82f73", size = 11958829, upload-time = "2025-07-24T13:26:03.721Z" },
|
1309
|
+
{ url = "https://files.pythonhosted.org/packages/25/bf/cd07e8f6a3a6ec746c62556b4c4b79eeb9b0328b362bb8431b7b8afd3856/ruff-0.12.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b13489c3dc50de5e2d40110c0cce371e00186b880842e245186ca862bf9a1ac", size = 11626619, upload-time = "2025-07-24T13:26:06.118Z" },
|
1310
|
+
{ url = "https://files.pythonhosted.org/packages/d8/c9/c2ccb3b8cbb5661ffda6925f81a13edbb786e623876141b04919d1128370/ruff-0.12.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1504fea81461cf4841778b3ef0a078757602a3b3ea4b008feb1308cb3f23e08", size = 13221894, upload-time = "2025-07-24T13:26:08.292Z" },
|
1311
|
+
{ url = "https://files.pythonhosted.org/packages/6b/58/68a5be2c8e5590ecdad922b2bcd5583af19ba648f7648f95c51c3c1eca81/ruff-0.12.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c7da4129016ae26c32dfcbd5b671fe652b5ab7fc40095d80dcff78175e7eddd4", size = 14163909, upload-time = "2025-07-24T13:26:10.474Z" },
|
1312
|
+
{ url = "https://files.pythonhosted.org/packages/bd/d1/ef6b19622009ba8386fdb792c0743f709cf917b0b2f1400589cbe4739a33/ruff-0.12.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca972c80f7ebcfd8af75a0f18b17c42d9f1ef203d163669150453f50ca98ab7b", size = 13583652, upload-time = "2025-07-24T13:26:13.381Z" },
|
1313
|
+
{ url = "https://files.pythonhosted.org/packages/62/e3/1c98c566fe6809a0c83751d825a03727f242cdbe0d142c9e292725585521/ruff-0.12.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8dbbf9f25dfb501f4237ae7501d6364b76a01341c6f1b2cd6764fe449124bb2a", size = 12700451, upload-time = "2025-07-24T13:26:15.488Z" },
|
1314
|
+
{ url = "https://files.pythonhosted.org/packages/24/ff/96058f6506aac0fbc0d0fc0d60b0d0bd746240a0594657a2d94ad28033ba/ruff-0.12.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c47dea6ae39421851685141ba9734767f960113d51e83fd7bb9958d5be8763a", size = 12937465, upload-time = "2025-07-24T13:26:17.808Z" },
|
1315
|
+
{ url = "https://files.pythonhosted.org/packages/eb/d3/68bc5e7ab96c94b3589d1789f2dd6dd4b27b263310019529ac9be1e8f31b/ruff-0.12.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c5076aa0e61e30f848846f0265c873c249d4b558105b221be1828f9f79903dc5", size = 11771136, upload-time = "2025-07-24T13:26:20.422Z" },
|
1316
|
+
{ url = "https://files.pythonhosted.org/packages/52/75/7356af30a14584981cabfefcf6106dea98cec9a7af4acb5daaf4b114845f/ruff-0.12.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a5a4c7830dadd3d8c39b1cc85386e2c1e62344f20766be6f173c22fb5f72f293", size = 11601644, upload-time = "2025-07-24T13:26:22.928Z" },
|
1317
|
+
{ url = "https://files.pythonhosted.org/packages/c2/67/91c71d27205871737cae11025ee2b098f512104e26ffd8656fd93d0ada0a/ruff-0.12.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:46699f73c2b5b137b9dc0fc1a190b43e35b008b398c6066ea1350cce6326adcb", size = 12478068, upload-time = "2025-07-24T13:26:26.134Z" },
|
1318
|
+
{ url = "https://files.pythonhosted.org/packages/34/04/b6b00383cf2f48e8e78e14eb258942fdf2a9bf0287fbf5cdd398b749193a/ruff-0.12.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5a655a0a0d396f0f072faafc18ebd59adde8ca85fb848dc1b0d9f024b9c4d3bb", size = 12991537, upload-time = "2025-07-24T13:26:28.533Z" },
|
1319
|
+
{ url = "https://files.pythonhosted.org/packages/3e/b9/053d6445dc7544fb6594785056d8ece61daae7214859ada4a152ad56b6e0/ruff-0.12.5-py3-none-win32.whl", hash = "sha256:dfeb2627c459b0b78ca2bbdc38dd11cc9a0a88bf91db982058b26ce41714ffa9", size = 11751575, upload-time = "2025-07-24T13:26:30.835Z" },
|
1320
|
+
{ url = "https://files.pythonhosted.org/packages/bc/0f/ab16e8259493137598b9149734fec2e06fdeda9837e6f634f5c4e35916da/ruff-0.12.5-py3-none-win_amd64.whl", hash = "sha256:ae0d90cf5f49466c954991b9d8b953bd093c32c27608e409ae3564c63c5306a5", size = 12882273, upload-time = "2025-07-24T13:26:32.929Z" },
|
1321
|
+
{ url = "https://files.pythonhosted.org/packages/00/db/c376b0661c24cf770cb8815268190668ec1330eba8374a126ceef8c72d55/ruff-0.12.5-py3-none-win_arm64.whl", hash = "sha256:48cdbfc633de2c5c37d9f090ba3b352d1576b0015bfc3bc98eaf230275b7e805", size = 11951564, upload-time = "2025-07-24T13:26:34.994Z" },
|
1322
1322
|
]
|
1323
1323
|
|
1324
1324
|
[[package]]
|
@@ -1389,23 +1389,23 @@ asyncio = [
|
|
1389
1389
|
|
1390
1390
|
[[package]]
|
1391
1391
|
name = "starlette"
|
1392
|
-
version = "0.47.
|
1392
|
+
version = "0.47.2"
|
1393
1393
|
source = { registry = "https://pypi.org/simple" }
|
1394
1394
|
dependencies = [
|
1395
1395
|
{ name = "anyio" },
|
1396
1396
|
]
|
1397
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
1397
|
+
sdist = { url = "https://files.pythonhosted.org/packages/04/57/d062573f391d062710d4088fa1369428c38d51460ab6fedff920efef932e/starlette-0.47.2.tar.gz", hash = "sha256:6ae9aa5db235e4846decc1e7b79c4f346adf41e9777aebeb49dfd09bbd7023d8", size = 2583948, upload-time = "2025-07-20T17:31:58.522Z" }
|
1398
1398
|
wheels = [
|
1399
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1399
|
+
{ url = "https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl", hash = "sha256:c5847e96134e5c5371ee9fac6fdf1a67336d5815e09eb2a01fdb57a351ef915b", size = 72984, upload-time = "2025-07-20T17:31:56.738Z" },
|
1400
1400
|
]
|
1401
1401
|
|
1402
1402
|
[[package]]
|
1403
1403
|
name = "types-aiobotocore-s3"
|
1404
|
-
version = "2.23.
|
1404
|
+
version = "2.23.2"
|
1405
1405
|
source = { registry = "https://pypi.org/simple" }
|
1406
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
1406
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b8/8d/ef46488c36bc5ae85431d266dac0699671e35b01dbdb5d439015c2865c88/types_aiobotocore_s3-2.23.2.tar.gz", hash = "sha256:f01a08178db31fdee38900965a43077ab598b45c9b548f3ff1512d6aca45e382", size = 76373, upload-time = "2025-07-25T01:59:30.95Z" }
|
1407
1407
|
wheels = [
|
1408
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1408
|
+
{ url = "https://files.pythonhosted.org/packages/5b/81/cce979e19bdf52c4697e639bea562c5f1be75596bde5b310fef81822032a/types_aiobotocore_s3-2.23.2-py3-none-any.whl", hash = "sha256:e0baf323fad6102b27a0d63789415499d879f5f219547097468ef3c7e97b3f13", size = 83822, upload-time = "2025-07-25T01:59:29.051Z" },
|
1409
1409
|
]
|
1410
1410
|
|
1411
1411
|
[[package]]
|
@@ -1454,16 +1454,16 @@ libvalkey = [
|
|
1454
1454
|
|
1455
1455
|
[[package]]
|
1456
1456
|
name = "virtualenv"
|
1457
|
-
version = "20.
|
1457
|
+
version = "20.32.0"
|
1458
1458
|
source = { registry = "https://pypi.org/simple" }
|
1459
1459
|
dependencies = [
|
1460
1460
|
{ name = "distlib" },
|
1461
1461
|
{ name = "filelock" },
|
1462
1462
|
{ name = "platformdirs" },
|
1463
1463
|
]
|
1464
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
1464
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a9/96/0834f30fa08dca3738614e6a9d42752b6420ee94e58971d702118f7cfd30/virtualenv-20.32.0.tar.gz", hash = "sha256:886bf75cadfdc964674e6e33eb74d787dff31ca314ceace03ca5810620f4ecf0", size = 6076970, upload-time = "2025-07-21T04:09:50.985Z" }
|
1465
1465
|
wheels = [
|
1466
|
-
{ url = "https://files.pythonhosted.org/packages/
|
1466
|
+
{ url = "https://files.pythonhosted.org/packages/5c/c6/f8f28009920a736d0df434b52e9feebfb4d702ba942f15338cb4a83eafc1/virtualenv-20.32.0-py3-none-any.whl", hash = "sha256:2c310aecb62e5aa1b06103ed7c2977b81e042695de2697d01017ff0f1034af56", size = 6057761, upload-time = "2025-07-21T04:09:48.059Z" },
|
1467
1467
|
]
|
1468
1468
|
|
1469
1469
|
[[package]]
|
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.9.4 → python3_commons-0.9.5}/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
|
File without changes
|