Changelog

All notable changes to this project will be documented in this file. Versions follow Semantic Versioning (<major>.<minor>.<patch>). Backward incompatible (breaking) changes will only be introduced in major versions with advance notice in the Deprecated section of releases.

v3.5.0 (2021-02-12)

Added

  • Tuples with ellipsis are now supported #40.

Fixed

  • Using dict as type incorrectly considered as class requiring class_path.

  • Nested tuples were not working correctly #40.

v3.4.1 (2021-02-03)

Fixed

  • 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.

v3.4.0 (2021-02-01)

Added

  • 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.

Changed

  • Save with multifile=True uses file extension to choose json or yaml format.

Fixed

  • Better exception message when using ActionJsonSchema and jsonschema not installed #38.

v3.3.2 (2021-01-22)

Fixed

  • 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.

v3.3.1 (2021-01-08)

Fixed

  • instantiate_subclasses work properly when init_args not present.

  • Addressed a couple of issues pointed out by sonarcloud.

v3.3.0 (2021-01-08)

Added

  • New add_subclass_arguments method to add as type with a specific help option.

v3.2.1 (2020-12-30)

Added

  • 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.

Changed

  • Improved description of parser used as standalone and for ActionParser #34.

  • Removed __cwd__ and top level __path__ that were not needed.

Fixed

  • 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.

v3.1.0 (2020-12-09)

Added

  • Support for multiple levels of subcommands #29.

  • Default description of subcommands explaining use of –help.

v3.0.1 (2020-12-02)

Fixed

  • add_class_arguments incorrectly added arguments from __call__ instead of __init__ for callable classes.

v3.0.0 (2020-12-01)

Added

  • 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.

Changed

  • 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.

Deprecated

  • ActionOperators should no longer be used, the new alternative is restricted number types.

v2.X.X

The change log was introduced in v3.0.0. For details of the changes for previous versions take a look at the git log. It more or less reads like a change log.