strictcli 0.16.0__tar.gz → 0.16.1__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.
Files changed (148) hide show
  1. strictcli-0.16.1/.rlsbl/changes/.validated +1 -0
  2. strictcli-0.16.1/.rlsbl/changes/0.16.0.md +18 -0
  3. strictcli-0.16.1/.rlsbl/changes/0.16.1.jsonl +3 -0
  4. strictcli-0.16.1/.rlsbl/releases/v0.16.1.toml +8 -0
  5. {strictcli-0.16.0 → strictcli-0.16.1}/CHANGELOG.md +6 -6
  6. {strictcli-0.16.0 → strictcli-0.16.1}/PKG-INFO +1 -1
  7. {strictcli-0.16.0 → strictcli-0.16.1}/package-lock.json +2 -2
  8. {strictcli-0.16.0 → strictcli-0.16.1}/package.json +1 -1
  9. {strictcli-0.16.0 → strictcli-0.16.1}/pyproject.toml +1 -1
  10. {strictcli-0.16.0 → strictcli-0.16.1}/strictcli/__init__.py +3 -7
  11. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_config.py +13 -1
  12. {strictcli-0.16.0 → strictcli-0.16.1}/uv.lock +1 -1
  13. strictcli-0.16.0/.rlsbl/changes/.validated +0 -1
  14. {strictcli-0.16.0 → strictcli-0.16.1}/.claude/settings.json +0 -0
  15. {strictcli-0.16.0 → strictcli-0.16.1}/.github/workflows/ci.yml +0 -0
  16. {strictcli-0.16.0 → strictcli-0.16.1}/.github/workflows/publish.yml +0 -0
  17. {strictcli-0.16.0 → strictcli-0.16.1}/.gitignore +0 -0
  18. {strictcli-0.16.0 → strictcli-0.16.1}/.npmignore +0 -0
  19. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.claude/settings.json +0 -0
  20. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.github/workflows/ci.yml +0 -0
  21. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.github/workflows/publish.yml +0 -0
  22. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.gitignore +0 -0
  23. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.npmignore +0 -0
  24. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.rlsbl/hooks/post-release.sh +0 -0
  25. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.rlsbl/hooks/pre-checks.sh +0 -0
  26. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.rlsbl/hooks/pre-release.sh +0 -0
  27. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.rlsbl/lint/go.toml +0 -0
  28. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.rlsbl/lint/npm.toml +0 -0
  29. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/.rlsbl/lint/python.toml +0 -0
  30. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/CHANGELOG.md +0 -0
  31. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/CLAUDE.md +0 -0
  32. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/bases/LICENSE +0 -0
  33. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.10.0.jsonl +0 -0
  34. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.10.0.md +0 -0
  35. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.11.0.jsonl +0 -0
  36. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.11.0.md +0 -0
  37. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.12.0.jsonl +0 -0
  38. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.12.0.md +0 -0
  39. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.13.0.jsonl +0 -0
  40. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.13.0.md +0 -0
  41. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.14.0.jsonl +0 -0
  42. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.14.0.md +0 -0
  43. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.15.0.jsonl +0 -0
  44. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.15.0.md +0 -0
  45. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.15.1.jsonl +0 -0
  46. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.15.1.md +0 -0
  47. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.16.0.jsonl +0 -0
  48. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.4.0.jsonl +0 -0
  49. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.4.0.md +0 -0
  50. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.4.1.jsonl +0 -0
  51. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.4.1.md +0 -0
  52. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.5.0.jsonl +0 -0
  53. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.5.0.md +0 -0
  54. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.6.0.jsonl +0 -0
  55. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.6.0.md +0 -0
  56. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.6.1.jsonl +0 -0
  57. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.6.1.md +0 -0
  58. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.7.0.jsonl +0 -0
  59. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.7.0.md +0 -0
  60. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.7.1.jsonl +0 -0
  61. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.7.1.md +0 -0
  62. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.0.jsonl +0 -0
  63. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.0.md +0 -0
  64. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.1.jsonl +0 -0
  65. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.1.md +0 -0
  66. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.2.jsonl +0 -0
  67. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.2.md +0 -0
  68. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.3.jsonl +0 -0
  69. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.3.md +0 -0
  70. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.4.jsonl +0 -0
  71. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.4.md +0 -0
  72. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.5.jsonl +0 -0
  73. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.5.md +0 -0
  74. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.6.jsonl +0 -0
  75. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.6.md +0 -0
  76. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.7.jsonl +0 -0
  77. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.8.7.md +0 -0
  78. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.9.0.jsonl +0 -0
  79. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.9.0.md +0 -0
  80. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.9.1.jsonl +0 -0
  81. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/0.9.1.md +0 -0
  82. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/changes/unreleased.jsonl +0 -0
  83. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/config.json +0 -0
  84. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/hashes.json +0 -0
  85. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/hooks/post-release.sh +0 -0
  86. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/hooks/pre-checks.sh +0 -0
  87. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/hooks/pre-release.sh +0 -0
  88. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/lint/go.toml +0 -0
  89. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/lint/npm.toml +0 -0
  90. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/lint/python.toml +0 -0
  91. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/unreleased.toml +0 -0
  92. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.10.0.toml +0 -0
  93. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.11.0.toml +0 -0
  94. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.12.0.toml +0 -0
  95. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.13.0.toml +0 -0
  96. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.15.0.toml +0 -0
  97. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.15.1.toml +0 -0
  98. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.16.0.toml +0 -0
  99. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.8.5.toml +0 -0
  100. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.8.6.toml +0 -0
  101. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.8.7.toml +0 -0
  102. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.9.0.toml +0 -0
  103. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/releases/v0.9.1.toml +0 -0
  104. {strictcli-0.16.0 → strictcli-0.16.1}/.rlsbl/version +0 -0
  105. {strictcli-0.16.0 → strictcli-0.16.1}/.strictcli/schema.json +0 -0
  106. {strictcli-0.16.0 → strictcli-0.16.1}/CLAUDE.md +0 -0
  107. {strictcli-0.16.0 → strictcli-0.16.1}/LICENSE +0 -0
  108. {strictcli-0.16.0 → strictcli-0.16.1}/README.md +0 -0
  109. {strictcli-0.16.0 → strictcli-0.16.1}/index.js +0 -0
  110. {strictcli-0.16.0 → strictcli-0.16.1}/postinstall.js +0 -0
  111. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_arg_default.py +0 -0
  112. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_at_prefix.py +0 -0
  113. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_auto_version.py +0 -0
  114. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_check_command.py +0 -0
  115. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_check_discovery.py +0 -0
  116. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_check_runner.py +0 -0
  117. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_check_schema.py +0 -0
  118. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_check_types.py +0 -0
  119. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_choices.py +0 -0
  120. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_command_help_suggestion.py +0 -0
  121. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_config_file_path.py +0 -0
  122. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_config_set_bugs.py +0 -0
  123. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_deep_nesting.py +0 -0
  124. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_dependencies.py +0 -0
  125. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_deprecated.py +0 -0
  126. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_dump_schema.py +0 -0
  127. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_e2e.py +0 -0
  128. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_env.py +0 -0
  129. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_exit_codes.py +0 -0
  130. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_float_type.py +0 -0
  131. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_global_flags.py +0 -0
  132. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_help.py +0 -0
  133. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_int_type.py +0 -0
  134. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_mutex.py +0 -0
  135. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_nesting.py +0 -0
  136. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_parser.py +0 -0
  137. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_passthrough.py +0 -0
  138. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_registration.py +0 -0
  139. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_repeatable.py +0 -0
  140. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_tagdsl.py +0 -0
  141. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_tags.py +0 -0
  142. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_toml_loading.py +0 -0
  143. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_unique.py +0 -0
  144. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_utilities.py +0 -0
  145. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_validate.py +0 -0
  146. {strictcli-0.16.0 → strictcli-0.16.1}/tests/test_variadic.py +0 -0
  147. {strictcli-0.16.0 → strictcli-0.16.1}/todo/.defer/deferred.md +0 -0
  148. {strictcli-0.16.0 → strictcli-0.16.1}/todo/.done/original-idea.md +0 -0
