From: jdunter <2ve@mailbox.org> Date: Sat, 19 Jul 2025 14:08:19 +0000 (+0200) Subject: gh-54732: Make argparse error caused by empty rows in option files explicit (#136795) X-Git-Tag: v3.15.0a1~935 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ffc3ef01e83ffe629c6107082677de4d23974d5;p=thirdparty%2FPython%2Fcpython.git gh-54732: Make argparse error caused by empty rows in option files explicit (#136795) Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index f189f6b8fa89..a08f713ab56b 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -434,12 +434,18 @@ arguments they contain. For example:: >>> parser.parse_args(['-f', 'foo', '@args.txt']) Namespace(f='bar') -Arguments read from a file must by default be one per line (but see also +Arguments read from a file must be one per line by default (but see also :meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if they were in the same place as the original file referencing argument on the command line. So in the example above, the expression ``['-f', 'foo', '@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-f', 'bar']``. +.. note:: + + Empty lines are treated as empty strings (``''``), which are allowed as values but + not as arguments. Empty lines that are read as arguments will result in an + "unrecognized arguments" error. + :class:`ArgumentParser` uses :term:`filesystem encoding and error handler` to read the file containing arguments.