From aa32a7e1116f7aaaef9fec453db910e90ab7b101 Mon Sep 17 00:00:00 2001 From: Batuhan Taşkaya <47358913+isidentical@users.noreply.github.com> Date: Tue, 21 May 2019 20:47:42 +0300 Subject: bpo-23378: Add an extend action to argparse (GH-13305) Add an extend action to argparse https://bugs.python.org/issue23378 --- Lib/argparse.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Lib/argparse.py') diff --git a/Lib/argparse.py b/Lib/argparse.py index 798766f6c40..ef888f063b3 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -1154,6 +1154,12 @@ class _SubParsersAction(Action): vars(namespace).setdefault(_UNRECOGNIZED_ARGS_ATTR, []) getattr(namespace, _UNRECOGNIZED_ARGS_ATTR).extend(arg_strings) +class _ExtendAction(_AppendAction): + def __call__(self, parser, namespace, values, option_string=None): + items = getattr(namespace, self.dest, None) + items = _copy_items(items) + items.extend(values) + setattr(namespace, self.dest, items) # ============== # Type classes @@ -1262,6 +1268,7 @@ class _ActionsContainer(object): self.register('action', 'help', _HelpAction) self.register('action', 'version', _VersionAction) self.register('action', 'parsers', _SubParsersAction) + self.register('action', 'extend', _ExtendAction) # raise an exception if the conflict handler is invalid self._get_handler() -- cgit v1.2.3