@@ -0,0 +1 @@
1
+ 2a117a0d39aebe26c1f73df78aecb99c81ee2128
@@ -0,0 +1,18 @@
1
+ ## 0.16.0
2
+
3
+ ### Breaking
4
+
5
+ - **Config show.** `config show` now requires explicit `--plain` or `--json` flag instead of defaulting to plain text.
6
+
7
+ ### Features
8
+
9
+ - **New flag field.** `unique` field on repeatable flags enforces no duplicate values at CLI parse time and in config arrays.
10
+ - **New flag field.** `env_separator` on repeatable flags controls how environment variable values are split into arrays.
11
+ - **Config arrays.** Config values for repeatable flags are now coerced from strings to the declared type.
12
+ - **Config set.** Repeatable flags can now be managed with `config set`, including `--clear` to reset and `--default` to restore default values.
13
+
14
+ ### Fixes
15
+
16
+ - **Fix.** Float NaN/Inf env var error messages now include the environment variable suffix.
17
+ - **Fix.** Config error messages now use consistent type names and array formatting.
18
+ - **Fix.** Flag collection no longer includes config group pseudo-flags, preventing incorrect behavior in commands that enumerate all flags.
@@ -0,0 +1,3 @@
1
+ {"commits":["cdc010316ce356628e2592b493ccc368dd782b48"],"user_facing":true,"description":"**Fix.** `config set` mutex error messages now include the `config set:` prefix for consistency.","type":"fix"}
2
+ {"commits":["98bfea68b1b971b42a31ecb1d08ecc3b55df86f2","1d9ee273ce05153c7c9e23b8297c6fccdb342c21"],"user_facing":false}
3
+ {"commits":["67b8d456d3e491b3d398ee7b0b7a4f3ba116cab1"],"user_facing":true,"description":"**Fix.** Config set help text now mentions backslash escaping for values containing commas in repeatable flags.","type":"fix"}
@@ -0,0 +1,8 @@
1
+ # Version bump type: patch, minor, or major
2
+ bump = "patch"
3
+ # Short description of this release (required)
4
+ description = "Error message fixes and help text improvements"
5
+ # Optional context explaining why these changes were made
6
+ context = ""
7
+ include = ["pypi", "npm"]
8
+ exclude = []
@@ -2,16 +2,16 @@
2
2
 
