strictcli 0.8.6__tar.gz → 0.8.7__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.
- strictcli-0.8.7/.rlsbl/changes/.validated +1 -0
- strictcli-0.8.7/.rlsbl/changes/0.8.7.jsonl +5 -0
- strictcli-0.8.7/.rlsbl/changes/0.8.7.md +9 -0
- strictcli-0.8.7/.rlsbl/releases/v0.8.7.toml +3 -0
- strictcli-0.8.7/.strictcli/schema.json +19 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/CHANGELOG.md +10 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/PKG-INFO +1 -1
- {strictcli-0.8.6 → strictcli-0.8.7}/package-lock.json +2 -2
- {strictcli-0.8.6 → strictcli-0.8.7}/package.json +1 -1
- {strictcli-0.8.6 → strictcli-0.8.7}/pyproject.toml +1 -1
- {strictcli-0.8.6 → strictcli-0.8.7}/strictcli/__init__.py +3 -2
- {strictcli-0.8.6 → strictcli-0.8.7}/uv.lock +1 -1
- strictcli-0.8.6/.rlsbl/changes/.validated +0 -1
- {strictcli-0.8.6 → strictcli-0.8.7}/.claude/settings.json +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.github/workflows/ci.yml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.github/workflows/publish.yml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.gitignore +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.claude/settings.json +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.github/workflows/ci.yml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.github/workflows/publish.yml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.gitignore +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.rlsbl/hooks/post-release.sh +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.rlsbl/hooks/pre-checks.sh +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.rlsbl/hooks/pre-release.sh +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.rlsbl/lint/go.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.rlsbl/lint/npm.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/.rlsbl/lint/python.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/CHANGELOG.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/CLAUDE.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/bases/LICENSE +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.4.0.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.4.0.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.4.1.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.4.1.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.5.0.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.5.0.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.6.0.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.6.0.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.6.1.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.6.1.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.7.0.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.7.0.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.7.1.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.7.1.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.0.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.0.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.1.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.1.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.2.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.2.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.3.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.3.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.4.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.4.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.5.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.5.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.6.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/0.8.6.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/changes/unreleased.jsonl +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/config.json +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/hashes.json +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/hooks/post-release.sh +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/hooks/pre-checks.sh +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/hooks/pre-release.sh +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/lint/go.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/lint/npm.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/lint/python.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/releases/unreleased.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/releases/v0.8.5.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/releases/v0.8.6.toml +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/.rlsbl/version +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/CLAUDE.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/LICENSE +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/README.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/index.js +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/postinstall.js +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_arg_default.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_auto_version.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_check_command.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_check_discovery.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_check_runner.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_check_schema.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_check_types.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_choices.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_command_help_suggestion.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_config.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_deep_nesting.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_dependencies.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_deprecated.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_dump_schema.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_e2e.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_env.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_exit_codes.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_float_type.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_global_flags.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_help.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_int_type.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_mutex.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_nesting.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_parser.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_passthrough.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_registration.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_repeatable.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_tagdsl.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_tags.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_toml_loading.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_validate.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/tests/test_variadic.py +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/todo/.defer/deferred.md +0 -0
- {strictcli-0.8.6 → strictcli-0.8.7}/todo/.done/original-idea.md +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cb4155e0427b58ad57b6684d038a8ec780101d5b
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"commits":["40478a9bc123d086ade4d0838d3fcb95918ff562"],"user_facing":true,"description":"**New feature.** Go implementation now includes subcommand name in parse error help suggestions, matching Python.","type":"feature"}
|
|
2
|
+
{"commits":["9e2a6468ee2e82338ccec5131f9aac83483c2c7d"],"user_facing":true,"description":"**Fix.** Unknown subcommand errors in groups now suggest group-level help (e.g., `try 'myapp config --help'`).","type":"fix"}
|
|
3
|
+
{"commits":["cde530a82247eb67190fed61a35fc688eb6192b0","1ebf9fba80adee78890f15c2ca9c4db518677092","16abca558f7d9616b74f1be92cf7f78625dbf21f"],"user_facing":false}
|
|
4
|
+
{"commits":["c33baefc772e1ada47d927423ad48d1556d13f53"],"user_facing":false}
|
|
5
|
+
{"commits":["4e19e432ae7f209c109db64f8ee233556ec37e0e","f8c7b3859ac51b2567f075b23651f771211f7066","2764197393cb7d2031e926ed29c920a24f6c8214"],"user_facing":false}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## 0.8.7
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- **New feature.** Go implementation now includes subcommand name in parse error help suggestions, matching Python.
|
|
6
|
+
|
|
7
|
+
### Fixes
|
|
8
|
+
|
|
9
|
+
- **Fix.** Unknown subcommand errors in groups now suggest group-level help (e.g., `try 'myapp config --help'`).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"commands": {
|
|
3
|
+
"greet": {
|
|
4
|
+
"args": [],
|
|
5
|
+
"flags": [],
|
|
6
|
+
"help": "say hello",
|
|
7
|
+
"name": "greet",
|
|
8
|
+
"passthrough": false
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"config": false,
|
|
12
|
+
"deprecated": {},
|
|
13
|
+
"env_prefix": null,
|
|
14
|
+
"global_flags": [],
|
|
15
|
+
"groups": {},
|
|
16
|
+
"help": "test app",
|
|
17
|
+
"name": "myapp",
|
|
18
|
+
"version": "1.0.0"
|
|
19
|
+
}
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
## 0.8.7
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **New feature.** Go implementation now includes subcommand name in parse error help suggestions, matching Python.
|
|
10
|
+
|
|
11
|
+
### Fixes
|
|
12
|
+
|
|
13
|
+
- **Fix.** Unknown subcommand errors in groups now suggest group-level help (e.g., `try 'myapp config --help'`).
|
|
14
|
+
|
|
5
15
|
## 0.8.6
|
|
6
16
|
|
|
7
17
|
### Features
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "strictcli",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.7",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "strictcli",
|
|
9
|
-
"version": "0.8.
|
|
9
|
+
"version": "0.8.7",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT"
|
|
12
12
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
__version__ = "0.8.
|
|
5
|
+
__version__ = "0.8.7"
|
|
6
6
|
|
|
7
7
|
__all__ = [
|
|
8
8
|
"App", "Flag", "Arg", "Tag", "MutexGroup", "CoRequired", "Requires",
|
|
@@ -983,7 +983,8 @@ class App:
|
|
|
983
983
|
# Unknown command -- include path in error message
|
|
984
984
|
if path:
|
|
985
985
|
raise _ParseError(
|
|
986
|
-
f"unknown command '{token}' in '{' '.join(path)}'"
|
|
986
|
+
f"unknown command '{token}' in '{' '.join(path)}'",
|
|
987
|
+
command_prefix=f"{self.name} {' '.join(path)}",
|
|
987
988
|
)
|
|
988
989
|
raise _ParseError(f"unknown command '{token}'")
|
|
989
990
|
else:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c3a0fa4107268a0d0dae764c29358768d694199d
|
|
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
|
|
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
|