Skip to content

argparse fails to get value of argument if the value is -- #109475

Closed
@kushal-kumaran

Description

@kushal-kumaran

Bug report

Bug description:

This code:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--broken")
parser.add_argument("--working")

args = parser.parse_args(["--broken=--", "--working=asdf"])
print(args)

prints:

$ podman run -v $(pwd):/src python:3.11.5-bookworm python /src/delim.py 
Namespace(broken=[], working='asdf')

The value of the --broken argument is not parsed, presumably because it is the standard end-of-argument-list value. But this does not seem expected when the value is introduced with =. Besides, in this case, the parsing does continue for subsequent args, so it was not actually treated as end of arguments.

CPython versions tested on:

3.11, 3.12

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Labels

3.11only security fixes3.12only security fixes3.13bugs and security fixesstdlibPython modules in the Lib dirtype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions