This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-releases-client.git
The following commit(s) were added to refs/heads/main by this push:
new a39527a Use the renamed API endpoint to list release files
a39527a is described below
commit a39527afabfc938977ea4fe7eb782d8bfcbf603b
Author: Sean B. Palmer <[email protected]>
AuthorDate: Tue Jul 29 14:11:55 2025 +0100
Use the renamed API endpoint to list release files
---
pyproject.toml | 4 +-
src/atrclient/client.py | 24 +++++----
src/atrclient/models/api.py | 121 +++++++++++++++++++-------------------------
uv.lock | 57 +++++++++------------
4 files changed, 90 insertions(+), 116 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index fbf9c23..2aa08de 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -11,7 +11,7 @@ build-backend = "hatchling.build"
[project]
name = "apache-trusted-releases"
-version = "0.20250728.1919"
+version = "0.20250729.1311"
description = "ATR CLI and Python API"
readme = "README.md"
requires-python = ">=3.13"
@@ -74,4 +74,4 @@ select = [
]
[tool.uv]
-exclude-newer = "2025-07-28T19:19:00Z"
+exclude-newer = "2025-07-29T13:11:00Z"
diff --git a/src/atrclient/client.py b/src/atrclient/client.py
index 90f505f..23554b3 100755
--- a/src/atrclient/client.py
+++ b/src/atrclient/client.py
@@ -212,12 +212,6 @@ def api_keys_user(api: ApiGet, asf_uid: str) ->
models.api.KeysUserResults:
return models.api.validate_keys_user(response)
-@api_get("/list")
-def api_list(api: ApiGet, project: str, version: str) ->
models.api.ListResults:
- response = api.get(project, version)
- return models.api.validate_list(response)
-
-
@api_post("/releases/create")
def api_releases_create(api: ApiPost, args: models.api.ReleasesCreateArgs) ->
models.api.ReleasesCreateResults:
response = api.post(args)
@@ -230,6 +224,14 @@ def api_releases_delete(api: ApiPost, args:
models.api.ReleasesDeleteArgs) -> mo
return models.api.validate_releases_delete(response)
+@api_get("/releases/paths")
+def api_releases_paths(
+ api: ApiGet, project: str, version: str, revision: str | None = None
+) -> models.api.ReleasesPathsResults:
+ response = api.get(project, version, revision=revision)
+ return models.api.validate_releases_paths(response)
+
+
@api_get("/releases/project")
def api_releases_project(api: ApiGet, project: str) ->
models.api.ReleasesProjectResults:
response = api.get(project)
@@ -732,8 +734,8 @@ def app_keys_user(asf_uid: str | None = None) -> None:
@APP.command(name="list", help="List all files within a release.")
def app_list(project: str, version: str, revision: str | None = None, /) ->
None:
- list_results = api_list(project, version, revision)
- for rel_path in list_results.rel_paths:
+ releases_paths = api_releases_paths(project, version, revision)
+ for rel_path in releases_paths.rel_paths:
print(rel_path)
@@ -1107,11 +1109,11 @@ def config_jwt_refresh(asf_uid: str | None = None) ->
str:
show_error_and_exit("No ASF UID provided and asf.uid not configured.")
host, verify_ssl = config_host_get()
- url = f"https://{host}/api/jwt"
- args = models.api.JwtArgs(asfuid=asf_uid, pat=pat_value)
+ url = f"https://{host}/api/jwt/create"
+ args = models.api.JwtCreateArgs(asfuid=asf_uid, pat=pat_value)
response = asyncio.run(web_post(url, args, jwt_token=None,
verify_ssl=verify_ssl))
try:
- jwt_results = models.api.validate_jwt(response)
+ jwt_results = models.api.validate_jwt_create(response)
except (pydantic.ValidationError, models.api.ResultsTypeError) as e:
show_error_and_exit(f"Unexpected API response: {response}\n{e}")
diff --git a/src/atrclient/models/api.py b/src/atrclient/models/api.py
index 820d466..61c82cc 100644
--- a/src/atrclient/models/api.py
+++ b/src/atrclient/models/api.py
@@ -66,7 +66,7 @@ class ChecksListResults(schema.Strict):
class ChecksOngoingResults(schema.Strict):
endpoint: Literal["/checks/ongoing"] = schema.Field(alias="endpoint")
- ongoing: int
+ ongoing: int = schema.Field(..., **example(10))
class CommitteesGetResults(schema.Strict):
@@ -90,67 +90,47 @@ class CommitteesProjectsResults(schema.Strict):
class DraftDeleteArgs(schema.Strict):
- project: str
- version: str
+ project: str = schema.Field(..., **example("example"))
+ version: str = schema.Field(..., **example("0.0.1"))
class DraftDeleteResults(schema.Strict):
endpoint: Literal["/draft/delete"] = schema.Field(alias="endpoint")
- success: str
-
-
-class ListResults(schema.Strict):
- endpoint: Literal["/list"] = schema.Field(alias="endpoint")
- rel_paths: Sequence[str]
-
+ success: str = schema.Field(..., **example("Draft 'example-0.0.1'
deleted"))
-class JwtArgs(schema.Strict):
- asfuid: str
- pat: str
+class JwtCreateArgs(schema.Strict):
+ asfuid: str = schema.Field(..., **example("user"))
+ pat: str = schema.Field(...,
**example("8M5t4GCU63EdOy4NNXgXn7o-bc-muK8TRg5W-DeBaWY"))
-class JwtResults(schema.Strict):
- endpoint: Literal["/jwt"] = schema.Field(alias="endpoint")
- asfuid: str
- jwt: str
-
[email protected]
-class KeysQuery:
- offset: int = 0
- limit: int = 20
-
-
-class KeysResults(schema.Strict):
- endpoint: Literal["/keys"] = schema.Field(alias="endpoint")
- data: Sequence[sql.PublicSigningKey]
- count: int
+class JwtCreateResults(schema.Strict):
+ endpoint: Literal["/jwt/create"] = schema.Field(alias="endpoint")
+ asfuid: str = schema.Field(..., **example("user"))
+ jwt: str = schema.Field(...,
**example("eyJhbGciOiJIUzI1[...]mMjLiuyu5CSpyHI="))
class KeysAddArgs(schema.Strict):
- asfuid: str
- key: str
- committees: list[str]
+ asfuid: str = schema.Field(..., **example("user"))
+ key: str = schema.Field(
+ ..., **example("-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n...\n-----END
PGP PUBLIC KEY BLOCK-----\n")
+ )
+ committees: list[str] = schema.Field(..., **example(["example"]))
class KeysAddResults(schema.Strict):
endpoint: Literal["/keys/add"] = schema.Field(alias="endpoint")
- success: str
- fingerprint: str
-
-
-# class KeysCommitteeResults(schema.Strict):
-# endpoint: Literal["/keys/committee"] = schema.Field(alias="endpoint")
-# keys: Sequence[sql.PublicSigningKey]
+ success: str = schema.Field(..., **example("Key added"))
+ fingerprint: str = schema.Field(...,
**example("0123456789abcdef0123456789abcdef01234567"))
class KeysDeleteArgs(schema.Strict):
- fingerprint: str
+ fingerprint: str = schema.Field(...,
**example("0123456789abcdef0123456789abcdef01234567"))
class KeysDeleteResults(schema.Strict):
endpoint: Literal["/keys/delete"] = schema.Field(alias="endpoint")
- success: str
+ success: str = schema.Field(..., **example("Key deleted"))
class KeysGetResults(schema.Strict):
@@ -159,15 +139,17 @@ class KeysGetResults(schema.Strict):
class KeysUploadArgs(schema.Strict):
- filetext: str
- committee: str
+ filetext: str = schema.Field(
+ ..., **example("-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n...\n-----END
PGP PUBLIC KEY BLOCK-----\n")
+ )
+ committee: str = schema.Field(..., **example("example"))
class KeysUploadException(schema.Strict):
status: Literal["error"] = schema.Field(alias="status")
key: sql.PublicSigningKey | None
- error: str
- error_type: str
+ error: str = schema.Field(..., **example("Error message"))
+ error_type: str = schema.Field(..., **example("KeysUploadError"))
class KeysUploadResult(schema.Strict):
@@ -193,9 +175,9 @@ KeysUploadOutcomeAdapter =
pydantic.TypeAdapter(KeysUploadOutcome)
class KeysUploadResults(schema.Strict):
endpoint: Literal["/keys/upload"] = schema.Field(alias="endpoint")
results: Sequence[KeysUploadResult | KeysUploadException]
- success_count: int
- error_count: int
- submitted_committee: str
+ success_count: int = schema.Field(..., **example(1))
+ error_count: int = schema.Field(..., **example(0))
+ submitted_committee: str = schema.Field(..., **example("example"))
class KeysUserResults(schema.Strict):
@@ -203,19 +185,19 @@ class KeysUserResults(schema.Strict):
keys: Sequence[sql.PublicSigningKey]
-class ProjectResults(schema.Strict):
- endpoint: Literal["/project"] = schema.Field(alias="endpoint")
+class ProjectsGetResults(schema.Strict):
+ endpoint: Literal["/projects/get"] = schema.Field(alias="endpoint")
project: sql.Project
-class ProjectReleasesResults(schema.Strict):
- endpoint: Literal["/project/releases"] = schema.Field(alias="endpoint")
- releases: Sequence[sql.Release]
+class ProjectsListResults(schema.Strict):
+ endpoint: Literal["/projects/list"] = schema.Field(alias="endpoint")
+ projects: Sequence[sql.Project]
-class ProjectsResults(schema.Strict):
- endpoint: Literal["/projects"] = schema.Field(alias="endpoint")
- projects: Sequence[sql.Project]
+class ProjectsReleasesResults(schema.Strict):
+ endpoint: Literal["/projects/releases"] = schema.Field(alias="endpoint")
+ releases: Sequence[sql.Release]
@dataclasses.dataclass
@@ -251,6 +233,11 @@ class ReleasesDeleteResults(schema.Strict):
deleted: str
+class ReleasesPathsResults(schema.Strict):
+ endpoint: Literal["/releases/paths"] = schema.Field(alias="endpoint")
+ rel_paths: Sequence[str]
+
+
@dataclasses.dataclass
class ReleasesProjectQuery:
limit: int = 20
@@ -421,21 +408,19 @@ Results = Annotated[
| CommitteesListResults
| CommitteesProjectsResults
| DraftDeleteResults
- | JwtResults
- | KeysResults
+ | JwtCreateResults
| KeysAddResults
| KeysDeleteResults
| KeysGetResults
- # | KeysCommitteeResults
| KeysUploadResults
| KeysUserResults
- | ListResults
- | ProjectResults
- | ProjectReleasesResults
- | ProjectsResults
+ | ProjectsGetResults
+ | ProjectsListResults
+ | ProjectsReleasesResults
| ReleasesResults
| ReleasesCreateResults
| ReleasesDeleteResults
+ | ReleasesPathsResults
| ReleasesProjectResults
| ReleasesVersionResults
| ReleasesRevisionsResults
@@ -474,21 +459,19 @@ validate_committees_keys =
validator(CommitteesKeysResults)
validate_committees_list = validator(CommitteesListResults)
validate_committees_projects = validator(CommitteesProjectsResults)
validate_draft_delete = validator(DraftDeleteResults)
-validate_jwt = validator(JwtResults)
-validate_keys = validator(KeysResults)
+validate_jwt_create = validator(JwtCreateResults)
validate_keys_add = validator(KeysAddResults)
-# validate_keys_committee = validator(KeysCommitteeResults)
validate_keys_delete = validator(KeysDeleteResults)
validate_keys_get = validator(KeysGetResults)
validate_keys_upload = validator(KeysUploadResults)
validate_keys_user = validator(KeysUserResults)
-validate_list = validator(ListResults)
-validate_project = validator(ProjectResults)
-validate_project_releases = validator(ProjectReleasesResults)
-validate_projects = validator(ProjectsResults)
+validate_projects_get = validator(ProjectsGetResults)
+validate_projects_list = validator(ProjectsListResults)
+validate_projects_releases = validator(ProjectsReleasesResults)
validate_releases = validator(ReleasesResults)
validate_releases_create = validator(ReleasesCreateResults)
validate_releases_delete = validator(ReleasesDeleteResults)
+validate_releases_paths = validator(ReleasesPathsResults)
validate_releases_project = validator(ReleasesProjectResults)
validate_releases_version = validator(ReleasesVersionResults)
validate_releases_revisions = validator(ReleasesRevisionsResults)
diff --git a/uv.lock b/uv.lock
index 4c1305a..79561d1 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2,7 +2,7 @@ version = 1
requires-python = ">=3.13"
[options]
-exclude-newer = "2025-07-28T19:19:00Z"
+exclude-newer = "2025-07-29T13:11:00Z"
[[package]]
name = "aiohappyeyeballs"
@@ -15,7 +15,7 @@ wheels = [
[[package]]
name = "aiohttp"
-version = "3.12.14"
+version = "3.12.15"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohappyeyeballs" },
@@ -26,25 +26,25 @@ dependencies = [
{ name = "propcache" },
{ name = "yarl" },
]
-sdist = { url =
"https://files.pythonhosted.org/packages/e6/0b/e39ad954107ebf213a2325038a3e7a506be3d98e1435e1f82086eec4cde2/aiohttp-3.12.14.tar.gz",
hash =
"sha256:6e06e120e34d93100de448fd941522e11dafa78ef1a893c179901b7d66aa29f2", size
= 7822921 }
+sdist = { url =
"https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz",
hash =
"sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size
= 7823716 }
wheels = [
- { url =
"https://files.pythonhosted.org/packages/06/48/e0d2fa8ac778008071e7b79b93ab31ef14ab88804d7ba71b5c964a7c844e/aiohttp-3.12.14-cp313-cp313-macosx_10_13_universal2.whl",
hash =
"sha256:3143a7893d94dc82bc409f7308bc10d60285a3cd831a68faf1aa0836c5c3c767", size
= 695471 },
- { url =
"https://files.pythonhosted.org/packages/8d/e7/f73206afa33100804f790b71092888f47df65fd9a4cd0e6800d7c6826441/aiohttp-3.12.14-cp313-cp313-macosx_10_13_x86_64.whl",
hash =
"sha256:3d62ac3d506cef54b355bd34c2a7c230eb693880001dfcda0bf88b38f5d7af7e", size
= 473128 },
- { url =
"https://files.pythonhosted.org/packages/df/e2/4dd00180be551a6e7ee979c20fc7c32727f4889ee3fd5b0586e0d47f30e1/aiohttp-3.12.14-cp313-cp313-macosx_11_0_arm64.whl",
hash =
"sha256:48e43e075c6a438937c4de48ec30fa8ad8e6dfef122a038847456bfe7b947b63", size
= 465426 },
- { url =
"https://files.pythonhosted.org/packages/de/dd/525ed198a0bb674a323e93e4d928443a680860802c44fa7922d39436b48b/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:077b4488411a9724cecc436cbc8c133e0d61e694995b8de51aaf351c7578949d", size
= 1704252 },
- { url =
"https://files.pythonhosted.org/packages/d8/b1/01e542aed560a968f692ab4fc4323286e8bc4daae83348cd63588e4f33e3/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl",
hash =
"sha256:d8c35632575653f297dcbc9546305b2c1133391089ab925a6a3706dfa775ccab", size
= 1685514 },
- { url =
"https://files.pythonhosted.org/packages/b3/06/93669694dc5fdabdc01338791e70452d60ce21ea0946a878715688d5a191/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:6b8ce87963f0035c6834b28f061df90cf525ff7c9b6283a8ac23acee6502afd4", size
= 1737586 },
- { url =
"https://files.pythonhosted.org/packages/a5/3a/18991048ffc1407ca51efb49ba8bcc1645961f97f563a6c480cdf0286310/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl",
hash =
"sha256:f0a2cf66e32a2563bb0766eb24eae7e9a269ac0dc48db0aae90b575dc9583026", size
= 1786958 },
- { url =
"https://files.pythonhosted.org/packages/30/a8/81e237f89a32029f9b4a805af6dffc378f8459c7b9942712c809ff9e76e5/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:cdea089caf6d5cde975084a884c72d901e36ef9c2fd972c9f51efbbc64e96fbd", size
= 1709287 },
- { url =
"https://files.pythonhosted.org/packages/8c/e3/bd67a11b0fe7fc12c6030473afd9e44223d456f500f7cf526dbaa259ae46/aiohttp-3.12.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:8a7865f27db67d49e81d463da64a59365ebd6b826e0e4847aa111056dcb9dc88", size
= 1622990 },
- { url =
"https://files.pythonhosted.org/packages/83/ba/e0cc8e0f0d9ce0904e3cf2d6fa41904e379e718a013c721b781d53dcbcca/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_aarch64.whl",
hash =
"sha256:0ab5b38a6a39781d77713ad930cb5e7feea6f253de656a5f9f281a8f5931b086", size
= 1676015 },
- { url =
"https://files.pythonhosted.org/packages/d8/b3/1e6c960520bda094c48b56de29a3d978254637ace7168dd97ddc273d0d6c/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_armv7l.whl",
hash =
"sha256:9b3b15acee5c17e8848d90a4ebc27853f37077ba6aec4d8cb4dbbea56d156933", size
= 1707678 },
- { url =
"https://files.pythonhosted.org/packages/0a/19/929a3eb8c35b7f9f076a462eaa9830b32c7f27d3395397665caa5e975614/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_i686.whl",
hash =
"sha256:e4c972b0bdaac167c1e53e16a16101b17c6d0ed7eac178e653a07b9f7fad7151", size
= 1650274 },
- { url =
"https://files.pythonhosted.org/packages/22/e5/81682a6f20dd1b18ce3d747de8eba11cbef9b270f567426ff7880b096b48/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_ppc64le.whl",
hash =
"sha256:7442488b0039257a3bdbc55f7209587911f143fca11df9869578db6c26feeeb8", size
= 1726408 },
- { url =
"https://files.pythonhosted.org/packages/8c/17/884938dffaa4048302985483f77dfce5ac18339aad9b04ad4aaa5e32b028/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_s390x.whl",
hash =
"sha256:f68d3067eecb64c5e9bab4a26aa11bd676f4c70eea9ef6536b0a4e490639add3", size
= 1759879 },
- { url =
"https://files.pythonhosted.org/packages/95/78/53b081980f50b5cf874359bde707a6eacd6c4be3f5f5c93937e48c9d0025/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_x86_64.whl",
hash =
"sha256:f88d3704c8b3d598a08ad17d06006cb1ca52a1182291f04979e305c8be6c9758", size
= 1708770 },
- { url =
"https://files.pythonhosted.org/packages/ed/91/228eeddb008ecbe3ffa6c77b440597fdf640307162f0c6488e72c5a2d112/aiohttp-3.12.14-cp313-cp313-win32.whl",
hash =
"sha256:a3c99ab19c7bf375c4ae3debd91ca5d394b98b6089a03231d4c580ef3c2ae4c5", size
= 421688 },
- { url =
"https://files.pythonhosted.org/packages/66/5f/8427618903343402fdafe2850738f735fd1d9409d2a8f9bcaae5e630d3ba/aiohttp-3.12.14-cp313-cp313-win_amd64.whl",
hash =
"sha256:3f8aad695e12edc9d571f878c62bedc91adf30c760c8632f09663e5f564f4baa", size
= 448098 },
+ { url =
"https://files.pythonhosted.org/packages/f2/33/918091abcf102e39d15aba2476ad9e7bd35ddb190dcdd43a854000d3da0d/aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl",
hash =
"sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315", size
= 696741 },
+ { url =
"https://files.pythonhosted.org/packages/b5/2a/7495a81e39a998e400f3ecdd44a62107254803d1681d9189be5c2e4530cd/aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl",
hash =
"sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd", size
= 474407 },
+ { url =
"https://files.pythonhosted.org/packages/49/fc/a9576ab4be2dcbd0f73ee8675d16c707cfc12d5ee80ccf4015ba543480c9/aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl",
hash =
"sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4", size
= 466703 },
+ { url =
"https://files.pythonhosted.org/packages/09/2f/d4bcc8448cf536b2b54eed48f19682031ad182faa3a3fee54ebe5b156387/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7", size
= 1705532 },
+ { url =
"https://files.pythonhosted.org/packages/f1/f3/59406396083f8b489261e3c011aa8aee9df360a96ac8fa5c2e7e1b8f0466/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl",
hash =
"sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d", size
= 1686794 },
+ { url =
"https://files.pythonhosted.org/packages/dc/71/164d194993a8d114ee5656c3b7ae9c12ceee7040d076bf7b32fb98a8c5c6/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b", size
= 1738865 },
+ { url =
"https://files.pythonhosted.org/packages/1c/00/d198461b699188a93ead39cb458554d9f0f69879b95078dce416d3209b54/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl",
hash =
"sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d", size
= 1788238 },
+ { url =
"https://files.pythonhosted.org/packages/85/b8/9e7175e1fa0ac8e56baa83bf3c214823ce250d0028955dfb23f43d5e61fd/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d", size
= 1710566 },
+ { url =
"https://files.pythonhosted.org/packages/59/e4/16a8eac9df39b48ae102ec030fa9f726d3570732e46ba0c592aeeb507b93/aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645", size
= 1624270 },
+ { url =
"https://files.pythonhosted.org/packages/1f/f8/cd84dee7b6ace0740908fd0af170f9fab50c2a41ccbc3806aabcb1050141/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl",
hash =
"sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461", size
= 1677294 },
+ { url =
"https://files.pythonhosted.org/packages/ce/42/d0f1f85e50d401eccd12bf85c46ba84f947a84839c8a1c2c5f6e8ab1eb50/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl",
hash =
"sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9", size
= 1708958 },
+ { url =
"https://files.pythonhosted.org/packages/d5/6b/f6fa6c5790fb602538483aa5a1b86fcbad66244997e5230d88f9412ef24c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl",
hash =
"sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d", size
= 1651553 },
+ { url =
"https://files.pythonhosted.org/packages/04/36/a6d36ad545fa12e61d11d1932eef273928b0495e6a576eb2af04297fdd3c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl",
hash =
"sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693", size
= 1727688 },
+ { url =
"https://files.pythonhosted.org/packages/aa/c8/f195e5e06608a97a4e52c5d41c7927301bf757a8e8bb5bbf8cef6c314961/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl",
hash =
"sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64", size
= 1761157 },
+ { url =
"https://files.pythonhosted.org/packages/05/6a/ea199e61b67f25ba688d3ce93f63b49b0a4e3b3d380f03971b4646412fc6/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl",
hash =
"sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51", size
= 1710050 },
+ { url =
"https://files.pythonhosted.org/packages/b4/2e/ffeb7f6256b33635c29dbed29a22a723ff2dd7401fff42ea60cf2060abfb/aiohttp-3.12.15-cp313-cp313-win32.whl",
hash =
"sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0", size
= 422647 },
+ { url =
"https://files.pythonhosted.org/packages/1b/8e/78ee35774201f38d5e1ba079c9958f7629b1fd079459aea9467441dbfbf5/aiohttp-3.12.15-cp313-cp313-win_amd64.whl",
hash =
"sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84", size
= 449067 },
]
[[package]]
@@ -83,7 +83,7 @@ wheels = [
[[package]]
name = "apache-trusted-releases"
-version = "0.20250728.1919"
+version = "0.20250729.1311"
source = { editable = "." }
dependencies = [
{ name = "aiohttp" },
@@ -715,24 +715,13 @@ wheels = [
[[package]]
name = "sqlalchemy"
-version = "2.0.41"
+version = "2.0.42"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "greenlet", marker = "(python_full_version < '3.14' and
platform_machine == 'AMD64') or (python_full_version < '3.14' and
platform_machine == 'WIN32') or (python_full_version < '3.14' and
platform_machine == 'aarch64') or (python_full_version < '3.14' and
platform_machine == 'amd64') or (python_full_version < '3.14' and
platform_machine == 'ppc64le') or (python_full_version < '3.14' and
platform_machine == 'win32') or (python_full_version < '3.14' and
platform_machine == 'x8 [...]
{ name = "typing-extensions" },
]
-sdist = { url =
"https://files.pythonhosted.org/packages/63/66/45b165c595ec89aa7dcc2c1cd222ab269bc753f1fc7a1e68f8481bd957bf/sqlalchemy-2.0.41.tar.gz",
hash =
"sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9", size
= 9689424 }
-wheels = [
- { url =
"https://files.pythonhosted.org/packages/d3/ad/2e1c6d4f235a97eeef52d0200d8ddda16f6c4dd70ae5ad88c46963440480/sqlalchemy-2.0.41-cp313-cp313-macosx_10_13_x86_64.whl",
hash =
"sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443", size
= 2115491 },
- { url =
"https://files.pythonhosted.org/packages/cf/8d/be490e5db8400dacc89056f78a52d44b04fbf75e8439569d5b879623a53b/sqlalchemy-2.0.41-cp313-cp313-macosx_11_0_arm64.whl",
hash =
"sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc", size
= 2102827 },
- { url =
"https://files.pythonhosted.org/packages/a0/72/c97ad430f0b0e78efaf2791342e13ffeafcbb3c06242f01a3bb8fe44f65d/sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1", size
= 3225224 },
- { url =
"https://files.pythonhosted.org/packages/5e/51/5ba9ea3246ea068630acf35a6ba0d181e99f1af1afd17e159eac7e8bc2b8/sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a", size
= 3230045 },
- { url =
"https://files.pythonhosted.org/packages/78/2f/8c14443b2acea700c62f9b4a8bad9e49fc1b65cfb260edead71fd38e9f19/sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_aarch64.whl",
hash =
"sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d", size
= 3159357 },
- { url =
"https://files.pythonhosted.org/packages/fc/b2/43eacbf6ccc5276d76cea18cb7c3d73e294d6fb21f9ff8b4eef9b42bbfd5/sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_x86_64.whl",
hash =
"sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23", size
= 3197511 },
- { url =
"https://files.pythonhosted.org/packages/fa/2e/677c17c5d6a004c3c45334ab1dbe7b7deb834430b282b8a0f75ae220c8eb/sqlalchemy-2.0.41-cp313-cp313-win32.whl",
hash =
"sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f", size
= 2082420 },
- { url =
"https://files.pythonhosted.org/packages/e9/61/e8c1b9b6307c57157d328dd8b8348ddc4c47ffdf1279365a13b2b98b8049/sqlalchemy-2.0.41-cp313-cp313-win_amd64.whl",
hash =
"sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df", size
= 2108329 },
- { url =
"https://files.pythonhosted.org/packages/1c/fc/9ba22f01b5cdacc8f5ed0d22304718d2c758fce3fd49a5372b886a86f37c/sqlalchemy-2.0.41-py3-none-any.whl",
hash =
"sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576", size
= 1911224 },
-]
+sdist = { url =
"https://files.pythonhosted.org/packages/5a/03/a0af991e3a43174d6b83fca4fb399745abceddd1171bdabae48ce877ff47/sqlalchemy-2.0.42.tar.gz",
hash =
"sha256:160bedd8a5c28765bd5be4dec2d881e109e33b34922e50a3b881a7681773ac5f", size
= 9749972 }
[[package]]
name = "sqlmodel"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]