summaryrefslogtreecommitdiffstats
path: root/Lib/argparse.py
Commit message (Collapse)AuthorAgeFilesLines
* [3.12] gh-125355: Rewrite parse_intermixed_args() in argparse (GH-125356) ↵Serhiy Storchaka2024-10-221-65/+34
| | | | | | | | | | | | | | (GH-125839) * The parser no longer changes temporarily during parsing. * Default values are not processed twice. * Required mutually exclusive groups containing positional arguments are now supported. * The missing arguments report now includes the names of all required optional and positional arguments. * Unknown options can be intermixed with positional arguments in parse_known_intermixed_args(). (cherry picked from commit 759a54d28ffe7eac8c23917f5d3dfad8309856be)
* [3.12] gh-86357: argparse: use str() consistently and explicitly to print ↵Serhiy Storchaka2024-10-141-7/+5
| | | | | | | | choices (GH-117766) (GH-125432) (cherry picked from commit 66b3922b97388c328c9bd8df050eef11c0261fae) Signed-off-by: Jan Chren ~rindeal <dev.rindeal@gmail.com> Co-authored-by: rindeal <dev.rindeal@gmail.com>
* [3.12] gh-125254: Fix error report about ambiguous option in argparse ↵Miss Islington (bot)2024-10-121-1/+1
| | | | | | | | | (GH-125273) (GH-125360) This was a regression introduced in gh-58573. It was only tested for the case when the ambiguous option is the last argument in the command line. (cherry picked from commit 63cf4e914f879ee28a75c02e867baa7c6047ea2b) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-61011: Fix inheritance of nested mutually exclusive groups in ↵Miss Islington (bot)2024-10-111-1/+5
| | | | | | | | | | | | argparse (GH-125210) (GH-125309) Previously, all nested mutually exclusive groups lost their connection to the group containing them and were displayed as belonging directly to the parser. (cherry picked from commit 18c74497681e0107d7cde53e63ea42feb38f2176) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Danica J. Sutherland <djsutherland@users.noreply.github.com>
* [3.12] gh-58282: Fix support of tuple metavar for positional arguments in ↵Miss Islington (bot)2024-10-021-3/+10
| | | | | | | | | | | argparse (GH-124782) (GH-124881) Previously, formatting help output or error message for positional argument with a tuple metavar raised exception. (cherry picked from commit 9b31a2d83fa7cb0fe4d75ce7cf6a2c9ea2ce0728) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Cyker Way <cykerway@gmail.com>
* [3.12] gh-58573: Fix conflicts between abbreviated long options in the ↵Miss Islington (bot)2024-09-291-34/+28
| | | | | | | | | parent parser and subparsers in argparse (GH-124631) (GH-124759) Check for ambiguous options if the option is consumed, not when it is parsed. (cherry picked from commit 3f27153e077d7e9448e2f081275931968b40cc74) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-116850: Fix argparse for namespaces with not directly writable ↵Miss Islington (bot)2024-09-291-1/+2
| | | | | | | | | dict (GH-124667) (GH-124758) It now always uses setattr() instead of setting the dict item to modify the namespace. This allows to use a class as a namespace. (cherry picked from commit 95e92ef6c74e973ea13d15180190d0fa2af82fbf) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-61181: Fix support of choices with string value in argparse ↵Miss Islington (bot)2024-09-291-5/+9
| | | | | | | | (GH-124578) (GH-124756) Substrings of the specified string no longer considered valid values. (cherry picked from commit f1a2417b9e2993e584610851ac004c8b0599b323) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-124345: Support abbreviated single-dash long options with = in ↵Miss Islington (bot)2024-09-291-2/+4
| | | | | | | argparse (GH-124428) (GH-124754) (cherry picked from commit 61180446eee2aef07b042c7e8892c45afabd1499) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-80259: Fix conflict between type and default=SUPPRESS in argparse ↵Miss Islington (bot)2024-09-291-1/+1
| | | | | | | | | | (GH-124519) (GH-124752) type() no longer called for SUPPRESS. This only affects positional arguments with nargs='?'. (cherry picked from commit 9bcadf589ab6f7b9d309290de7a80156b6905d35) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-104860: Fix allow_abbrev=False for single-dash long options ↵Miss Islington (bot)2024-09-291-1/+1
| | | | | | | (GH-124340) (GH-124750) (cherry picked from commit 49e105f9488de18d3d92948232fcbd956cbe0c6e) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] bpo-44864: Do not translate user-provided strings in ↵Miss Islington (bot)2024-09-251-2/+2
| | | | | | | | ArgumentParser.add_subparsers() (GH-27667) (GH-124505) Call _() on literal strings only. (cherry picked from commit d3c76dff444046504754a437dceebc9a9c87ef18) Co-authored-by: Jérémie Detrey <jdetrey@users.noreply.github.com>
* [3.12] gh-59317: Improve parsing optional positional arguments in argparse ↵Miss Islington (bot)2024-09-241-6/+7
| | | | | | | | | (GH-124303) (GH-124437) Fix parsing positional argument with nargs equal to '?' or '*' if it is preceded by an option and another positional argument. (cherry picked from commit 4a5e4aade420c594c5b3fe0589e9e6b444bd6ee5) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-72795: Make positional arguments with nargs='*' or REMAINDER ↵Miss Islington (bot)2024-09-241-3/+2
| | | | | | | | | | non-required (GH-124306) (GH-124422) This allows to use positional argument with nargs='*' and without default in mutually exclusive group and improves error message about required arguments. (cherry picked from commit 3c83f9958c14cd62ad8951c53536f7788745b0ba) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-53780: Ignore the first "--" (double dash) between an option and ↵Miss Islington (bot)2024-09-241-4/+8
| | | | | | | command in argparse (GH-124275) (GH-124420) (cherry picked from commit c578271366176a1d1b0941897efefb6e4d6508b4) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-63143: Fix parsing mutually exclusive arguments in argparse ↵Miss Islington (bot)2024-09-241-3/+2
| | | | | | | | | | (GH-124307) (GH-124419) Arguments with the value identical to the default value (e.g. booleans, small integers, empty or 1-character strings) are no longer considered "not present". (cherry picked from commit 3094cd17b0e5ba69309c54964744c797a70aa11b) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] GH-87041: Fix incorrect indentation in argparse help (GH-124230) ↵Miss Islington (bot)2024-09-231-4/+3
| | | | | | | | | | | | (GH-124374) In case of usage a long command along with max_help_position more than the length of the command, the command's help was incorrectly started on the new line. (cherry picked from commit 7ee99217345af3010bf05b1f5241c661a5e0ea9b) Co-authored-by: Savannah Ostrowski <savannahostrowski@gmail.com> Co-authored-by: Pavel Ditenbir <pavel.ditenbir@gmail.com>
* [3.12] gh-81691: Fix handling of multiple "--" (double dashes) in argparse ↵Miss Islington (bot)2024-09-201-7/+5
| | | | | | | | | (GH-124233) (GH-124267) Only the first one has now been removed, all subsequent ones are now taken literally. (cherry picked from commit aae126748ff3d442fdbcd07933855ffd7ae6f59c) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-121018: Fix more cases of exiting in argparse when ↵Serhiy Storchaka2024-06-281-9/+13
| | | | | | | | | | exit_on_error=False (GH-121056) (GH-121129) * parse_intermixed_args() now raises ArgumentError instead of calling error() if exit_on_error is false. * Internal code now always raises ArgumentError instead of calling error(). It is then caught at the higher level and error() is called if exit_on_error is true. (cherry picked from commit 81a654a3425eaa05a51342509089533c1f623f1b)
* [3.12] gh-121018: Ensure ArgumentParser.parse_args with exit_on_error=False ↵Miss Islington (bot)2024-06-261-2/+4
| | | | | | | raises instead of exiting when given unrecognized arguments (GH-121019) (GH-121031) (cherry picked from commit 0654336dd5138aec04e3017e15ccbb90a44e053d) Co-authored-by: blhsing <blhsing@gmail.com>
* [3.12] bpo-44865: Fix yet one missing translations in argparse (GH-27668) ↵Miss Islington (bot)2024-02-261-1/+2
| | | | | | | (GH-115974) (cherry picked from commit 6087315926fb185847a52559af063cc7d337d978) Co-authored-by: Jérémie Detrey <jdetrey@users.noreply.github.com>
* [3.12] gh-77956: Add the words 'default' and 'version' help text ↵Serhiy Storchaka2024-02-261-2/+4
| | | | | | | | | localizable (GH-12711) (GH-115967) (cherry picked from commit da382aaf52d761a037874bee27bb5db69906df9e) Co-authored-by: paul.j3 Co-authored-by: Emmanuel Arias <eamanu@yaerobi.com> Co-authored-by: Jérémie Detrey <jdetrey@users.noreply.github.com>
* [3.12] gh-96310: Fix a traceback in argparse when all options in a mutually ↵Miss Islington (bot)2024-02-211-0/+2
| | | | | | | | | | | | | exclusive group are suppressed (GH-96311) (GH-115767) Reproducer depends on terminal size - the traceback occurs when there's an option long enough so the usage line doesn't fit the terminal width. Option order is also important for reproducibility. Excluding empty groups (with all options suppressed) from inserts fixes the problem. (cherry picked from commit 5f7df88821347c5f44fc4e2c691e83a60a6c6cd5) Co-authored-by: Daniel Mach <daniel.mach@suse.com>
* [3.12] gh-60346: Improve handling single-dash options in ↵Miss Islington (bot)2024-02-191-23/+28
| | | | | | | ArgumentParser.parse_known_args() (GH-114180) (GH-115675) (cherry picked from commit e47ecbd0420528f1f9f282d9e7acfcf586a4caa1) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.12] gh-109475: Fix support of explicit option value "--" in argparse ↵Miss Islington (bot)2024-02-051-1/+1
| | | | | | | | (GH-114814) (GH-115036) For example "--option=--". (cherry picked from commit 4aa4f0906df9fc9c6c6f6657f2c521468c6b1688) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-92248: Deprecate `type`, `choices`, `metavar` parameters of ↵Nikita Sobolev2023-05-191-3/+24
| | | | | | | | `argparse.BooleanOptionalAction` (#103678) Co-authored-by: Kirill <80244920+Eclips4@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
* gh-104273: Remove redundant len() calls in argparse function (#104274)Burak Saler2023-05-071-3/+4
|
* gh-101640: Make argparse _print_message catch any write error (#101802)Oleg Iarygin2023-05-061-3/+5
| | | | | | * In particular, don't exit when trying to print to stderr = None. * Add tests Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
* gh-101979: argparse: fix a bug where parentheses in metavar argument of ↵Yeojin Kim2023-03-051-3/+10
| | | | add_argument() were dropped (#102318)
* gh-80448: argparse: Fix IndexError on store_true action (#15656)Hai Shi2022-11-121-1/+5
| | | | | Co-authored-by: Rémi Lapeyre <remi.lapeyre@henki.fr> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
* argparse: Remove unused name variable when handling ArgumentTypeError (#96549)Jonathon Reinhart2022-09-051-1/+0
| | | | | | | | This removes the unused `name` variable in the block where `ArgumentTypeError` is handled. `ArgumentTypeError` errors are handled by showing just the string of the exception; unlike `ValueError`, the name (`__name__`) of the function is not included in the error message. Fixes #96548
* gh-92445 Improve interaction between nargs="*" and choices() (GH-92565)Harry2022-08-251-1/+3
|
* gh-85308: argparse: Use filesystem encoding for arguments file (GH-93277)Inada Naoki2022-06-231-1/+3
|
* Allow translating argument error messages (#17169)DjMorgul2022-05-051-1/+1
|
* gh-88753: Make BooleanOptionalAction's addition of default to help more ↵Toshio Kuratomi2022-05-031-5/+15
| | | | | | | | | | | | | | | | similar to other actions (#27808) Help for other actions omit the default value if default is SUPPRESS or already contains the special format string '%(default)'. Add those special cases to BooleanOptionalAction's help formatting too. Fixes https://bugs.python.org/issue44587 so that default=SUPPRESS is not emitted. Fixes https://bugs.python.org/issue38956 as this code will detect whether '%(default)s' has already been specified in the help string. Signed-off-by: Micky Yun Chan (michiboo): <chanmickyyun@gmail.com> Co-authored-by: Micky Yun Chan <michan@redhat.com>
* bpo-39716: Raise on conflicting subparser names. (GH-18605)Antony Lee2022-05-011-0/+7
| | | | | | | | | | | Raise an ArgumentError when the same subparser name is added twice to an ArgumentParser. This is consistent with the (default) behavior when the same option string is added twice to an ArgumentParser. (Support for `conflict_handler="resolve"` could be considered as a followup feature, although real use cases seem even rarer than "resolve"ing option-strings.) Automerge-Triggered-By: GH:rhettinger
* gh-91832: Add 'required' attr to argparse.Action repr (GH-91841)Abhigyan Bose2022-04-281-0/+1
| | | | | | | | | # Adding 'required' to names in Lib.argparse.Action gh-91832: Added 'required' to the list `names` in `Lib.argparse.Action`. Changed constant strings that test the Action object. Automerge-Triggered-By: GH:merwok
* Revert "gh-85567: Register a cleanup function to close files for FileType ↵Victor Stinner2022-04-211-7/+3
| | | | | objects in argparse (#32257)" (#91771) This reverts commit 328dbc051f84bd5fdf61101bb4fa61d85f8b7feb.
* gh-85567: Register a cleanup function to close files for FileType objects in ↵achhina2022-04-181-3/+7
| | | | | | | argparse (#32257) * bpo-41395: Register a cleanup function to close files for FileType objects in argparse * Added import as top level import, and renamed file as fh.
* bpo-14156: Make argparse.FileType work correctly for binary file modes when ↵MojoVampire2022-03-061-4/+4
| | | | | | | argument is '-' (GH-13165) Also made modes containing 'a' or 'x' act the same as a mode containing 'w' when argument is '-' (so 'a'/'x' return sys.stdout like 'w', and 'ab'/'xb' return sys.stdout.buffer like 'wb').
* bpo-46510: update Python2-style exception handling in argparse (GH-30881)Kumar Aditya2022-01-251-6/+4
|
* bpo-46080: fix argparse help generation exception in edge case (GH-30111)Felix Fontein2022-01-201-1/+1
| | | | | Fix an uncaught exception during help text generation when argparse.BooleanOptionalAction is used with default=argparse.SUPPRESS and help is specified.
* argparse docs: prog default is the basename of argv[0] (GH-30298)Jade Lovelace2022-01-021-1/+2
|
* bpo-22047: [argparse] deprecate nested argument groups and mutually ↵Irit Katriel2021-12-161-0/+18
| | | | exclusive groups (GH-30098)
* bpo-26952: [argparse] clearer error when formatting an empty mutually… ↵Irit Katriel2021-12-151-0/+3
| | | | (GH-30099)
* bpo-45235: Revert an argparse bugfix that caused a regression (GH-29525)Raymond Hettinger2021-11-121-7/+6
| | | | | * Revert "bpo-45235: Fix argparse overrides namespace with subparser defaults (GH-28420) (GH-28443)" This reverts commit a18d52269ab6071a605d6c72f6af585a4c533ca4.
* bpo-24444: fix an error in argparse help when help for an option is blank ↵andrei kulakov2021-10-131-5/+6
| | | | (GH-28050)
* bpo-45235: Fix argparse overrides namespace with subparser defaults (GH-28420)Adam Schwalm2021-09-181-6/+7
|
* bpo-38956: don't print BooleanOptionalAction's default twice (GH-27672)Maximilian Hils2021-08-161-1/+1
| | | | Co-authored-by: Micky Yun Chan <michan@redhat.com>
* bpo-37880: for argparse add_argument with action='store_const', const now ↵Jack DeVries2021-07-311-2/+3
| | | | defaults to None. (GH-26707)