solvapay 0.1.0.dev4__tar.gz → 0.1.0.dev5__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.
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/PKG-INFO +1 -1
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/pyproject.toml +1 -1
- solvapay-0.1.0.dev4/scripts/preview_version.py +0 -68
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/.gitignore +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/AGENTS.md +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/README.md +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance.lock +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/_agent_identity.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/_api_answer.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/agent_calls_runner.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/conformance_agent_mcp.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/conformance_merchant_sign_in.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/test_conformance.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/package.json +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/scripts/check_version.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/scripts/currency_prefixes.mjs +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/scripts/generate_client.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/scripts/pin_conformance.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/scripts/sync_widget.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/scripts/tax_ids.mjs +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/__init__.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_currencies.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_generated/__init__.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_generated/models.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_generated/operations.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_http.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_js.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/_tax_ids.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/agents/__init__.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/agents/calls.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/agents/identity.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/agents/mcp.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/agents/oauth.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/business_details.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/client.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/errors.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/__init__.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/app.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/auth.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/bootstrap.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/intent.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/mcp-app.html +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/narrate.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/response.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/server.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/tools.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/mcp/transport.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/money.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/paywall/__init__.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/paywall/decide.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/paywall/gate.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/paywall/state.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/pricing.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/py.typed +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/solvapay.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/src/solvapay/webhooks.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_agents.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_agents_mcp.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_client.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_mcp.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_mcp_app.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_mcp_intent.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/tests/test_paywall.py +0 -0
- {solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: solvapay
|
|
3
|
-
Version: 0.1.0.
|
|
3
|
+
Version: 0.1.0.dev5
|
|
4
4
|
Summary: SolvaPay for Python: paywalls, usage billing, webhooks and paid MCP tools.
|
|
5
5
|
Project-URL: Homepage, https://solvapay.com
|
|
6
6
|
Project-URL: Documentation, https://docs.solvapay.com
|
|
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
name = "solvapay"
|
|
7
7
|
# Set from python/package.json by `pnpm changeset:version`; CI checks they match.
|
|
8
8
|
# Python has its own version line, separate from the TypeScript packages.
|
|
9
|
-
version = "0.1.0.
|
|
9
|
+
version = "0.1.0.dev5"
|
|
10
10
|
description = "SolvaPay for Python: paywalls, usage billing, webhooks and paid MCP tools."
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = "MIT"
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"""Prints the version of a dev preview: the next release, as a PEP 440 dev build.
|
|
2
|
-
|
|
3
|
-
The next release is python/package.json's version bumped by the largest pending
|
|
4
|
-
changeset that names @solvapay/python, the same bump `changeset version` will
|
|
5
|
-
make. With none pending it is the next patch, so a preview made after a release
|
|
6
|
-
still sorts after it. A preview of 0.1.0 is 0.1.0.dev<build>, which sorts before
|
|
7
|
-
0.1.0 and after every earlier release, and `pip install solvapay` without
|
|
8
|
-
`--pre` never picks it.
|
|
9
|
-
|
|
10
|
-
Run from python/:
|
|
11
|
-
uv run python scripts/preview_version.py <build number>
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
from __future__ import annotations
|
|
15
|
-
|
|
16
|
-
import json
|
|
17
|
-
import re
|
|
18
|
-
import sys
|
|
19
|
-
from pathlib import Path
|
|
20
|
-
|
|
21
|
-
ROOT = Path(__file__).resolve().parent.parent
|
|
22
|
-
VERSION_SOURCE = ROOT / "package.json"
|
|
23
|
-
CHANGESETS = ROOT.parent / ".changeset"
|
|
24
|
-
PACKAGE = "@solvapay/python"
|
|
25
|
-
BUMPS = ("patch", "minor", "major")
|
|
26
|
-
RELEASE = re.compile(r"^(\d+)\.(\d+)\.(\d+)$")
|
|
27
|
-
ENTRY = re.compile(r"""^\s*['"]?([^'":]+)['"]?\s*:\s*(patch|minor|major)\s*$""")
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def pending_bump() -> str | None:
|
|
31
|
-
"""The largest bump a pending changeset gives @solvapay/python, if any."""
|
|
32
|
-
largest: str | None = None
|
|
33
|
-
for path in sorted(CHANGESETS.glob("*.md")):
|
|
34
|
-
if path.name == "README.md":
|
|
35
|
-
continue
|
|
36
|
-
parts = path.read_text().split("---")
|
|
37
|
-
if len(parts) < 3:
|
|
38
|
-
raise SystemExit(f"{path}: no changeset frontmatter")
|
|
39
|
-
for line in parts[1].splitlines():
|
|
40
|
-
match = ENTRY.match(line)
|
|
41
|
-
if match and match.group(1) == PACKAGE:
|
|
42
|
-
bump = match.group(2)
|
|
43
|
-
if largest is None or BUMPS.index(bump) > BUMPS.index(largest):
|
|
44
|
-
largest = bump
|
|
45
|
-
return largest
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def next_release(current: str, bump: str) -> str:
|
|
49
|
-
match = RELEASE.match(current)
|
|
50
|
-
if not match:
|
|
51
|
-
raise SystemExit(f"python/package.json version {current!r} is not MAJOR.MINOR.PATCH")
|
|
52
|
-
major, minor, patch = (int(part) for part in match.groups())
|
|
53
|
-
if bump == "major":
|
|
54
|
-
return f"{major + 1}.0.0"
|
|
55
|
-
if bump == "minor":
|
|
56
|
-
return f"{major}.{minor + 1}.0"
|
|
57
|
-
return f"{major}.{minor}.{patch + 1}"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
def main() -> None:
|
|
61
|
-
if len(sys.argv) != 2 or not sys.argv[1].isdigit():
|
|
62
|
-
raise SystemExit("usage: preview_version.py <build number>")
|
|
63
|
-
current = json.loads(VERSION_SOURCE.read_text())["version"]
|
|
64
|
-
print(f"{next_release(current, pending_bump() or 'patch')}.dev{sys.argv[1]}")
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if __name__ == "__main__":
|
|
68
|
-
main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{solvapay-0.1.0.dev4 → solvapay-0.1.0.dev5}/conformance_runner/conformance_merchant_sign_in.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|