From d86c9ba2aec211fcec6ccd048f5d1442144ed07be599c82bb0b112869d18c839 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Fri, 10 Nov 2023 13:25:20 +0000 Subject: [PATCH] - update to 0.30.4: * 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 --- argh-0.29.4.tar.gz | 3 --- argh-0.30.4.tar.gz | 3 +++ python-argh.changes | 45 +++++++++++++++++++++++++++++++++++++++++++++ python-argh.spec | 2 +- 4 files changed, 49 insertions(+), 4 deletions(-) delete mode 100644 argh-0.29.4.tar.gz create mode 100644 argh-0.30.4.tar.gz diff --git a/argh-0.29.4.tar.gz b/argh-0.29.4.tar.gz deleted file mode 100644 index 06553d3..0000000 --- a/argh-0.29.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:695c0ae4534270cae2697841b4a56f434a990694a00264ea10ebbbcdc02c13f7 -size 52694 diff --git a/argh-0.30.4.tar.gz b/argh-0.30.4.tar.gz new file mode 100644 index 0000000..ed10f05 --- /dev/null +++ b/argh-0.30.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fca8e69c4dad4f8d2a7bdfbdd80b0754462b53510a03e1b5cf2b43a87e6e960 +size 62618 diff --git a/python-argh.changes b/python-argh.changes index b04bb6a..32f0bb6 100644 --- a/python-argh.changes +++ b/python-argh.changes @@ -1,3 +1,48 @@ +------------------------------------------------------------------- +Fri Nov 10 13:22:29 UTC 2023 - Dirk Müller + +- update to 0.30.4: + * 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 + deviates from the old behaviour. Kwonly arguments without + default values used to be marked as required options + (``--foo FOO``), now they are treated as positionals + (``foo``). Please consider the new default policy + (`BY_NAME_IF_KWONLY`) for a better treatment of kwonly. + * Removed previously deprecated features (#184 → #188): + * Added support for Python 3.12. + * Added type annotations to existing Argh code (#185 → #189). + * The `dispatch()` function has been refactored, so in case you + need finer control over the process, two new, more granular + functions can be used. + ------------------------------------------------------------------- Wed Oct 11 08:41:29 UTC 2023 - Dirk Müller diff --git a/python-argh.spec b/python-argh.spec index 7ffbb9c..126fab2 100644 --- a/python-argh.spec +++ b/python-argh.spec @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-argh -Version: 0.29.4 +Version: 0.30.4 Release: 0 Summary: An argparse wrapper License: LGPL-3.0-or-later