agentscore-py 2.7.1__tar.gz → 2.8.0__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.
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/PKG-INFO +1 -1
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/agentscore/__init__.py +0 -4
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/agentscore/client.py +1 -21
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/agentscore/types.py +1 -39
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/pyproject.toml +1 -1
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/test_client.py +0 -101
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/uv.lock +96 -78
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.claude/CLAUDE.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/dependabot.yml +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/workflows/ci.yml +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/workflows/publish.yml +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.github/workflows/security.yml +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/.gitignore +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/CODE_OF_CONDUCT.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/CONTRIBUTING.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/LICENSE +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/README.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/SECURITY.md +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/agentscore/errors.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/agentscore/py.typed +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/agentscore/test_mode.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/lefthook.yml +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/ruff.toml +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/__init__.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/conftest.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/test_errors.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/test_integration.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/test_test_mode.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/tests/test_types.py +0 -0
- {agentscore_py-2.7.1 → agentscore_py-2.8.0}/vulture_whitelist.py +0 -0
|
@@ -15,8 +15,6 @@ from agentscore.types import (
|
|
|
15
15
|
AccountVerification,
|
|
16
16
|
AgentMemoryHint,
|
|
17
17
|
AgentMemoryIdentityPaths,
|
|
18
|
-
AipProvenance,
|
|
19
|
-
AipSignatureMaterial,
|
|
20
18
|
AssessResponse,
|
|
21
19
|
AssociateWalletResponse,
|
|
22
20
|
CredentialCreateErrorNextSteps,
|
|
@@ -61,8 +59,6 @@ __all__ = [
|
|
|
61
59
|
"AgentMemoryIdentityPaths",
|
|
62
60
|
"AgentScore",
|
|
63
61
|
"AgentScoreError",
|
|
64
|
-
"AipProvenance",
|
|
65
|
-
"AipSignatureMaterial",
|
|
66
62
|
"AssessResponse",
|
|
67
63
|
"AssociateWalletResponse",
|
|
68
64
|
"CredentialCreateErrorNextSteps",
|
|
@@ -133,7 +133,6 @@ if TYPE_CHECKING:
|
|
|
133
133
|
from collections.abc import Awaitable, Callable
|
|
134
134
|
|
|
135
135
|
from agentscore.types import (
|
|
136
|
-
AipSignatureMaterial,
|
|
137
136
|
AssessResponse,
|
|
138
137
|
AssociateWalletResponse,
|
|
139
138
|
CredentialCreateResponse,
|
|
@@ -254,8 +253,6 @@ class AgentScore:
|
|
|
254
253
|
policy: DecisionPolicy | None = None,
|
|
255
254
|
operator_token: str | None = None,
|
|
256
255
|
signer: Signer | None = None,
|
|
257
|
-
aip_token: str | None = None,
|
|
258
|
-
aip_signature: AipSignatureMaterial | None = None,
|
|
259
256
|
) -> AssessResponse:
|
|
260
257
|
"""Assess a wallet or operator against a compliance policy.
|
|
261
258
|
|
|
@@ -264,22 +261,12 @@ class AgentScore:
|
|
|
264
261
|
``signer`` opts into server-side wallet-signer-match: when supplied,
|
|
265
262
|
the API resolves the signer wallet against the claimed ``address`` and emits
|
|
266
263
|
a ``signer_match`` block on the response. See :class:`Signer`.
|
|
267
|
-
|
|
268
|
-
``aip_token`` (+ ``aip_signature``) supplies an AIP Agent Identity Token in place of
|
|
269
|
-
``address`` / ``operator_token``: the API re-verifies the issuer signature, the RFC 9421
|
|
270
|
-
proof-of-possession, and the attested claims, then evaluates policy against them.
|
|
271
264
|
"""
|
|
272
265
|
body: dict[str, Any] = {}
|
|
273
266
|
if address:
|
|
274
267
|
body["address"] = address
|
|
275
268
|
if operator_token:
|
|
276
269
|
body["operator_token"] = operator_token
|
|
277
|
-
# AIP Agent Identity Token path: the API re-verifies the IdP signature + claims
|
|
278
|
-
# server-side and evaluates policy against the attested identity.
|
|
279
|
-
if aip_token:
|
|
280
|
-
body["aip_token"] = aip_token
|
|
281
|
-
if aip_signature is not None:
|
|
282
|
-
body["aip_signature"] = dict(aip_signature)
|
|
283
270
|
if chain:
|
|
284
271
|
body["chain"] = chain
|
|
285
272
|
if refresh is not None:
|
|
@@ -404,25 +391,18 @@ class AgentScore:
|
|
|
404
391
|
policy: DecisionPolicy | None = None,
|
|
405
392
|
operator_token: str | None = None,
|
|
406
393
|
signer: Signer | None = None,
|
|
407
|
-
aip_token: str | None = None,
|
|
408
|
-
aip_signature: AipSignatureMaterial | None = None,
|
|
409
394
|
) -> AssessResponse:
|
|
410
395
|
"""Assess a wallet or operator against a compliance policy.
|
|
411
396
|
|
|
412
397
|
``refresh`` is deprecated: the API ignores it, and every assess is evaluated live.
|
|
413
398
|
|
|
414
|
-
``signer`` opts into server-side wallet-signer-match
|
|
415
|
-
supplies an AIP Agent Identity Token. Async mirror of :meth:`assess`.
|
|
399
|
+
``signer`` opts into server-side wallet-signer-match. Async mirror of :meth:`assess`.
|
|
416
400
|
"""
|
|
417
401
|
body: dict[str, Any] = {}
|
|
418
402
|
if address:
|
|
419
403
|
body["address"] = address
|
|
420
404
|
if operator_token:
|
|
421
405
|
body["operator_token"] = operator_token
|
|
422
|
-
if aip_token:
|
|
423
|
-
body["aip_token"] = aip_token
|
|
424
|
-
if aip_signature is not None:
|
|
425
|
-
body["aip_signature"] = dict(aip_signature)
|
|
426
406
|
if chain:
|
|
427
407
|
body["chain"] = chain
|
|
428
408
|
if refresh is not None:
|
|
@@ -132,43 +132,10 @@ class SignerSanctionsUnavailable(TypedDict):
|
|
|
132
132
|
SignerSanctions = SignerSanctionsClear | SignerSanctionsHit | SignerSanctionsUnavailable
|
|
133
133
|
|
|
134
134
|
|
|
135
|
-
class AipSignatureMaterial(TypedDict):
|
|
136
|
-
"""RFC 9421 HTTP Message Signature material proving possession of the AIT-bound ``cnf`` key.
|
|
137
|
-
|
|
138
|
-
Forwarded alongside ``aip_token`` so ``/v1/assess`` can re-verify proof-of-possession
|
|
139
|
-
authoritatively; the API never sees the original agent-to-merchant request itself.
|
|
140
|
-
"""
|
|
141
|
-
|
|
142
|
-
method: str # HTTP method of the original agent-to-merchant request (``@method``)
|
|
143
|
-
authority: str # Authority/host the agent signed (``@authority``)
|
|
144
|
-
path: str # Request path the agent signed (``@path``)
|
|
145
|
-
signature_input: str # Raw ``Signature-Input`` header value the agent sent
|
|
146
|
-
signature: str # Raw ``Signature`` header value the agent sent
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
class _AipProvenanceRequired(TypedDict):
|
|
150
|
-
issuer: str # Canonical issuer URL of the AIT
|
|
151
|
-
subject: str # The token's ``sub``: the IdP's subject identifier for the verified human
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
class AipProvenance(_AipProvenanceRequired, total=False):
|
|
155
|
-
"""Provenance block returned when the identity input was an AIP Agent Identity Token.
|
|
156
|
-
|
|
157
|
-
Surfaces which issuer attested the identity and the trust level it asserted.
|
|
158
|
-
"""
|
|
159
|
-
|
|
160
|
-
trust_level: Literal["autonomous", "human_present", "human_confirmed"]
|
|
161
|
-
agent_provider: str
|
|
162
|
-
# True when /v1/assess re-verified the RFC 9421 proof-of-possession. Always true on a
|
|
163
|
-
# success response: the API fail-closes with an HTTP 400/401 error (not a 200 deny)
|
|
164
|
-
# when possession can't be proven.
|
|
165
|
-
pop_verified: bool
|
|
166
|
-
|
|
167
|
-
|
|
168
135
|
class _AssessResponseRequired(TypedDict):
|
|
169
136
|
decision: str | None
|
|
170
137
|
decision_reasons: list[str]
|
|
171
|
-
identity_method: Literal["wallet", "operator_token"
|
|
138
|
+
identity_method: Literal["wallet", "operator_token"]
|
|
172
139
|
|
|
173
140
|
|
|
174
141
|
class PolicyExplanation(TypedDict, total=False):
|
|
@@ -223,8 +190,6 @@ class AssessResponse(_AssessResponseRequired, total=False):
|
|
|
223
190
|
# Server-side OFAC SDN wallet-address verdict, returned only when the request supplied
|
|
224
191
|
# ``signer``. Empty otherwise.
|
|
225
192
|
signer_sanctions: NotRequired[SignerSanctions]
|
|
226
|
-
# Issuer provenance, returned only when ``identity_method == "aip_token"``.
|
|
227
|
-
aip: NotRequired[AipProvenance]
|
|
228
193
|
# Quota state for this account, captured from response headers on the success path.
|
|
229
194
|
# Use to monitor approach-to-cap proactively (warn at 80%, alert at 95%) before 429.
|
|
230
195
|
quota: NotRequired[QuotaInfo]
|
|
@@ -446,7 +411,6 @@ NextStepsAction = Literal[
|
|
|
446
411
|
class AgentMemoryIdentityPaths(TypedDict):
|
|
447
412
|
wallet: str
|
|
448
413
|
operator_token: str
|
|
449
|
-
agent_identity: NotRequired[str]
|
|
450
414
|
|
|
451
415
|
|
|
452
416
|
class AgentMemoryHint(TypedDict):
|
|
@@ -463,8 +427,6 @@ class AgentMemoryHint(TypedDict):
|
|
|
463
427
|
identity_check_endpoint: str
|
|
464
428
|
list_wallets_endpoint: NotRequired[str]
|
|
465
429
|
identity_paths: AgentMemoryIdentityPaths
|
|
466
|
-
# Issuer allowlist a merchant accepts for AIP Agent Identity Tokens, when advertised.
|
|
467
|
-
aip_trusted_issuers: NotRequired[list[str]]
|
|
468
430
|
bootstrap: str
|
|
469
431
|
do_not_persist_in_memory: list[str]
|
|
470
432
|
persist_in_credential_store: list[str]
|
|
@@ -353,107 +353,6 @@ def test_assess_signer_raises_token_expired_with_signer():
|
|
|
353
353
|
assert body["signer"] == {"address": "0xs", "network": "evm"}
|
|
354
354
|
|
|
355
355
|
|
|
356
|
-
# ---------------------------------------------------------------------------
|
|
357
|
-
# assess: AIP Agent Identity Token (aip_token + aip_signature)
|
|
358
|
-
# ---------------------------------------------------------------------------
|
|
359
|
-
|
|
360
|
-
AIP_TOKEN = "eyJhbGciOiJFZERTQSJ9.ait.payload"
|
|
361
|
-
|
|
362
|
-
AIP_SIGNATURE = {
|
|
363
|
-
"method": "POST",
|
|
364
|
-
"authority": "merchant.example.com",
|
|
365
|
-
"path": "/premium/report",
|
|
366
|
-
"signature_input": 'sig1=("@method" "@authority" "@path");keyid="agent-cnf-key";alg="ed25519"',
|
|
367
|
-
"signature": "sig1=:dGVzdC1zaWduYXR1cmU=:",
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
AIP_ASSESS_PAYLOAD = {
|
|
371
|
-
**ASSESS_PAYLOAD,
|
|
372
|
-
"identity_method": "aip_token",
|
|
373
|
-
"aip": {
|
|
374
|
-
"issuer": "https://www.agentscore.com",
|
|
375
|
-
"subject": "user_2abc",
|
|
376
|
-
"trust_level": "human_present",
|
|
377
|
-
"agent_provider": "openai",
|
|
378
|
-
"pop_verified": True,
|
|
379
|
-
},
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
@respx.mock
|
|
384
|
-
def test_assess_forwards_aip_token_and_signature_in_body():
|
|
385
|
-
"""aip_token + all 5 RFC 9421 PoP fields of aip_signature land in the request body."""
|
|
386
|
-
route = respx.post(f"{BASE_URL}/v1/assess").mock(return_value=httpx.Response(200, json=AIP_ASSESS_PAYLOAD))
|
|
387
|
-
client = AgentScore(api_key=API_KEY)
|
|
388
|
-
client.assess(aip_token=AIP_TOKEN, aip_signature=AIP_SIGNATURE)
|
|
389
|
-
body = json.loads(route.calls.last.request.content)
|
|
390
|
-
assert body["aip_token"] == AIP_TOKEN
|
|
391
|
-
assert body["aip_signature"] == {
|
|
392
|
-
"method": "POST",
|
|
393
|
-
"authority": "merchant.example.com",
|
|
394
|
-
"path": "/premium/report",
|
|
395
|
-
"signature_input": 'sig1=("@method" "@authority" "@path");keyid="agent-cnf-key";alg="ed25519"',
|
|
396
|
-
"signature": "sig1=:dGVzdC1zaWduYXR1cmU=:",
|
|
397
|
-
}
|
|
398
|
-
assert "address" not in body
|
|
399
|
-
assert "operator_token" not in body
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
@respx.mock
|
|
403
|
-
def test_assess_returns_aip_provenance():
|
|
404
|
-
"""The aip block (incl. pop_verified) and identity_method round-trip on the response."""
|
|
405
|
-
respx.post(f"{BASE_URL}/v1/assess").mock(return_value=httpx.Response(200, json=AIP_ASSESS_PAYLOAD))
|
|
406
|
-
client = AgentScore(api_key=API_KEY)
|
|
407
|
-
result = client.assess(aip_token=AIP_TOKEN, aip_signature=AIP_SIGNATURE)
|
|
408
|
-
assert result["identity_method"] == "aip_token"
|
|
409
|
-
assert result["aip"]["issuer"] == "https://www.agentscore.com"
|
|
410
|
-
assert result["aip"]["subject"] == "user_2abc"
|
|
411
|
-
assert result["aip"]["trust_level"] == "human_present"
|
|
412
|
-
assert result["aip"]["agent_provider"] == "openai"
|
|
413
|
-
assert result["aip"]["pop_verified"] is True
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
@respx.mock
|
|
417
|
-
def test_assess_omits_aip_fields_when_not_provided():
|
|
418
|
-
route = respx.post(f"{BASE_URL}/v1/assess").mock(return_value=httpx.Response(200, json=ASSESS_PAYLOAD))
|
|
419
|
-
client = AgentScore(api_key=API_KEY)
|
|
420
|
-
client.assess(ADDRESS)
|
|
421
|
-
body = json.loads(route.calls.last.request.content)
|
|
422
|
-
assert "aip_token" not in body
|
|
423
|
-
assert "aip_signature" not in body
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
@pytest.mark.asyncio
|
|
427
|
-
@respx.mock
|
|
428
|
-
async def test_aassess_forwards_aip_token_and_signature_in_body():
|
|
429
|
-
route = respx.post(f"{BASE_URL}/v1/assess").mock(return_value=httpx.Response(200, json=AIP_ASSESS_PAYLOAD))
|
|
430
|
-
client = AgentScore(api_key=API_KEY)
|
|
431
|
-
await client.aassess(aip_token=AIP_TOKEN, aip_signature=AIP_SIGNATURE)
|
|
432
|
-
body = json.loads(route.calls.last.request.content)
|
|
433
|
-
assert body["aip_token"] == AIP_TOKEN
|
|
434
|
-
assert body["aip_signature"] == {
|
|
435
|
-
"method": "POST",
|
|
436
|
-
"authority": "merchant.example.com",
|
|
437
|
-
"path": "/premium/report",
|
|
438
|
-
"signature_input": 'sig1=("@method" "@authority" "@path");keyid="agent-cnf-key";alg="ed25519"',
|
|
439
|
-
"signature": "sig1=:dGVzdC1zaWduYXR1cmU=:",
|
|
440
|
-
}
|
|
441
|
-
assert "address" not in body
|
|
442
|
-
await client.aclose()
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
@pytest.mark.asyncio
|
|
446
|
-
@respx.mock
|
|
447
|
-
async def test_aassess_returns_aip_provenance():
|
|
448
|
-
respx.post(f"{BASE_URL}/v1/assess").mock(return_value=httpx.Response(200, json=AIP_ASSESS_PAYLOAD))
|
|
449
|
-
client = AgentScore(api_key=API_KEY)
|
|
450
|
-
result = await client.aassess(aip_token=AIP_TOKEN, aip_signature=AIP_SIGNATURE)
|
|
451
|
-
assert result["identity_method"] == "aip_token"
|
|
452
|
-
assert result["aip"]["pop_verified"] is True
|
|
453
|
-
assert result["aip"]["issuer"] == "https://www.agentscore.com"
|
|
454
|
-
await client.aclose()
|
|
455
|
-
|
|
456
|
-
|
|
457
356
|
# ---------------------------------------------------------------------------
|
|
458
357
|
# Async request handling
|
|
459
358
|
# ---------------------------------------------------------------------------
|
|
@@ -4,7 +4,7 @@ requires-python = ">=3.11"
|
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
6
6
|
name = "agentscore-py"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.8.0"
|
|
8
8
|
source = { editable = "." }
|
|
9
9
|
dependencies = [
|
|
10
10
|
{ name = "httpx" },
|
|
@@ -248,24 +248,24 @@ wheels = [
|
|
|
248
248
|
|
|
249
249
|
[[package]]
|
|
250
250
|
name = "iniconfig"
|
|
251
|
-
version = "2.3.
|
|
251
|
+
version = "2.3.1"
|
|
252
252
|
source = { registry = "https://pypi.org/simple" }
|
|
253
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
253
|
+
sdist = { url = "https://files.pythonhosted.org/packages/01/e1/2069291243c926a2ff1cd706c7f3eeb9b62144bf60f77c9fb9ff2fb26bd3/iniconfig-2.3.1.tar.gz", hash = "sha256:67f4b9c50da0dedf52af349e7749a80a9057a5031199791b906c3bb3ae878960", size = 21209, upload-time = "2026-10-06T22:48:38.076Z" }
|
|
254
254
|
wheels = [
|
|
255
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
255
|
+
{ url = "https://files.pythonhosted.org/packages/56/43/4ca9e49d27a1fcf6bece6f6aec0ea46bb9112489b93d4b688fb415457bdb/iniconfig-2.3.1-py3-none-any.whl", hash = "sha256:9121e2c1fdb355232495be3194c8dfe87ccc2d5dee45947b78e68f499790d7a7", size = 7552, upload-time = "2026-10-06T22:48:36.959Z" },
|
|
256
256
|
]
|
|
257
257
|
|
|
258
258
|
[[package]]
|
|
259
259
|
name = "lefthook"
|
|
260
|
-
version = "2.
|
|
260
|
+
version = "2.2.0"
|
|
261
261
|
source = { registry = "https://pypi.org/simple" }
|
|
262
262
|
wheels = [
|
|
263
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
264
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
265
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
266
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
267
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
268
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
263
|
+
{ url = "https://files.pythonhosted.org/packages/1c/79/ca580bf086be7d6b0b8bb4f1b8774037d3606722c7d7db07c938257a5213/lefthook-2.2.0-py3-none-macosx_10_15_x86_64.whl", hash = "sha256:6ba887d88ee0ee66f9d71a8d88904bcd6e2bc5c782ade62552e071afe79f31ed", size = 5509260, upload-time = "2026-10-07T19:09:05.279Z" },
|
|
264
|
+
{ url = "https://files.pythonhosted.org/packages/1d/1a/142c0a4fc12905515a10908a3599a549d2be23e820cb6638decb71731709/lefthook-2.2.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:91555f90b31f0d0cda8043e69f9608647d1ca3a74262f030622b58f12ba74b0b", size = 5026457, upload-time = "2026-10-07T19:09:06.943Z" },
|
|
265
|
+
{ url = "https://files.pythonhosted.org/packages/7b/d7/b084c9502ceae0cdc6e13f5e759b6f6b275b2011428a3d1b0a8557d352b6/lefthook-2.2.0-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:a1057937fb6fc18f03e3333a0fe73ce4999a3709db8d64d5f2b4f69be6d8dc03", size = 4849749, upload-time = "2026-10-07T19:09:08.368Z" },
|
|
266
|
+
{ url = "https://files.pythonhosted.org/packages/4e/0b/fa33be01f8b39535896f6b9cdae0130d15eb284e2983453399aeaafb7687/lefthook-2.2.0-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:ce5a6beb9cd08fa46b7651668b70a9dc72f651c38bea5bf6eae6f23578d7eac6", size = 5435838, upload-time = "2026-10-07T19:09:10.166Z" },
|
|
267
|
+
{ url = "https://files.pythonhosted.org/packages/61/6d/17c2517783315bbd54bd11dae4a557de003f6ed0db96201ffa962e30e3cd/lefthook-2.2.0-py3-none-win_amd64.whl", hash = "sha256:41d2f590170558ec990e5ae0cea48566dd3b81b8a19ad72fda16b50b864dc406", size = 5587119, upload-time = "2026-10-07T19:09:11.663Z" },
|
|
268
|
+
{ url = "https://files.pythonhosted.org/packages/f5/34/0df0d22c99c8c3a23f3931e4e6a9daaf26fdd6c26f29ddec84d5243b71cb/lefthook-2.2.0-py3-none-win_arm64.whl", hash = "sha256:c17a8af7d3924ce3e2a7be993d1a371265226674dfc8900f77693c34336e3619", size = 4935349, upload-time = "2026-10-07T19:09:13.653Z" },
|
|
269
269
|
]
|
|
270
270
|
|
|
271
271
|
[[package]]
|
|
@@ -386,81 +386,99 @@ wheels = [
|
|
|
386
386
|
|
|
387
387
|
[[package]]
|
|
388
388
|
name = "tomli"
|
|
389
|
-
version = "2.
|
|
389
|
+
version = "2.5.0"
|
|
390
390
|
source = { registry = "https://pypi.org/simple" }
|
|
391
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
391
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b0/78/9ad63712633ed3ab5cc1a648d863d7e7da371e9425e209555a0fe711b695/tomli-2.5.0.tar.gz", hash = "sha256:264507556cd8b8c8e7c6ee037cdf443a463f03f4c958e57195e3d369711b8ff6", size = 17662, upload-time = "2026-10-07T12:23:37.892Z" }
|
|
392
392
|
wheels = [
|
|
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/
|
|
401
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
402
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
403
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
404
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
405
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
406
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
407
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
408
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
409
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
410
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
411
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
412
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
413
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
414
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
415
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
416
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
417
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
418
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
419
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
420
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
421
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
422
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
423
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
424
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
425
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
426
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
427
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
428
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
429
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
430
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
431
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
432
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
433
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
434
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
435
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
436
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
437
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
438
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
393
|
+
{ url = "https://files.pythonhosted.org/packages/22/a6/ab99b60ee52acd949684febabc3005d0045d0f66bebd9cdebd67372d26dd/tomli-2.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c4dc1c1781f2f716de763d1e9a7b34c6a894e167e291c7c5d16c72f7a9538545", size = 163901, upload-time = "2026-10-07T12:22:15.601Z" },
|
|
394
|
+
{ url = "https://files.pythonhosted.org/packages/bc/00/ee01b7ed4579180fff07142d290257f25ba786f23f3ec6005f620933c2f5/tomli-2.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eff8babca5a7999bc137acbc7482a8b7e17ffca5075ab41f5d770ab408c7bfef", size = 163756, upload-time = "2026-10-07T12:22:16.957Z" },
|
|
395
|
+
{ url = "https://files.pythonhosted.org/packages/72/c2/4efebf65372f6583185f79799312109dddb61102d47e5c33dcfd1a297aca/tomli-2.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:86665cee9c4835b7a7f1e8ec2c719b5258d4dc782887aded5a8ae7352a96843b", size = 268038, upload-time = "2026-10-07T12:22:18.135Z" },
|
|
396
|
+
{ url = "https://files.pythonhosted.org/packages/53/07/5850468e925d898abb36038666f9c333a94d2a223e802a8ba5b6d319d23f/tomli-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e369fd63331746182360977b1892bfc215476a30d61612d732425311639f56", size = 276422, upload-time = "2026-10-07T12:22:19.567Z" },
|
|
397
|
+
{ url = "https://files.pythonhosted.org/packages/b4/87/f293984cdcf83c054196d4fd3dad44fc68ae55b4b8c44bc76cef360c3150/tomli-2.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ad1ea345759240d6463efa0ed1c704402752e49aa21476620738d74d72d8aa1", size = 272616, upload-time = "2026-10-07T12:22:20.794Z" },
|
|
398
|
+
{ url = "https://files.pythonhosted.org/packages/ce/ce/db582886b3c1219d3fec93ebd669332482e5aee7a91e0f7838d84f2d1759/tomli-2.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:96243987194634bd411066ce40c952e108f86af04db533ecd8ac3ff2a85b1885", size = 276593, upload-time = "2026-10-07T12:22:22.12Z" },
|
|
399
|
+
{ url = "https://files.pythonhosted.org/packages/bf/72/7619b87dea4261fc27dd7b54c4461c129c1f7d9bb7ba3aec89c797a431b8/tomli-2.5.0-cp311-cp311-win32.whl", hash = "sha256:610b27d99f28ec5f191c7064a48f3ddb179a1fe6ca73d571483ae859f57b605e", size = 101830, upload-time = "2026-10-07T12:22:23.651Z" },
|
|
400
|
+
{ url = "https://files.pythonhosted.org/packages/1e/74/220106da34502304b6751a2a9b8a9fbca6c3fd47e737a2e2e3da7c61c9db/tomli-2.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:c804ae44fe7b4bab5da295e4f980a1ff04670bca9d23fe0a4e887e08ebd741a8", size = 112742, upload-time = "2026-10-07T12:22:24.972Z" },
|
|
401
|
+
{ url = "https://files.pythonhosted.org/packages/27/99/7d9c8b41837a7773613e169504147375c157a290167aa59ad74a085f521f/tomli-2.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:cfac177ebd6236003846ea339981f71457cb6eb748f23381eb257e45092e3980", size = 109332, upload-time = "2026-10-07T12:22:26.117Z" },
|
|
402
|
+
{ url = "https://files.pythonhosted.org/packages/52/ed/7baa86f87493646a594de388c7c1c40a39dd0461f7e9c0359cbeefc91fe8/tomli-2.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f4a40d03fb9f63424f0979855bdeaf44dd7696b8d59501822c10ed30ba532df", size = 164854, upload-time = "2026-10-07T12:22:27.444Z" },
|
|
403
|
+
{ url = "https://files.pythonhosted.org/packages/a5/b1/44c0341f2224397855723c7a8a39f718ea6fcbcc3dacc66e5aeca0f334e3/tomli-2.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ebf8d19b17bd0daeb7b7dec81a946a439b753942fd0210d6e96c532249eea6b", size = 164074, upload-time = "2026-10-07T12:22:28.679Z" },
|
|
404
|
+
{ url = "https://files.pythonhosted.org/packages/23/04/e2d5b7d3fba47adedb23de616c16d428ea076c79a3d8e1d95d649ffe197e/tomli-2.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf0b5e8e0f68ebb494356e577c06c139161efd8d3b9050f93b39b7c26cc54ff0", size = 274274, upload-time = "2026-10-07T12:22:29.804Z" },
|
|
405
|
+
{ url = "https://files.pythonhosted.org/packages/43/90/6090e706ff27a6f89f4a40578e3324b95c3cd8c4150868aabf33a8f414c3/tomli-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cf74416bdc94ae458b14e37286c1073081850ac8459a00d0c5efef5d44294c6", size = 286435, upload-time = "2026-10-07T12:22:31.297Z" },
|
|
406
|
+
{ url = "https://files.pythonhosted.org/packages/0a/9e/a2c40768df16c408f22430afb0a73e9d7e5f79c950884954649d1146b74d/tomli-2.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:61ea1ebe1e55a34ea8199cc8dbff398d35027b82271c8ac4802fd3a1fd5b1bcc", size = 278119, upload-time = "2026-10-07T12:22:32.601Z" },
|
|
407
|
+
{ url = "https://files.pythonhosted.org/packages/12/25/3c0cb485b98e9cfac495629b1c93c87ccf0b72fbe9d2689fd8fe62c6d5a3/tomli-2.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed53f7e89bb04f6d9e8e7799112360b0c4d5cbff067de0814c98c37c39b920f7", size = 286177, upload-time = "2026-10-07T12:22:33.745Z" },
|
|
408
|
+
{ url = "https://files.pythonhosted.org/packages/77/8b/0144c65f0e37e51c18d04ae15c21b19431c165002d0131fe9aa8b0b8b1e8/tomli-2.5.0-cp312-cp312-win32.whl", hash = "sha256:e7ad033e27a516a233bea839cdb77b80146facb3b4f40bf02cd0cac165cdd5c2", size = 102760, upload-time = "2026-10-07T12:22:34.887Z" },
|
|
409
|
+
{ url = "https://files.pythonhosted.org/packages/de/32/5d6d8f42fc9a05fce69354e00ff256484192f5f2fc9a2165718fa0de61ec/tomli-2.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd05de8c1698f8413dd7d869492693a0bf2211543b787ac78cd5e7536af1a6d7", size = 112722, upload-time = "2026-10-07T12:22:36.162Z" },
|
|
410
|
+
{ url = "https://files.pythonhosted.org/packages/30/65/df18032218db0fb9b769fb23c8039a051f15c811993995ea04c350273a32/tomli-2.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:069435bd5480429b98c5e5afb02ab21c219b6f0064680671c6dc0d46817346ea", size = 109534, upload-time = "2026-10-07T12:22:37.296Z" },
|
|
411
|
+
{ url = "https://files.pythonhosted.org/packages/42/e5/51736d70da209350969e15aca5c5ab6e2ce1ea87a0a892a6c13aec172a86/tomli-2.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:943276cf269e0071948d9ff697159c1735e623c1151d88abb09b74659ef0cbea", size = 163328, upload-time = "2026-10-07T12:22:38.373Z" },
|
|
412
|
+
{ url = "https://files.pythonhosted.org/packages/ec/55/086f80dab4ab497602644274e6dea7ec5dd0b4e262e443a8ad3bb7edee2d/tomli-2.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:463b16086865b97facd8d0b3fb4cb7c544e3f58d2a69dc3113d6db9653fdb043", size = 162246, upload-time = "2026-10-07T12:22:39.673Z" },
|
|
413
|
+
{ url = "https://files.pythonhosted.org/packages/aa/eb/3ecc94459f3635c92321f4e7bde571323fdb2267c50e19e3188a281eae3b/tomli-2.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1245a6638fc4bb0a60af38a7d45413db34a13842027c77597c712c998c62fdf0", size = 272655, upload-time = "2026-10-07T12:22:41.08Z" },
|
|
414
|
+
{ url = "https://files.pythonhosted.org/packages/c0/d7/494fd1f0c37a621f1ad9975c2efadb523e8101f144ed6edb2e7fe64738f2/tomli-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5d8bac3d603c97e6854424e5b2b5b741bdbde387e09f162fb0446812b4a8362b", size = 283595, upload-time = "2026-10-07T12:22:42.222Z" },
|
|
415
|
+
{ url = "https://files.pythonhosted.org/packages/70/51/bb8d62b1317e6640866f6949b2d5855e5300f2c99d46de1cd245570bba65/tomli-2.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:21e4cae4114aba25aa0d4f85cdf486d290fb35c0954d7bba536248da64d43066", size = 276253, upload-time = "2026-10-07T12:22:43.625Z" },
|
|
416
|
+
{ url = "https://files.pythonhosted.org/packages/66/f4/f46bd7f0763cd47de2db697dca9257c6a4adfd1a93b018cc75c8190ed5a8/tomli-2.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bbaefc84548d754be821bba7c4141c4787dda182f9e77f2f87b71213529efa7b", size = 283582, upload-time = "2026-10-07T12:22:44.983Z" },
|
|
417
|
+
{ url = "https://files.pythonhosted.org/packages/ac/03/70f2bcb2923a6db37818d917e124270a7f4cfd38ea576f5aa753a91c0ef5/tomli-2.5.0-cp313-cp313-win32.whl", hash = "sha256:abdbf6313b8d9efe157edeb7ab6eae4de064b1300ad31abf73755154b30abe68", size = 102628, upload-time = "2026-10-07T12:22:46.508Z" },
|
|
418
|
+
{ url = "https://files.pythonhosted.org/packages/dc/98/d52024bb5b0ff68b4f0d276d867f634c84a67319a7e9f6b7708a37742333/tomli-2.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd4dc129784e0c5335bd4e61dfcc4487499a013419e655cf2da1d091b7e0efdc", size = 113301, upload-time = "2026-10-07T12:22:47.647Z" },
|
|
419
|
+
{ url = "https://files.pythonhosted.org/packages/6f/f2/540db3a70572a8c23a28aba3e9c358ce0ffffbafc990905c1343aa265b31/tomli-2.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:69491c143d2fe063046e0301e62a810bed338fa4d1ce0fd870c27dc1e09b0d84", size = 109744, upload-time = "2026-10-07T12:22:48.925Z" },
|
|
420
|
+
{ url = "https://files.pythonhosted.org/packages/e4/49/caf6b307766eb9567664a8707e9d6be5fcc0e8903f18781c6677a60d80c7/tomli-2.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d3182ee2d887e507bd67319a0a61105d1dd33facc111329559a233b772c1a105", size = 162899, upload-time = "2026-10-07T12:22:50.088Z" },
|
|
421
|
+
{ url = "https://files.pythonhosted.org/packages/d3/c8/68cfce773a2733a49c74f99d627fb461bd990756860099eac25617889585/tomli-2.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:521345fd1f19d45b8df87657aaa38b6f2ca3800059fadf428e7ebf479a383646", size = 162080, upload-time = "2026-10-07T12:22:51.558Z" },
|
|
422
|
+
{ url = "https://files.pythonhosted.org/packages/7e/b2/e5bb8651fdad593f670501a7d718b1a7f73f064d44dea15e04c04dfef45d/tomli-2.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e95c7614e705bfe2b04b27aa124adec59752d15813df37e2156747cab3a006b", size = 273380, upload-time = "2026-10-07T12:22:52.918Z" },
|
|
423
|
+
{ url = "https://files.pythonhosted.org/packages/8d/d2/9e2d7f8b1dfe0e2b34c245986ebd55c4c553ea4ce6c47c443b332673253f/tomli-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ac2027d37c3afbdf4bdd377f2676f6f1d2122a5be1f1137b49dced590b37e75", size = 283228, upload-time = "2026-10-07T12:22:54.173Z" },
|
|
424
|
+
{ url = "https://files.pythonhosted.org/packages/ba/df/ec7b876b7b1a2718bd74a3743c076fff565b04029ba33e8f61fac262739f/tomli-2.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c414be4ed9d3cac80c42e348fa5a956117d1a48227f48026e31f59cb4a7671eb", size = 277189, upload-time = "2026-10-07T12:22:55.342Z" },
|
|
425
|
+
{ url = "https://files.pythonhosted.org/packages/7d/7b/e192d9eed0b9cb80da799f4d77052297fb9a2c3cc9b19f571f56ea88add6/tomli-2.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9b03d7dc168353b4132965bde20feceabaa470e570c6f59660dfae59b1f9eeb3", size = 283632, upload-time = "2026-10-07T12:22:56.735Z" },
|
|
426
|
+
{ url = "https://files.pythonhosted.org/packages/84/50/ff94454e75461d75623e47401ed323d65c10aab8fe9033242c20cd2fdf32/tomli-2.5.0-cp314-cp314-win32.whl", hash = "sha256:6f041843c4d3a37245c0c056fd955b186bf8b1fb85690cbe40b81230891dc34b", size = 103535, upload-time = "2026-10-07T12:22:58.084Z" },
|
|
427
|
+
{ url = "https://files.pythonhosted.org/packages/54/0b/bdacf05f963bd6026ebf6eeb0beda847d1d60e03e440725c64a4e08a0afd/tomli-2.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:f4b653094e18f9031102d3a1da5c729c8f222d85225b18037dac621695e46e1a", size = 114621, upload-time = "2026-10-07T12:22:59.2Z" },
|
|
428
|
+
{ url = "https://files.pythonhosted.org/packages/61/99/53f438fa6ae4f9d4ed0ddde3e7242b3bdc34b48c8f9948b72b9e9b127676/tomli-2.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:3f89d10c1ff6a38d992c27fc8a4816af71a909e08a40ec66934240b1e74347c3", size = 111572, upload-time = "2026-10-07T12:23:00.479Z" },
|
|
429
|
+
{ url = "https://files.pythonhosted.org/packages/b9/20/1f88f19427d380a40e90a770e087489eaafe4aeee070ae88ed2bbec00acd/tomli-2.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:e9e15b4a6c7dd6b85b5fbab29488a73f1f70de516942308daa266bf0e0aeb0d4", size = 171814, upload-time = "2026-10-07T12:23:01.914Z" },
|
|
430
|
+
{ url = "https://files.pythonhosted.org/packages/d0/56/cbe5079c9f9a54b9b3e27fc82f08f3cb36edee75561679f53d2380c801d6/tomli-2.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e12bbcd32897272fb05929110362ae9ff4c1b9bb26bd9e971e71dcd3275b4c3d", size = 171324, upload-time = "2026-10-07T12:23:03.18Z" },
|
|
431
|
+
{ url = "https://files.pythonhosted.org/packages/2b/30/1d53fd3b0f1cb3ba542e345ec32c26aefdddc4e829e4f3429af8a4f27782/tomli-2.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20aa36de8f2cf87237143bc1fa1aae8d6612c09118f4da21c6a684db5dd1f6f9", size = 297441, upload-time = "2026-10-07T12:23:04.345Z" },
|
|
432
|
+
{ url = "https://files.pythonhosted.org/packages/66/d9/0800acb6a111686f764c1b91ef15cc42a20a66a46013bb42220f1d2c61c1/tomli-2.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22185fad8a1e622f064e78008018a0dd3323550dcb479cb7a1d296888d74024f", size = 307476, upload-time = "2026-10-07T12:23:05.671Z" },
|
|
433
|
+
{ url = "https://files.pythonhosted.org/packages/e8/63/30a8f3cd51b5bec37f04744bad0b0dc6160df84aad4f27b0e9283d66f221/tomli-2.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:984012f71908165449a951de2050d52f276bfe3aa5d5f570f63ddad814370374", size = 296113, upload-time = "2026-10-07T12:23:07.202Z" },
|
|
434
|
+
{ url = "https://files.pythonhosted.org/packages/ab/18/0b9ffc597e69c5a1e20a7823cb60d54b39a9f54e91edcb8574f022186758/tomli-2.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f79203b3965b4000e91808aaa7c040206093f2b8bf86f455982f2274c9ccf442", size = 307725, upload-time = "2026-10-07T12:23:08.508Z" },
|
|
435
|
+
{ url = "https://files.pythonhosted.org/packages/ab/c7/18f8baae0b5607a60e8e19b4a7fedee43a8ff6458e3896dcbbadeeac9c22/tomli-2.5.0-cp314-cp314t-win32.whl", hash = "sha256:91294a9fb94a75542f6e46e4a2ae709bd8d9b51134098cae5cf3bea5478b6d03", size = 108546, upload-time = "2026-10-07T12:23:09.956Z" },
|
|
436
|
+
{ url = "https://files.pythonhosted.org/packages/72/34/4cca9739254130627bde87500b3f2b512154fe2f278efa7e2a5e10ad4bcb/tomli-2.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f15e3e0b835a6d68b10c86bf80a3149780498d6911c93c3ffd1861d19f9200f1", size = 117814, upload-time = "2026-10-07T12:23:11.486Z" },
|
|
437
|
+
{ url = "https://files.pythonhosted.org/packages/7d/fb/afa530d47dd80a78fce43beac6bc6e00f84558eafcffbc6f37b21e80d056/tomli-2.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:6664b7ae7af7294256c53960a6103077f4914cec8ff98479c352f622c6f6b2f0", size = 115188, upload-time = "2026-10-07T12:23:12.728Z" },
|
|
438
|
+
{ url = "https://files.pythonhosted.org/packages/66/98/316fdc00f8c0939e6fe50461dd343c162d3ad51d1286eb25b7db54361d50/tomli-2.5.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:a525685c2f97da40762b8695eb7aa0af4c8344ca1905c73e4e29cb04d34607dc", size = 162775, upload-time = "2026-10-07T12:23:13.941Z" },
|
|
439
|
+
{ url = "https://files.pythonhosted.org/packages/c5/22/7b10fa5bb01c9539f53f69b619361b19350acc73657772ea7ac70ba309a8/tomli-2.5.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:9dbb18c1cfb2f6517942fc9314437f66aa06d94436ffb1f06102ef3572f35276", size = 161406, upload-time = "2026-10-07T12:23:15.215Z" },
|
|
440
|
+
{ url = "https://files.pythonhosted.org/packages/9c/e7/1a069d86dfd20f1f84f71c63faed9f83c1d890bc06c27d82dc7d888fb573/tomli-2.5.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:752e8b1aa6a4367ef8bf6a1a1e005540f7ed055ba36d7193796812ca5404eb52", size = 273855, upload-time = "2026-10-07T12:23:16.471Z" },
|
|
441
|
+
{ url = "https://files.pythonhosted.org/packages/ae/83/d1ef43d1687d092ab9c235455c76e6e709483b346b056f086095c7c263a5/tomli-2.5.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c47300f9bf791808f77d82747691c4bb09cb14bdf3060cca99b42cdc4361d5a7", size = 284910, upload-time = "2026-10-07T12:23:18.166Z" },
|
|
442
|
+
{ url = "https://files.pythonhosted.org/packages/cc/05/f4d9cf7de61822ece0c3873f30d291e324911c71a378b8bfe5ced13fd9f5/tomli-2.5.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:19b0dd8749f4ea2f112c5fcfb3c5248390c899d7e2e173f1d91abee1fa0ff391", size = 277723, upload-time = "2026-10-07T12:23:19.355Z" },
|
|
443
|
+
{ url = "https://files.pythonhosted.org/packages/42/28/78262493141fa543151cf005760c3cb01d09fc28a11f993c05109902cb8c/tomli-2.5.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:57b1c3b01fab802e2899bc3d168dca320e14165e2fd9fd584760fb4ca5826859", size = 285115, upload-time = "2026-10-07T12:23:20.698Z" },
|
|
444
|
+
{ url = "https://files.pythonhosted.org/packages/1a/b9/e1dab9a30bcb677b5cc5cee810609cfd64f24306a3055767dd3fda00b1e0/tomli-2.5.0-cp315-cp315-win32.whl", hash = "sha256:667e521b37a6c5ccaa044202c235b530f90177ffe2cd4a64ecc213c7dd535feb", size = 103475, upload-time = "2026-10-07T12:23:21.941Z" },
|
|
445
|
+
{ url = "https://files.pythonhosted.org/packages/4c/bd/31a3790c11d6ea95fcf5e6022ac0f8d0543c9b61120b730fc481bd43d3b4/tomli-2.5.0-cp315-cp315-win_amd64.whl", hash = "sha256:d747252933c8a65ef6bd8da0fbb7ce28a90eb6119d8cd00772cd528aa07b68d5", size = 114589, upload-time = "2026-10-07T12:23:23.098Z" },
|
|
446
|
+
{ url = "https://files.pythonhosted.org/packages/47/a2/4f6310fa699364f0e3af7ee3af88dddd9af066d33e716a0265bbe2b3ea84/tomli-2.5.0-cp315-cp315-win_arm64.whl", hash = "sha256:75dbcde8751b0a960aa3de173aa5e894d590755c6d7758b7e774c06f1dc3cbdd", size = 111493, upload-time = "2026-10-07T12:23:24.233Z" },
|
|
447
|
+
{ url = "https://files.pythonhosted.org/packages/68/14/00853f0b396d8971107ae1921bb5b322fdee1650d2f16bf06c20adb532e5/tomli-2.5.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:2419c2a189551987b59d80e63ec355671283336f41c6b9b89462df679c7d0c57", size = 171380, upload-time = "2026-10-07T12:23:25.512Z" },
|
|
448
|
+
{ url = "https://files.pythonhosted.org/packages/89/ad/fa6949321dadee46b27363974fb197b94c911c3b0f7a5fd26d7dc18fc2a0/tomli-2.5.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:0dc598040da8d42cf20f0be588ed7004f46db12a0ac6c32e03a59dccedaaadcd", size = 170553, upload-time = "2026-10-07T12:23:26.855Z" },
|
|
449
|
+
{ url = "https://files.pythonhosted.org/packages/53/aa/3056c919eb3e084df3752b2cf5f865dcc04af0b27dba2f66d7b28af4633a/tomli-2.5.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49096930c8d886c9bbdab62d2d0d17ce823ddeea522309a190b36245d5b49e01", size = 294428, upload-time = "2026-10-07T12:23:28.132Z" },
|
|
450
|
+
{ url = "https://files.pythonhosted.org/packages/96/b2/faeeb5d8769ea3832021d73e892c8391eae7b4b4f8b55a789127bd8b18a9/tomli-2.5.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8ade5023067f99fe72b88accd30d0ea05a158e9e32a11f124e731ea9695313f", size = 304909, upload-time = "2026-10-07T12:23:29.381Z" },
|
|
451
|
+
{ url = "https://files.pythonhosted.org/packages/f6/52/f094c09e73fb654b621716d019acb5d29bdfd1be01df80c281d552bda48d/tomli-2.5.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:b69564772b5c8f22ea5f498dff08cfa825045b4d4c4400529000bdf818aa3b2a", size = 293220, upload-time = "2026-10-07T12:23:30.608Z" },
|
|
452
|
+
{ url = "https://files.pythonhosted.org/packages/86/f5/0c30541078ca4b505ce3bd76ed931facbfec524dd018535d691d1af0a6d2/tomli-2.5.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:8ff3a2ca028c7eee0c777f9a092038d0a594a9fa04e215f929a22c329e2cb142", size = 305705, upload-time = "2026-10-07T12:23:32.181Z" },
|
|
453
|
+
{ url = "https://files.pythonhosted.org/packages/05/74/590e7d19d6a118fc5cc5704ff358e21d95b8573f6b9443b1519f29ca8825/tomli-2.5.0-cp315-cp315t-win32.whl", hash = "sha256:62fc1bc8eb03e3a9cadfca713d65614ed8e09d974a283295ffe3a831976b4dc5", size = 108432, upload-time = "2026-10-07T12:23:33.496Z" },
|
|
454
|
+
{ url = "https://files.pythonhosted.org/packages/1c/b8/63a75cfb27a17c38550e44025d3a6e7be64516fd8608a3b75703bf37d81b/tomli-2.5.0-cp315-cp315t-win_amd64.whl", hash = "sha256:f3fcbc57b1791fa6cbe5d8434179d51de12be1a4811469529f47f6e7487a2571", size = 117281, upload-time = "2026-10-07T12:23:34.648Z" },
|
|
455
|
+
{ url = "https://files.pythonhosted.org/packages/72/01/e8c1debb2173973372934c68fc8e46170ab60ef23ed4592dff4dec6e8993/tomli-2.5.0-cp315-cp315t-win_arm64.whl", hash = "sha256:d2ba24db8a9376921b5e87b4762b9adb0f3f1deaea68f2b8b0bb2c11efb9c3e7", size = 115069, upload-time = "2026-10-07T12:23:35.77Z" },
|
|
456
|
+
{ url = "https://files.pythonhosted.org/packages/60/3f/3e3f8fd0919249b0200c80fbc4f9a1e70be19f9883da71dfb7f8b9ab8aca/tomli-2.5.0-py3-none-any.whl", hash = "sha256:32a7b79ac57a2e83670ce329ccf675798bc5a2094783a63676866b70503f2e2b", size = 14765, upload-time = "2026-10-07T12:23:36.875Z" },
|
|
439
457
|
]
|
|
440
458
|
|
|
441
459
|
[[package]]
|
|
442
460
|
name = "ty"
|
|
443
|
-
version = "0.0.
|
|
461
|
+
version = "0.0.85"
|
|
444
462
|
source = { registry = "https://pypi.org/simple" }
|
|
445
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
463
|
+
sdist = { url = "https://files.pythonhosted.org/packages/66/8f/8de9c4ff90e7131a3c832ea074e123d551fed84c899d37a522f649ca7c6a/ty-0.0.85.tar.gz", hash = "sha256:ef442cbc2fd6dad02eb00dee4213c1e0f18e09bcbeec2cdce6aa802603c5c6bb", size = 7519853, upload-time = "2026-10-06T22:05:41.732Z" }
|
|
446
464
|
wheels = [
|
|
447
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
448
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
449
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
450
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
451
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
452
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
453
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
454
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
455
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
456
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
457
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
458
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
459
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
460
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
461
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
462
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
463
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
465
|
+
{ url = "https://files.pythonhosted.org/packages/1f/06/1716c1778088c5c8f96b248f0e0304e839ca69c096bde82b827bc00e4194/ty-0.0.85-py3-none-linux_armv6l.whl", hash = "sha256:012d71e0dcb51e74599adfb0e5c1416bdac3bf983115e42230545c782b06cfca", size = 14097338, upload-time = "2026-10-06T22:04:58.838Z" },
|
|
466
|
+
{ url = "https://files.pythonhosted.org/packages/4a/26/d6b2c7221096c3fa36a0afd4aa8134ffd450df63635ec3862a5a8cf6c9fd/ty-0.0.85-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:391d1993ea3b26509ddb3878dbe79e4cb92487c73109893ee2e51394846e0a69", size = 13684794, upload-time = "2026-10-06T22:05:02.204Z" },
|
|
467
|
+
{ url = "https://files.pythonhosted.org/packages/e7/7a/dd1e2e1c54551d61451c18eeb918db833fdbc0a48022fd2bffc93c755735/ty-0.0.85-py3-none-macosx_11_0_arm64.whl", hash = "sha256:90e1bb090348cb560c7ba6109f2c898735b0520fd3114cd316d8bd80439aabb7", size = 13318789, upload-time = "2026-10-06T22:05:04.61Z" },
|
|
468
|
+
{ url = "https://files.pythonhosted.org/packages/ff/9c/6c4fc7badf3e1e2e160d0b5c68632d85eb48dd0341422ac44fdd855d1eaf/ty-0.0.85-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:311c131f735bf76be8852305817d5fd10165d6289c76350f6188b0749a66a7f8", size = 13526827, upload-time = "2026-10-06T22:05:07.046Z" },
|
|
469
|
+
{ url = "https://files.pythonhosted.org/packages/ba/e5/f6f2d279ef810d89b688425a72150bbbd84a2d6bf54eb9a5ae172f13e3a5/ty-0.0.85-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a0971dc7b2f9e9cabdf654f53c8a40e563921227d05567b670f171cba2b3e385", size = 13823871, upload-time = "2026-10-06T22:05:09.731Z" },
|
|
470
|
+
{ url = "https://files.pythonhosted.org/packages/47/5d/1210c1f59e8c8c970807a2f13c180fa953ce58a6ddf28e90564db6f8890d/ty-0.0.85-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fada6d10172b4c88d44b1f9697c9f5f40d34f8fb40fe716da0366f094268c9b", size = 14727151, upload-time = "2026-10-06T22:05:12.299Z" },
|
|
471
|
+
{ url = "https://files.pythonhosted.org/packages/20/26/cdd96e45c33079174d5cd70649a5ae77758bc209f0685e8a4fecee9b7094/ty-0.0.85-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d06c9aa616672e9f9856ff7b539be5c3a4719702e5636e58b4196a8c850a884b", size = 15148511, upload-time = "2026-10-06T22:05:15.304Z" },
|
|
472
|
+
{ url = "https://files.pythonhosted.org/packages/f0/28/fd471f2edc0f38a70f0494f9949d1983591073555d254031542c0ed29454/ty-0.0.85-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2280d31c369ef61ed9a4c2399cd663340d85a5fd7965a8ad881203ea6b8b130e", size = 15090530, upload-time = "2026-10-06T22:05:17.874Z" },
|
|
473
|
+
{ url = "https://files.pythonhosted.org/packages/7b/4f/6ebfe4f14c399856fc80c448ab442521072f688dfde72b075d8a90d7cafa/ty-0.0.85-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc1fff0eab4e73fcc66df761a7a4759da04d3e9c2b82d57c628c50434e2ff0d7", size = 14322051, upload-time = "2026-10-06T22:05:20.366Z" },
|
|
474
|
+
{ url = "https://files.pythonhosted.org/packages/36/38/866054d20e12e72a76a37eaf60f1374f7ad4d0b973c145685782065d84cf/ty-0.0.85-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:453dcb85b5f2486ddc6ade57a50698e9a8d8e3aae34e50f0b20bc5e8c2a3bc2b", size = 14637631, upload-time = "2026-10-06T22:05:22.628Z" },
|
|
475
|
+
{ url = "https://files.pythonhosted.org/packages/08/16/700c730b4978de81bab82974c23db0229e58d852e10767e1f1f8b0e217db/ty-0.0.85-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:820eb594b1d30cd6a0776e59449ed6994b03c27af8da0c287ad351de193eb4a7", size = 13553358, upload-time = "2026-10-06T22:05:24.903Z" },
|
|
476
|
+
{ url = "https://files.pythonhosted.org/packages/2e/60/d2dda3a3443d55083429b1eccabed95cbf8769bc61c51831e0ece890780f/ty-0.0.85-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4b76c6a2fc5974fc2c5f95156a34f44127be794f4b3dc9793aae5b6a4b774e83", size = 13837412, upload-time = "2026-10-06T22:05:27.163Z" },
|
|
477
|
+
{ url = "https://files.pythonhosted.org/packages/f2/54/05043adf78fa5c0440fe9b956505b24d2568da256b60e7479c691510bb92/ty-0.0.85-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0e3a32de0731efce574367fdd680b7524c681909a92e6cf64bb40ad48ccbc110", size = 14167568, upload-time = "2026-10-06T22:05:29.519Z" },
|
|
478
|
+
{ url = "https://files.pythonhosted.org/packages/9d/31/0372621051cc807f23d2e9c55bab65818ed131852c05fbe4c65be365895e/ty-0.0.85-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d622348c05a9fe99ad087dc93f174617a96f9fef23dd7a0acbdb0adaf8bd5ae6", size = 14489824, upload-time = "2026-10-06T22:05:32.089Z" },
|
|
479
|
+
{ url = "https://files.pythonhosted.org/packages/b5/64/0fca31db8c48dc72285f17b878e2c6a015279ab04a26e16f62abb384094f/ty-0.0.85-py3-none-win32.whl", hash = "sha256:0742d21a002481af8d2324b16ce5df210b5bb7673b0ea1096cfc02745c6b7280", size = 13410281, upload-time = "2026-10-06T22:05:34.418Z" },
|
|
480
|
+
{ url = "https://files.pythonhosted.org/packages/f6/a8/65d865185ecb18ee45b85cd99b34aedb3d8a4a9fe0438dab695e1390dbb7/ty-0.0.85-py3-none-win_amd64.whl", hash = "sha256:2636f8255b97c357dac1f9f50ca58f58a49642c8adb5c76643f483401a577014", size = 14112013, upload-time = "2026-10-06T22:05:36.946Z" },
|
|
481
|
+
{ url = "https://files.pythonhosted.org/packages/24/40/110b4f01af47fbb061f03e2f8e85cb30dd3d9ea614b2059dfaa058a044a5/ty-0.0.85-py3-none-win_arm64.whl", hash = "sha256:953574167a79d9dba7781238879955fa37fea405393710bfe53069ac82dff4d9", size = 13825189, upload-time = "2026-10-06T22:05:39.467Z" },
|
|
464
482
|
]
|
|
465
483
|
|
|
466
484
|
[[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
|