Backward incompatible changes:
β¨ Enhancements:
@wraps decorator
(issue #111).π Fixed bugs:
**kwargs and positionals
without defaults and with underscores in their names, a weird behaviour could
be observed (issue #104).Other changes:
π This is a maintenance release. Just a few changes:
π Fixed bugs:
dispatch(..., pre_call=x)
was broken; fixing because at least one important app depends on it
(issue #63).π This release is intended to be the last one before 1.0. Therefore a major cleanup was done. This breaks backward compatibility. If your code is really outdated, please read this list carefully and grep your code.
β Removed decorator @alias (deprecated since v.0.19).
β Removed decorator @plain_signature (deprecated since v.0.20).
π
Dropped support for old-style functions that implicitly expected namespace
objects (deprecated since v.0.21). The @expects_obj decorator is now
mandatory for such functions.
β Removed decorator @command (deprecated since v.0.21).
The @wrap_errors decorator now strictly requires that the error classes
are given as a list (old behaviour was deprecated since v.0.22).
π The allow_warnings argument is removed from
argh.completion.autocomplete(). Debug-level logging is used instead.
(The warnings were deprecated since v.0.25).
Some more stuff has been scheduled to be purged before 1.0:
title, help and description in add_commands()
helper function. See documentation and issue #60.Other changes:
π Improved representation of default values in the help.
π§ Dispatcher can be configured to skip unknown arguments (issue #57).
β Added add_subcommands() helper function (a convenience wrapper
for add_commands()).
π EntryPoint now stores kwargs for the parser.
Added support for default command with nested commands (issue #78).
This only works with Python 3.4+ due to incorrect behaviour or earlier versions of Argparse (including the stand-alone one as of 1.2.1).
Due to argparse peculiarities the function assignment technique relies
on a special ArghNamespace object. It is used by default in ArghParser
and the shortcuts, but if you call the vanilla ArgumentParser.parse_args()
method, you now have to supply the proper namespace object.
π Fixed bugs:
β Added EntryPoint class as another way to assemble functions (issue #59).
β Added support for Python 3.4; dropped support for Python 3.3 (this doesn't mean that Argh is necessarily broken under 3.3, it's just that I'm not testing against it anymore).
π Shell completion warnings are now deprecated in favour of logging.
0οΈβ£ The command help now displays default values of all arguments (issue #64).
π Function docstrings are now displayed verbatim in the help (issue #64).
Argh's dispatching now should work properly in Cython.