NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3024 most downloaded on PyPI
Minimal effort CLIs derived from type hints and parse from command line, config files and environment variables.
Last release 1 months ago
01 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
204 releases · first in 2019
set_defaults method now works for arguments within subcommands.
set_defaults method now works for arguments within subcommands.
CLI set_defaults option to allow overriding of defaults.
CLI return_parser option to ease inclusion in documentation.
save_path_content attribute to save paths content on config save.
New link_arguments method to derive an argument value from others.
print_config now includes subclass init_args if class_path given.
Subclass type hints now also have a --*.help option.
Signature parameters whose name starts with "_" are skipped.
The repr of Path now has the form Path_{mode}(.
CLI now does instantiate_subclasses before running.
Moved deprecated code to a module specific for this.
One column per quarter.
New method add_dataclass_arguments.
Dataclasses are now supported as a type.
New predefined type Path_dc.
Experimental Callable type support.
Signature methods with nested key can be made required.
Support for Literal types.
New option in signatures methods to not fail for untyped required.
Generation of yaml now uses internally pyyaml's safe_dump.
New cleaner implementation for type hints support.
Moved deprecated code to a module specific for this.
Path types repr now has format Path(rel[, cwd=dir]).
instantiate_subclasses now always returns a dict.
ActionEnum should no longer be used, instead enums are given as type.
Deserialization of types not being done for nested config files.
Help fails saying required args missing if default config file exists (#48 __).
Path class now supports home prefix '~' (#45 __).
Path class now supports home prefix '~' (#45).
yaml/json dump kwargs can now be changed via attributes dump_yaml_kwargs and dump_json_kwargs.
Now by default dump/save/print_config preserve the add arguments and argument groups order (only CPython>=3.6) (#46).
ActionParser group title now defaults to None if not given (#47).
Add argument with type Enum or type hint giving an action now raises error (#45).
Parser help now also considers default_config_files and shows which config file was loaded (#47).
get_default method now also considers default_config_files.
get_defaults now raises ParserError if default config file not valid.
default_config_files property not removing help group when setting None.
ActionParser now moves all actions to the parent parser.
ActionParser now moves all actions to the parent parser.
The help of ActionParser arguments is now shown in the main help (#41).
Function to register additional types for use in parsers.
Function to register additional types for use in parsers.
Type hint support for complex and UUID classes.
PositiveInt and NonNegativeInt now gives error instead of silently truncating when given float.
Types created with restricted_number_type and restricted_string_type now share a common TypeCore base class.
ActionOperators not give error if type already registered.
List[Tuple] types not working correctly.
Some nested dicts kept as Namespace by dump.
Parsing of relative paths in default_config_files not working.
Parsing of relative paths in default_config_files not working.
Description of tuple type in the readme.
Tuples with ellipsis are now supported (#40 __).
CLI crashed for class method when zero args given after subcommand.
CLI crashed for class method when zero args given after subcommand.
Options before subcommand provided in config file gave subcommand not given.
Arguments in groups without help not showing required, type and default.
Required arguments help incorrectly showed null default value.
Various improvements and fixes to the readme.
Save with multifile=True now creates original jsonnet file for ActionJsonnet.
Save with multifile=True now creates original jsonnet file for ActionJsonnet.
default_config_files is now a property of parser objects.
Table in readme to ease understanding of extras requires for optional features (#38).
Save with multifile=True uses file extension to choose json or yaml format.
Better exception message when using ActionJsonSchema and jsonschema not installed (#38).
Changed actions so that keyword arguments are visible in API.
Changed actions so that keyword arguments are visible in API.
Fixed save method short description which was copy paste of dump.
Added missing docstring in instantiate_subclasses method.
Fixed crash when using --help and ActionConfigFile not given help string.
Standardized capitalization and punctuation of: help, config, version.
instantiate_subclasses work properly when init_args not present.
instantiate_subclasses work properly when init_args not present.
Addressed a couple of issues pointed out by sonarcloud.
New add_subclass_arguments method to add as type with a specific help option.
New add_subclass_arguments method to add as type with a specific help option.
Automatic Optional for arguments with default None (#30 __).
Automatic Optional for arguments with default None (#30).
CLI now supports running methods from classes.
Signature arguments can now be loaded from independent config files (#32).
add_argument now supports enable_path for type based on jsonschema.
print_config can now be given as value skip_null to exclude null entries.
Improved description of parser used as standalone and for ActionParser (#34).
Removed __cwd__ and top level __path__ that were not needed.
ActionYesNo argument in help the type is now bool.
Correctly skip self in add_method_arguments for inherited methods.
Prevent failure of dump in cleanup_actions due to new _ActionConfigLoad.
Prevent failure in save_paths for dict with int keys.
Avoid duplicate config check failure message with subcommands.
Support for multiple levels of subcommands (#29 __).
Support for multiple levels of subcommands (#29).
Default description of subcommands explaining use of --help.
add_class_arguments incorrectly added arguments from __call__ instead of __init__ for callable classes.
add_class_arguments incorrectly added arguments from __call__ instead of __init__ for callable classes.
Functions to add arguments from classes, methods and functions.
Functions to add arguments from classes, methods and functions.
CLI function that allows creating a line command line interface with a single line of code inspired by Fire.
Typing module that includes predefined types and type generator functions for paths and restricted numbers/strings.
Extended support to add_argument type to allow complex type hints.
Parsers now include --print_config option to dump defaults.
Support argcomplete for tab completion of arguments.
ArgumentParsers by default now use as error_handler the usage_and_exit_error_handler.
error_handler and formatter_class no longer accept as value a string.
Changed SimpleNamespace to Namespace to avoid unnecessary differences with argparse.
ActionOperators should no longer be used, the new alternative is restricted number types.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →