- Drop support for python > 3.10
- CI fixes for explicitly testing for 3.10, 3.11, 3.12
- Backwards incompatible change. Use
Cmd
model. - Remove "sp" specific functions. No longer necessary because of Cmd interface.
- To migrate forward, inherit from
Cmd
and put your "main" function asCmd.run
method. Cmd.run()
should return None (on success) or raise an exception on error.
(Not published)
- Support for Pydantic >= 2.8
- Pydantic 2 has a different "optional" definition
- Use
CliConfig
instead ofDefaultConfig
- Many backward incompatible changes to how
bool
are used. Use Pydantic bool casting (e.g.,--dry-run y
, or--dry-run true
). - There's
mypy
related issues withField( ......, cli=('-x', '--filter'))
. I don't think pydantic should remove the currentextra
functionality.
- Leverage Pydantic validation for enum choices, enabling more complex use-cases
- Backward incompatible change for semantics of boolean options
Field
should be used instead of Config.CLI_EXTRA_OPTIONS
- Improve support for simple
Enum
s.
- Add support for
List
andSet
fields by Marius van Niekerk
- Add support for emitting autocomplete in bash/zsh using shtab
- Enable setting the default JSON config file via
PCLI_JSON_CONFIG
env var
- backwards in compatible changes with default behavior (e.g., generated flags) of boolean options and custom configuration of boolean options.
- Internals now leverage
mypy
and can catch more Type related errors