solvapay-python 0.9.2__py3-none-any.whl → 0.9.3__py3-none-any.whl

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.
solvapay/__init__.py CHANGED
@@ -109,7 +109,7 @@ __all__ = [
109
109
  "stable",
110
110
  "verify_webhook",
111
111
  ]
112
- __version__ = "0.9.2"
112
+ __version__ = "0.9.3"
113
113
 
114
114
  # PEP 562 — lazy adapter submodule access.
115
115
  # Adapters drag in optional heavy deps (fastmcp, langchain-core, fastapi).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: solvapay-python
3
- Version: 0.9.2
3
+ Version: 0.9.3
4
4
  Summary: Community Python SDK for SolvaPay (agent-native payment rails)
5
5
  Project-URL: Homepage, https://github.com/dhruv-sanan/solvapay-python
6
6
  Project-URL: Issues, https://github.com/dhruv-sanan/solvapay-python/issues
@@ -359,12 +359,15 @@ Default is `"2026-05-22"` (v0.9 ship date). Bump only on major SDK versions.
359
359
  | v0.9 ✅ | Production polish — API-version pinning, idempotency TTL, `RetryTransport`, `RecordingTransport`, ASGI adapter, secret rotation, `sign_webhook`, contract tests, lint automation, MkDocs site, supply-chain hygiene |
360
360
  | v0.9.1 ✅ | Security & supply-chain quality — PyPI attestations (PEP 740 / Sigstore), CycloneDX SBOM on releases, `bandit` + `osv-scanner` CI, Hypothesis-driven secret-redaction property tests, constant-time `verify_webhook` smoke test, explicit PCI-scope statement |
361
361
  | v0.9.2 ✅ | Performance & stability quality — cold-import baseline harness, PEP 562 lazy adapter imports, `solvapay.sign_webhook` top-level re-export, microbenchmark harness (`solvapay[bench]`), troubleshooting docs |
362
+ | v0.9.3 ✅ | Layer DAG hard-enforcement — single `type = layers` `import-linter` contract replaces three sparse `forbidden` contracts; closes the L2 `models` purity gap and the L5 `paywall`/`webhooks` framework-neutrality gap; `exhaustive = true` flags any unlayered top-level module; `ignore_type_checking_imports = true` keeps cross-layer type hints lint-clean |
362
363
  | v1.0 | Gated on founder signal — OpenAPI-generated models, WSGI/Lambda adapters, V2 planning |
363
364
 
364
365
  ---
365
366
 
366
367
  ## Status
367
368
 
369
+ **v0.9.3** — Layer DAG hard-enforcement quality patch. `tools/importlinter.cfg` now ships a single `type = layers` contract covering the full HLD §V1.1 DAG (`_transport → _http → models → operations → client → paywall|webhooks → adapters → fastapi|langchain`), replacing three sparse `forbidden` contracts. `exhaustive = true` flags any new top-level module that ships without an explicit layer assignment; `ignore_type_checking_imports = true` strips `TYPE_CHECKING` blocks from the dependency graph so cross-layer type hints do not trip the gate. New `tests/test_layer_dag.py` shells the contract from pytest as a belt-and-suspenders gate. `docs/architecture/layers.md` refreshed. CI-only change; no public-API impact. 306 tests. 87% line coverage. `mypy --strict` clean (45 files).
370
+
368
371
  **v0.9.2** — Performance & stability quality patch. Cold-import baseline harness (`tests/test_cold_import.py`, 1.5x regression gate). PEP 562 lazy adapter imports — bare `import solvapay` no longer loads framework adapter modules. `solvapay.sign_webhook` promoted to top-level (alongside `verify_webhook`). Microbenchmark harness under `tests/benchmarks/` (opt-in `solvapay[bench]`). New docs: `docs/troubleshooting.md` (top-10 errors) and `docs/architecture/cold-start.md`. 305 tests. 87% line coverage. `mypy --strict` clean (45 files).
369
372
 
370
373
  **v0.9.1** — Security & supply-chain quality patch. PyPI uploads now carry PEP 740 attestations (Sigstore-backed via OIDC trusted publishing); each GitHub release ships a CycloneDX SBOM (`sbom.cdx.json`). `mypy --strict` clean (45 files). 302 tests. 87% line / 85% branch coverage.
@@ -1,4 +1,4 @@
1
- solvapay/__init__.py,sha256=SCzaOP-4tqWo90KW1d_L6YpDACNQqahD85iHeRa3X9w,3488
1
+ solvapay/__init__.py,sha256=rJ4v3Z7YoQRErEc81p8jFb5MckmwMZHW2Ur4NrdFwww,3488
2
2
  solvapay/_async_client.py,sha256=TdeCyvnfZQCJzkLnYC73WNEG_fYjKWb226Gct1wt7pI,10759
3
3
  solvapay/_config.py,sha256=yPU_GM77pXwPfIzuncuLRNv4322q5bB9qaawN3izEB8,606
4
4
  solvapay/_http.py,sha256=rtjU-MOmxsh3xO-HT7KtjYaTUagPlPqV5eBv-o51Y1Q,408
@@ -44,7 +44,7 @@ solvapay/webhooks/replay.py,sha256=DIv52mCwi1GRtAl7q_O_JWuFSJQMwcQ24JkOuD1uLmU,2
44
44
  solvapay/webhooks/rotation.py,sha256=qYNMBBSp6Zvg59gPc2SUC1cqNIAizrBJ50MRf5B_ztg,1248
45
45
  solvapay/webhooks/sign.py,sha256=X7rA0iZkDBsXo3nvxK8YnQ-zpLfMhCMY-r6ts_MUM90,1150
46
46
  solvapay/webhooks/verify.py,sha256=TIkho3IG-S9IpXWvBLmDHdGfG9_XxUK6w87kNwkLQYo,1954
47
- solvapay_python-0.9.2.dist-info/METADATA,sha256=pJb_W5Y_kURJU9HPlqoFUwlVX_Lt0lGd5JyVGTcDafk,13711
48
- solvapay_python-0.9.2.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
49
- solvapay_python-0.9.2.dist-info/licenses/LICENSE,sha256=wJURmEXLdSdApQdHG-RCwBoZVka1Oux8zNrLxGC30S8,1068
50
- solvapay_python-0.9.2.dist-info/RECORD,,
47
+ solvapay_python-0.9.3.dist-info/METADATA,sha256=qATBYiOn_2KC-ycJMZaGRJHQpv5uIxQ1yyCJFEWKtUE,14883
48
+ solvapay_python-0.9.3.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
49
+ solvapay_python-0.9.3.dist-info/licenses/LICENSE,sha256=wJURmEXLdSdApQdHG-RCwBoZVka1Oux8zNrLxGC30S8,1068
50
+ solvapay_python-0.9.3.dist-info/RECORD,,