3
3
  # Changelog
4
4
 
5
- ## 0.16.0
5
+ ## 0.16.1
6
6
 
7
- unique and env_separator flag fields, config array coercion, config set repeatable support
7
+ Error message fixes and help text improvements
8
8
 
9
- <details>
10
- <summary>Context</summary>
9
+ ### Fixes
11
10
 
12
- Breaking: config show now requires --plain or --json. New features: unique field enforces no duplicate values on repeatable flags, env_separator controls how env vars are split into arrays, config arrays are coerced to declared types, config set supports repeatable flags with --clear and --default.
11
+ - **Fix.** `config set` mutex error messages now include the `config set:` prefix for consistency.
12
+ - **Fix.** Config set help text now mentions backslash escaping for values containing commas in repeatable flags.
13
13
 
14
- </details>
14
+ ## 0.16.0
15
15
 
16
16
  ### Breaking
17
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: strictcli
3
- Version: 0.16.0
3
+ Version: 0.16.1
4
4
  Summary: A strict, zero-dependency CLI framework for Python
5
5
  Project-URL: Homepage, https://github.com/smm-h/strictcli
6
6
  Project-URL: Repository, https://github.com/smm-h/strictcli
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "strictcli",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "strictcli",
9
- "version": "0.16.0",
9
+ "version": "0.16.1",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT"
12
12
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strictcli",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "A strict, zero-dependency CLI framework for Python (npm wrapper)",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "strictcli"
7
- version = "0.16.0"
7
+ version = "0.16.1"
8
8
  description = "A strict, zero-dependency CLI framework for Python"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "0.16.0"
