Commit dd042125 authored by Seblu's avatar Seblu
Browse files

Update argparse to python 2.7.2

parent 1a257a8f
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ __all__ = [
]


import collections as _collections
import copy as _copy
import os as _os
import re as _re
@@ -1037,7 +1038,7 @@ class _SubParsersAction(Action):

        self._prog_prefix = prog
        self._parser_class = parser_class
        self._name_parser_map = {}
        self._name_parser_map = _collections.OrderedDict()
        self._choices_actions = []

        super(_SubParsersAction, self).__init__(
@@ -1080,7 +1081,7 @@ class _SubParsersAction(Action):
            parser = self._name_parser_map[parser_name]
        except KeyError:
            tup = parser_name, ', '.join(self._name_parser_map)
            msg = _('unknown parser %r (choices: %s)' % tup)
            msg = _('unknown parser %r (choices: %s)') % tup
            raise ArgumentError(self, msg)

        # parse all the remaining options into the namespace
@@ -1109,7 +1110,7 @@ class FileType(object):
            the builtin open() function.
    """

    def __init__(self, mode='r', bufsize=None):
    def __init__(self, mode='r', bufsize=-1):
        self._mode = mode
        self._bufsize = bufsize

@@ -1121,18 +1122,19 @@ class FileType(object):
            elif 'w' in self._mode:
                return _sys.stdout
            else:
                msg = _('argument "-" with mode %r' % self._mode)
                msg = _('argument "-" with mode %r') % self._mode
                raise ValueError(msg)

        # all other arguments are used as file names
        if self._bufsize:
        try:
            return open(string, self._mode, self._bufsize)
        else:
            return open(string, self._mode)
        except IOError as e:
            message = _("can't open '%s': %s")
            raise ArgumentTypeError(message % (string, e))

    def __repr__(self):
        args = [self._mode, self._bufsize]
        args_str = ', '.join([repr(arg) for arg in args if arg is not None])
        args = self._mode, self._bufsize
        args_str = ', '.join(repr(arg) for arg in args if arg != -1)
        return '%s(%s)' % (type(self).__name__, args_str)

# ===========================
@@ -1275,13 +1277,20 @@ class _ActionsContainer(object):
        # create the action object, and add it to the parser
        action_class = self._pop_action_class(kwargs)
        if not _callable(action_class):
            raise ValueError('unknown action "%s"' % action_class)
            raise ValueError('unknown action "%s"' % (action_class,))
        action = action_class(**kwargs)

        # raise an error if the action type is not callable
        type_func = self._registry_get('type', action.type, action.type)
        if not _callable(type_func):
            raise ValueError('%r is not callable' % type_func)
            raise ValueError('%r is not callable' % (type_func,))

        # raise an error if the metavar does not match the type
        if hasattr(self, "_get_formatter"):
            try:
                self._get_formatter()._format_args(action, None)
            except TypeError:
                raise ValueError("length of metavar tuple does not match nargs")

        return self._add_action(action)

@@ -1481,6 +1490,7 @@ class _ArgumentGroup(_ActionsContainer):
        self._defaults = container._defaults
        self._has_negative_number_optionals = \
            container._has_negative_number_optionals
        self._mutually_exclusive_groups = container._mutually_exclusive_groups

    def _add_action(self, action):
        action = super(_ArgumentGroup, self)._add_action(action)