◐ Shell
clean mode source ↗

gh-53780: [argparse] ignore the first "--" (double dash) between an op… by serhiy-storchaka · Pull Request #124275 · python/cpython

Expand Up @@ -5833,6 +5833,20 @@ def test_subparser(self): "invalid choice: '--'", parser.parse_args, ['--', 'x', '--', 'run', 'a', 'b'])
def test_subparser_after_multiple_argument_option(self): parser = argparse.ArgumentParser(exit_on_error=False) parser.add_argument('--foo', nargs='*') subparsers = parser.add_subparsers() parser1 = subparsers.add_parser('run') parser1.add_argument('-f') parser1.add_argument('bar', nargs='*')
args = parser.parse_args(['--foo', 'x', 'y', '--', 'run', 'a', 'b', '-f', 'c']) self.assertEqual(NS(foo=['x', 'y'], f='c', bar=['a', 'b']), args) self.assertRaisesRegex(argparse.ArgumentError, "invalid choice: '--'", parser.parse_args, ['--foo', 'x', '--', '--', 'run', 'a', 'b'])

# =========================== # parse_intermixed_args tests Expand Down