* The typing hints introspection feature is automatically
enabled for any command (function) which does not have any
arguments specified via @arg decorator.
* A small change in the legacy argument mapping policy
BY_NAME_IF_HAS_DEFAULT concerning the order of variadic
positional vs. keyword-only arguments. The following function
now results in main alpha [args ...] beta instead of main
alpha beta [args ...]: def main(alpha, *args, beta): ...
This does not concern the default name mapping policy. Even
for the legacy one it's an edge case which is extremely
unlikely to appear in any real-life application.
* Added experimental support for basic typing hints (issue
#203) The following hints are currently supported: str, int,
float, bool (goes to type); list (affects nargs), list[T]
(first subtype goes into type); Literal[T1, T2, ...]
(interpreted as choices); Optional[T] AKA T | None (currently
interpreted as required=False for optional and nargs="?" for
positional arguments; likely to change in the future as use
cases accumulate). The exact interpretation of the type
hints is subject to change in the upcoming versions of Argh.
* Added always_flush argument to dispatch() (issue #145)
* High-level functions argh.dispatch_command() and
argh.dispatch_commands() now accept a new parameter
old_name_mapping_policy. The behaviour hasn't changed
because the parameter is True by default. It will change to
False in Argh v.0.33 or v.1.0.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argh?expand=0&rev=38
* Regression: a positional argument with an underscore used in
`@arg` decorator would cause Argh fail on the assembling stage.
* As reported in #204 and #206, the new default name mapping
policy in fact silently changed the CLI API of some scripts:
arguments which were previously translated as CLI options
became optional positionals.
Although the instructions were supplied in the release notes,
the upgrade may not necessarily be intentional, so a waste of
users' time is quite likely.
* To alleviate this, the default value for
`name_mapping_policy` in standard functions has been changed
to `None`; if it's not specified, Argh falls back to the new
default policy, but raises `ArgumentNameMappingError` with
detailed instructions if it sees a non-kwonly argument with a
default value.
* Please specify the policy explicitly in order to avoid this
error if you need to infer optional positionals (``nargs="?"``)
from function signature.
* Regression: certain special values in argument default value
would cause an exception (#204)
* Added a more informative error message when the reason is
likely to be related to the migration from Argh v0.29 to a
version with a new argument name mapping policy.
* A new policy for mapping function arguments to CLI arguments
is used by default
* If you cannot modify the function signature to use kwonly
args for options, please consider explicitly specifying the
legacy name mapping
* The name mapping policy `BY_NAME_IF_HAS_DEFAULT` slightly
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argh?expand=0&rev=34
* Test coverage reported as <100% when argcomplete is installed
* Technical releases for packaging purposes. No changes in
functionality.
* Backwards incompatible changes:
* Wrapped exceptions now cause ``dispatching.dispatch()`` to
raise ``SystemExit(1)`` instead of returning without error.
For most users, this means failed commands will now exit
with a failure status instead of a success.
* Renamed arguments in `add_commands()` (#165):
* `namespace` → `group_name`
* `namespace_kwargs` → `group_kwargs`
* The old names are deprecated and will be removed in v.0.30.
* Can control exit status (see Backwards Incompatible Changes
above) when raising ``CommandError`` using the ``code``
keyword arg.
* Bugs fixed:
* Positional arguments should not lead to removal of short
form of keyword arguments.
* Other changes:
* Avoid depending on iocapture by using pytest's built-in
feature
- Update to verios 0.23.0
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argh?expand=0&rev=32
- version update to 0.28.1
Version 0.28.1
--------------
- Fixed bugs in tests (#171, #172)
Version 0.28.0
--------------
A major cleanup.
Backward incompatible changes:
- Dropped support for Python 2.7 and 3.7.
Deprecated features, to be removed in v.0.30:
- `argh.assembling.SUPPORTS_ALIASES`.
- Always `True` for recent versions of Python.
- `argh.io.safe_input()` AKA `argh.interaction.safe_input()`.
- Not relevant anymore. Please use the built-in `input()` instead.
- argument `pre_call` in `dispatch()`.
- Argument help as annotations.
- Annotations will only be used for types after v.0.30.
- Added deprecation warnings for some arguments deprecated back in v.0.26.
Version 0.27.2
--------------
Minor packaging fix:
* chore: include file required by tox.ini in the sdist (#155)
Version 0.27.1
--------------
Minor building and packaging fixes:
* docs: add Read the Docs config (#160)
* chore: include tox.ini in the sdist (#155)
Version 0.27.0
--------------
This is the last version to support Python 2.7.
OBS-URL: https://build.opensuse.org/request/show/1090450
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-argh?expand=0&rev=30