This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ALSchwalm
Recipients ALSchwalm
Date 2021-09-17.14:58:54
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
The following snippet demonstrates the problem. If a subparser flag has a default set, argparse will override the existing value in the provided 'namespace' if the flag does not appear (e.g., if the default is used):

    import argparse
    parser = argparse.ArgumentParser()
    sub = parser.add_subparsers()
    example_subparser = sub.add_parser("example")
    example_subparser.add_argument("--flag", default=10)
    print(parser.parse_args(["example"], argparse.Namespace(flag=20)))

This should return 'Namespace(flag=20)' because 'flag' already exists in the namespace, but instead it returns 'Namespace(flag=10)'. This intended behavior is described and demonstrated in the second example here:

Lib's behavior is correct for the non-subparser cause.
Date User Action Args
2021-09-17 14:58:54ALSchwalmsetrecipients: + ALSchwalm
2021-09-17 14:58:54ALSchwalmsetmessageid: <>
2021-09-17 14:58:54ALSchwalmlinkissue45235 messages
2021-09-17 14:58:54ALSchwalmcreate