5
+ __version__ = "0.16.1"
6
6
 
7
7
  __all__ = [
8
8
  "App", "Flag", "Arg", "Tag", "MutexGroup", "CoRequired", "Requires",
@@ -1163,11 +1163,7 @@ class App:
1163
1163
 
1164
1164
  # config show
1165
1165
  def _config_show_handler(**_kw) -> int:
1166
- use_plain = _kw.get("plain", False)
1167
1166
  use_json = _kw.get("json", False)
1168
- if not use_plain and not use_json:
1169
- print("config show: specify --plain or --json", file=sys.stderr)
1170
- return 1
1171
1167
  config_data = _load_config(
1172
1168
  app_ref.name,
1173
1169
  config_path_override=app_ref.config_path,
@@ -1251,7 +1247,7 @@ class App:
1251
1247
  # Validate: exactly one of (value, --clear, --default)
1252
1248
  has_value = value is not None
1253
1249
  if use_clear and use_default:
1254
- print("--clear and --default are mutually exclusive",
1250
+ print("config set: --clear and --default are mutually exclusive",
1255
1251
  file=sys.stderr)
1256
1252
  return 1
1257
1253
  if has_value and use_clear:
@@ -1369,7 +1365,7 @@ class App:
1369
1365
  args=[
1370
1366
  Arg(name="key", help="Config key to set"),
1371
1367
  Arg(name="value",
1372
- help="Value to set (comma-separated for repeatable flags)",
1368
+ help="Value to set (comma-separated for repeatable flags, use backslash to escape commas)",
1373
1369
  required=False),
1374
1370
  ],
1375
1371
  flags=[
@@ -1153,6 +1153,18 @@ def test_config_set_repeatable_int(tmp_path, monkeypatch):
1153
1153
  assert data["counts"] == [1, 2, 3]
1154
1154
 
1155
1155
 
1156
+ def test_config_set_repeatable_float(tmp_path, monkeypatch):
1157
+ """Config set writes a float array for a repeatable flag."""
1158
+ monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path))
1159
+ app = _make_config_set_app()
1160
+ r = app.test(["config", "set", "rates", "1.5,2.5,3.0"])
1161
+ assert r.exit_code == 0
1162
+
1163
+ config_file = tmp_path / "repapp" / "config.json"
1164
+ data = json.loads(config_file.read_text())
1165
+ assert data["rates"] == [1.5, 2.5, 3.0]
1166
+
1167
+
1156
1168
  def test_config_set_escaped_comma(tmp_path, monkeypatch):
1157
1169
  r"""Config set handles escaped commas: a\,b,c -> ["a,b", "c"]."""
1158
1170
  monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path))
@@ -1297,4 +1309,4 @@ def test_config_set_clear_and_default_error(tmp_path, monkeypatch):
1297
1309
  app = _make_config_set_app()
1298
1310
  r = app.test(["config", "set", "tags", "--clear", "--default"])
1299
1311
  assert r.exit_code == 1
1300
- assert "--clear and --default are mutually exclusive" in r.stderr
1312
+ assert "config set: --clear and --default are mutually exclusive" in r.stderr
@@ -232,7 +232,7 @@ wheels = [
232
232
 
233
233
  [[package]]
234
234
  name = "strictcli"
235
- version = "0.16.0"
235
+ version = "0.16.1"
236
236
  source = { editable = "." }
237
237
 
238
238
  [package.dev-dependencies]
@@ -1 +0,0 @@
1
- 6e78d5bbca2712fb8e63e4316ea118fff59b992f
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