diff options
Diffstat (limited to 'portage_with_autodep/pym/portage/util/_argparse.py')
-rw-r--r-- | portage_with_autodep/pym/portage/util/_argparse.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/portage_with_autodep/pym/portage/util/_argparse.py b/portage_with_autodep/pym/portage/util/_argparse.py new file mode 100644 index 0000000..6ca7852 --- /dev/null +++ b/portage_with_autodep/pym/portage/util/_argparse.py @@ -0,0 +1,42 @@ +# Copyright 2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +__all__ = ['ArgumentParser'] + +try: + from argparse import ArgumentParser +except ImportError: + # Compatibility with Python 2.6 and 3.1 + from optparse import OptionGroup, OptionParser + + from portage.localization import _ + + class ArgumentParser(object): + def __init__(self, **kwargs): + add_help = kwargs.pop("add_help", None) + if add_help is not None: + kwargs["add_help_option"] = add_help + parser = OptionParser(**kwargs) + self._parser = parser + self.add_argument = parser.add_option + self.print_help = parser.print_help + self.error = parser.error + + def add_argument_group(self, title=None, **kwargs): + optiongroup = OptionGroup(self._parser, title, **kwargs) + self._parser.add_option_group(optiongroup) + return _ArgumentGroup(optiongroup) + + def parse_known_args(self, args=None, namespace=None): + return self._parser.parse_args(args, namespace) + + def parse_args(self, args=None, namespace=None): + args, argv = self.parse_known_args(args, namespace) + if argv: + msg = _('unrecognized arguments: %s') + self.error(msg % ' '.join(argv)) + return args + + class _ArgumentGroup(object): + def __init__(self, optiongroup): + self.add_argument = optiongroup.add_option |