leancpms-cli 0.1.1__tar.gz → 0.1.2__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.
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/PKG-INFO +4 -4
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/README.md +3 -3
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/manifest/schema.py +16 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/pyproject.toml +1 -1
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/.gitignore +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/LICENSE +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/__init__.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/cli/__init__.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/cli/client.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/cli/login.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/cli/main.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/manifest/__init__.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/cpms/manifest/documents.py +0 -0
- {leancpms_cli-0.1.1 → leancpms_cli-0.1.2}/hatch_build.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: leancpms-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: The cpms command alone: a client of a LeanCPMS instance's JSON API
|
|
5
5
|
License-Expression: AGPL-3.0-or-later
|
|
6
6
|
License-File: LICENSE
|
|
@@ -34,8 +34,8 @@ Until then, from a GitHub release (a tag `cli-v<version>`) or straight
|
|
|
34
34
|
from the repository:
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
gh release download cli-v0.1.
|
|
38
|
-
uv tool install ./leancpms_cli-0.1.
|
|
37
|
+
gh release download cli-v0.1.2 --repo forsslund/leancpms --pattern '*.whl'
|
|
38
|
+
uv tool install ./leancpms_cli-0.1.2-py3-none-any.whl
|
|
39
39
|
# or
|
|
40
40
|
uv tool install "git+https://github.com/forsslund/leancpms#subdirectory=cli"
|
|
41
41
|
```
|
|
@@ -194,7 +194,7 @@ Raise `version` in both `cli/pyproject.toml` and the root `pyproject.toml`
|
|
|
194
194
|
(a test keeps them equal), then tag and push:
|
|
195
195
|
|
|
196
196
|
```bash
|
|
197
|
-
git tag cli-v0.1.
|
|
197
|
+
git tag cli-v0.1.2 && git push origin cli-v0.1.2
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
`.github/workflows/release-cli.yml` builds the wheel and sdist, smoke-tests
|
|
@@ -22,8 +22,8 @@ Until then, from a GitHub release (a tag `cli-v<version>`) or straight
|
|
|
22
22
|
from the repository:
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
gh release download cli-v0.1.
|
|
26
|
-
uv tool install ./leancpms_cli-0.1.
|
|
25
|
+
gh release download cli-v0.1.2 --repo forsslund/leancpms --pattern '*.whl'
|
|
26
|
+
uv tool install ./leancpms_cli-0.1.2-py3-none-any.whl
|
|
27
27
|
# or
|
|
28
28
|
uv tool install "git+https://github.com/forsslund/leancpms#subdirectory=cli"
|
|
29
29
|
```
|
|
@@ -182,7 +182,7 @@ Raise `version` in both `cli/pyproject.toml` and the root `pyproject.toml`
|
|
|
182
182
|
(a test keeps them equal), then tag and push:
|
|
183
183
|
|
|
184
184
|
```bash
|
|
185
|
-
git tag cli-v0.1.
|
|
185
|
+
git tag cli-v0.1.2 && git push origin cli-v0.1.2
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
`.github/workflows/release-cli.yml` builds the wheel and sdist, smoke-tests
|
|
@@ -105,6 +105,17 @@ DriverHost = Annotated[
|
|
|
105
105
|
]
|
|
106
106
|
|
|
107
107
|
|
|
108
|
+
# A browser origin of the organization's own driver front end (architecture §3.1): https, a host and
|
|
109
|
+
# perhaps a port, nothing after it. http only for localhost, for development.
|
|
110
|
+
DriverOrigin = Annotated[
|
|
111
|
+
str,
|
|
112
|
+
StringConstraints(
|
|
113
|
+
max_length=300,
|
|
114
|
+
pattern=r"^(https://[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*|http://localhost)(:[0-9]{1,5})?$",
|
|
115
|
+
),
|
|
116
|
+
]
|
|
117
|
+
|
|
118
|
+
|
|
108
119
|
class Organization(Strict):
|
|
109
120
|
key: OrganizationKey
|
|
110
121
|
name: str
|
|
@@ -120,11 +131,16 @@ class Organization(Strict):
|
|
|
120
131
|
theme: Theme | None = None
|
|
121
132
|
# The hosts on which this organization's driver pages are its own: `/` there lists its sites.
|
|
122
133
|
driver_hosts: list[DriverHost] = []
|
|
134
|
+
# The organization's own driver front ends, on domains of its own: they may call the driver API's
|
|
135
|
+
# start and session endpoints from a browser, and payment may return to them (architecture §3.1).
|
|
136
|
+
driver_origins: list[DriverOrigin] = []
|
|
123
137
|
|
|
124
138
|
@model_validator(mode="after")
|
|
125
139
|
def _unique_hosts(self): # type: ignore[no-untyped-def]
|
|
126
140
|
if len(set(self.driver_hosts)) != len(self.driver_hosts):
|
|
127
141
|
raise ValueError("driver_hosts: a host is listed twice")
|
|
142
|
+
if len(set(self.driver_origins)) != len(self.driver_origins):
|
|
143
|
+
raise ValueError("driver_origins: an origin is listed twice")
|
|
128
144
|
return self
|
|
129
145
|
|
|
130
146
|
|
|
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
|