Features
Numbervalidator supportsDecimalandFraction. #988
Bug Fixes
Config & Environment Variables
- Empty config containers now bind for
dict,list,tuple,setand dataclass parameters (Anyparameters keep the container as-is). #993, #1006 - A config
nullis rejected for types that don't allowNone. #1004 - A config array is rejected for single-value types, including a pydantic
Model | bool(previously boundTrue). #1005, #1014 - A JSON
config.Envvalue containing spaces stays one token. #997 - Symlinked configuration filenames are preserved. @ac1982 #995
JSON Parsing
dict[str, X]parameters accept a JSON object from the CLI or an env var. #1001- A JSON object for a nested pydantic model field no longer crashes with
IndexError. #999 - An explicit empty JSON object reports the missing required fields. #992
- Errors from config/env JSON list elements name the real parameter instead of
--json. #998
Unions With a Class Member
Foo | boolsupports keyed fields and bare flags, and lists--x/--no-xin help and shell completion. #991, #1013Foo | dict[str, int]no longer silently drops unknown keys; its dict fallback keeps typed keys and input order. #1015, #1019
Other
- ~3.5 ms faster startup and per-invocation overhead. #989
- A mistyped command given with
--helpraisesUnknownCommandError. @BreytMN #994 Parametermetadata is honored on dict value types. @saadkhantareen #1008- Pydantic models with
validate_by_alias=Falseaccept the field name on pydantic 2.14. #1010 - The
Parameter(name="*")no-default error names the class instead ofAnnotated. #996 resolve_returncodeandConsumeMultipleErrorare declared in__init__.pyi. @tarrific #1018
New Contributors
- @ac1982 made their first contribution in #995
- @BreytMN made their first contribution in #994
- @saadkhantareen made their first contribution in #1008
- @tarrific made their first contribution in #1018
Full Changelog: v5.2.0...v5.3.0