pywire-cli 0.2.0__tar.gz → 0.3.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.
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.0](https://github.com/pywire/pywire/compare/pywire-cli-v0.2.0...pywire-cli-v0.3.0) (2026-05-02)
4
+
5
+
6
+ ### Features
7
+
8
+ * cross-package version floors with runtime checks ([#181](https://github.com/pywire/pywire/issues/181)) ([9ec02a3](https://github.com/pywire/pywire/commit/9ec02a330d500ceb83a24547e6012acd1d828137))
9
+
3
10
  ## [0.2.0](https://github.com/pywire/pywire/compare/pywire-cli-v0.1.0...pywire-cli-v0.2.0) (2026-04-22)
4
11
 
5
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pywire-cli
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Command-line tools for PyWire projects: dev, build, deploy, check
5
5
  Project-URL: Homepage, https://pywire.dev
6
6
  Project-URL: Documentation, https://pywire.dev/docs
@@ -18,8 +18,8 @@ Classifier: Programming Language :: Python :: 3.13
18
18
  Classifier: Topic :: Software Development :: Build Tools
19
19
  Requires-Python: >=3.11
20
20
  Requires-Dist: jinja2>=3.1.0
21
- Requires-Dist: pywire-templates
22
- Requires-Dist: pywire[build]
21
+ Requires-Dist: pywire-templates>=0.2.0
22
+ Requires-Dist: pywire[build]>=0.13.0
23
23
  Requires-Dist: rich-click>=1.9.6
24
24
  Requires-Dist: textual>=7.4.0
25
25
  Requires-Dist: uvicorn[standard]>=0.27.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pywire-cli"
7
- version = "0.2.0"
7
+ version = "0.3.0"
8
8
  description = "Command-line tools for PyWire projects: dev, build, deploy, check"
9
9
  authors = [
10
10
  { name = "Reece Holmdahl", email = "reece@pywire.dev" },
@@ -23,8 +23,8 @@ classifiers = [
23
23
  "Topic :: Software Development :: Build Tools",
24
24
  ]
25
25
  dependencies = [
26
- "pywire[build]",
27
- "pywire-templates",
26
+ "pywire[build]>=0.13.0",
27
+ "pywire-templates>=0.2.0",
28
28
  "jinja2>=3.1.0",
29
29
  "uvicorn[standard]>=0.27.0",
30
30
  "watchfiles>=0.21.0",
@@ -0,0 +1,5 @@
1
+ """PyWire CLI — dev, build, deploy, and check tools for PyWire projects."""
2
+
3
+ from pywire_cli import _compat as _compat # noqa: F401 (runs version floor checks)
4
+
5
+ __version__ = "0.3.0"
@@ -0,0 +1,36 @@
1
+ """Runtime version-floor checks for upstream packages.
2
+
3
+ See packages/pywire/src/pywire/_compat.py for the rationale and
4
+ CLAUDE.md "Version Floors" for the bump protocol.
5
+ """
6
+
7
+ from importlib.metadata import PackageNotFoundError, version
8
+
9
+ _FLOORS = {
10
+ "pywire": "0.13.0",
11
+ "pywire-templates": "0.2.0",
12
+ }
13
+
14
+
15
+ def _parse(v: str) -> tuple[int, ...]:
16
+ out: list[int] = []
17
+ for chunk in v.split("."):
18
+ digits = ""
19
+ for ch in chunk:
20
+ if not ch.isdigit():
21
+ break
22
+ digits += ch
23
+ out.append(int(digits) if digits else 0)
24
+ return tuple(out)
25
+
26
+
27
+ for _pkg, _min in _FLOORS.items():
28
+ try:
29
+ _installed = version(_pkg)
30
+ except PackageNotFoundError:
31
+ continue
32
+ if _parse(_installed) < _parse(_min):
33
+ raise ImportError(
34
+ f"pywire-cli requires {_pkg}>={_min} but found {_installed}. "
35
+ f"Run: pip install -U '{_pkg}>={_min}'"
36
+ )
@@ -1,3 +0,0 @@
1
- """PyWire CLI — dev, build, deploy, and check tools for PyWire projects."""
2
-
3
- __version__ = "0.2.0"
File without changes
File without changes
File without changes
File without changes
File without changes