wexample-cli 0.6.1__tar.gz → 0.7.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.
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/PKG-INFO +6 -6
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/README.md +3 -3
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/pyproject.toml +3 -3
- wexample_cli-0.7.0/src/wexample_cli/const/tags.py +52 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/command/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/command/extended_command.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/common/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/common/command_method_wrapper.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/const/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/const/middleware.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/const/types.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/context/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/context/execution_context.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/alias.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/as_sudo.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/command.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/middleware.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/option.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/option_stop_on_failure.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/screenable.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/webhook.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/exception/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/exception/abstract_command_option_exception.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/exception/command_option_missing_exception.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/exception/command_option_validation_exception.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/helpers/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/helpers/extra_args.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/middleware/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/middleware/abstract_middleware.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/py.typed +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/testing/__init__.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/testing/kernel.py +0 -0
- {wexample_cli-0.6.1 → wexample_cli-0.7.0}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: wexample-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Reusable CLI primitives — command decorators, options, middlewares, and the enriched command runner — extracted from wex-core so any kernel built on wexample-app can opt in without depending on the full wex framework.
|
|
5
5
|
Author-Email: weeger <contact@wexample.com>
|
|
6
6
|
License: MIT
|
|
@@ -10,9 +10,9 @@ Classifier: Operating System :: OS Independent
|
|
|
10
10
|
Project-URL: homepage, https://github.com/wexample/python-cli
|
|
11
11
|
Requires-Python: >=3.10
|
|
12
12
|
Requires-Dist: attrs>=23.1.0
|
|
13
|
-
Requires-Dist: wexample-app>=17.
|
|
13
|
+
Requires-Dist: wexample-app>=17.1.0
|
|
14
14
|
Requires-Dist: wexample-helpers>=13.1.0
|
|
15
|
-
Requires-Dist: wexample-prompt>=
|
|
15
|
+
Requires-Dist: wexample-prompt>=12.0.0
|
|
16
16
|
Provides-Extra: dev
|
|
17
17
|
Requires-Dist: pytest; extra == "dev"
|
|
18
18
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -20,7 +20,7 @@ Description-Content-Type: text/markdown
|
|
|
20
20
|
|
|
21
21
|
# cli
|
|
22
22
|
|
|
23
|
-
Version: 0.
|
|
23
|
+
Version: 0.7.0
|
|
24
24
|
|
|
25
25
|
Reusable CLI primitives — command decorators, options, middlewares, and the enriched command runner — extracted from wex-core so any kernel built on wexample-app can opt in without depending on the full wex framework.
|
|
26
26
|
|
|
@@ -100,9 +100,9 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
100
100
|
## Dependencies
|
|
101
101
|
|
|
102
102
|
- attrs: >=23.1.0
|
|
103
|
-
- wexample-app: >=17.
|
|
103
|
+
- wexample-app: >=17.1.0
|
|
104
104
|
- wexample-helpers: >=13.1.0
|
|
105
|
-
- wexample-prompt: >=
|
|
105
|
+
- wexample-prompt: >=12.0.0
|
|
106
106
|
|
|
107
107
|
## Versioning & Compatibility Policy
|
|
108
108
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# cli
|
|
2
2
|
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
|
|
5
5
|
Reusable CLI primitives — command decorators, options, middlewares, and the enriched command runner — extracted from wex-core so any kernel built on wexample-app can opt in without depending on the full wex framework.
|
|
6
6
|
|
|
@@ -80,9 +80,9 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
80
80
|
## Dependencies
|
|
81
81
|
|
|
82
82
|
- attrs: >=23.1.0
|
|
83
|
-
- wexample-app: >=17.
|
|
83
|
+
- wexample-app: >=17.1.0
|
|
84
84
|
- wexample-helpers: >=13.1.0
|
|
85
|
-
- wexample-prompt: >=
|
|
85
|
+
- wexample-prompt: >=12.0.0
|
|
86
86
|
|
|
87
87
|
## Versioning & Compatibility Policy
|
|
88
88
|
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "wexample-cli"
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.7.0"
|
|
10
10
|
description = "Reusable CLI primitives — command decorators, options, middlewares, and the enriched command runner — extracted from wex-core so any kernel built on wexample-app can opt in without depending on the full wex framework."
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "weeger", email = "contact@wexample.com" },
|
|
@@ -19,9 +19,9 @@ classifiers = [
|
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
21
|
"attrs>=23.1.0",
|
|
22
|
-
"wexample-app>=17.
|
|
22
|
+
"wexample-app>=17.1.0",
|
|
23
23
|
"wexample-helpers>=13.1.0",
|
|
24
|
-
"wexample-prompt>=
|
|
24
|
+
"wexample-prompt>=12.0.0",
|
|
25
25
|
]
|
|
26
26
|
|
|
27
27
|
[project.readme]
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""Transverse command tags.
|
|
2
|
+
|
|
3
|
+
These three axes (`effect`, `audience`, `scope`) apply to every command
|
|
4
|
+
regardless of the addon defining it. Each addon declares its own
|
|
5
|
+
`DomainTag` class locally for the fourth axis (`domain`), which is the
|
|
6
|
+
addon's responsibility.
|
|
7
|
+
|
|
8
|
+
Values are plain `str` constants so they drop straight into
|
|
9
|
+
`@command(tags=[...])` without any wrapping.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class EffectTag:
|
|
16
|
+
"""What the command does to observable state."""
|
|
17
|
+
|
|
18
|
+
READ_ONLY = "effect:read-only"
|
|
19
|
+
WRITE = "effect:write"
|
|
20
|
+
CREATE = "effect:create"
|
|
21
|
+
DELETE = "effect:delete"
|
|
22
|
+
DESTRUCTIVE = "effect:destructive"
|
|
23
|
+
IDEMPOTENT = "effect:idempotent"
|
|
24
|
+
SUBPROCESS_SPAWN = "effect:subprocess-spawn"
|
|
25
|
+
NETWORK_CALL = "effect:network-call"
|
|
26
|
+
LONG_RUNNING = "effect:long-running"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class AudienceTag:
|
|
30
|
+
"""Who can safely invoke the command."""
|
|
31
|
+
|
|
32
|
+
AGENT_SAFE = "audience:agent-safe"
|
|
33
|
+
REQUIRES_CONFIRMATION = "audience:requires-confirmation"
|
|
34
|
+
DANGEROUS = "audience:dangerous"
|
|
35
|
+
HUMAN_ONLY = "audience:human-only"
|
|
36
|
+
DEV_TOOL = "audience:dev-tool"
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ScopeTag:
|
|
40
|
+
"""Execution context the command operates in."""
|
|
41
|
+
|
|
42
|
+
LOCAL = "scope:local"
|
|
43
|
+
REMOTE = "scope:remote"
|
|
44
|
+
CONTAINER = "scope:container"
|
|
45
|
+
HOST = "scope:host"
|
|
46
|
+
PROJECT = "scope:project"
|
|
47
|
+
APP = "scope:app"
|
|
48
|
+
SUITE = "scope:suite"
|
|
49
|
+
PACKAGE = "scope:package"
|
|
50
|
+
MULTI_APP = "scope:multi-app"
|
|
51
|
+
GLOBAL = "scope:global"
|
|
52
|
+
NO_CONTEXT = "scope:no-context"
|
|
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
|
{wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/decorator/option_stop_on_failure.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
|
{wexample_cli-0.6.1 → wexample_cli-0.7.0}/src/wexample_cli/middleware/abstract_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|