예제 #1
0
    def LongFlag(
            self,
            long_name,  # type: str
            arg_type=None,  # type: Union[List[str], None, int]
            default=None,  # type: Optional[Any]
            help=None,  # type: Optional[str]
    ):
        # type: (...) -> None
        """ --rcfile """
        assert long_name.startswith('--'), long_name

        name = long_name[2:]
        typ = _FlagType(arg_type)
        if arg_type is None:
            self.actions_long[name] = args.SetToTrue(name)
        else:
            self.actions_long[name] = _MakeAction(arg_type, name)

        attr_name = name.replace('-', '_')
        if self.typed:
            self.defaults[attr_name] = _Default(arg_type, arg_default=default)
            #log('%s DEFAULT %s', attr_name, self.defaults[attr_name])
        else:
            self.defaults[attr_name] = args.PyToValue(default)
        self.fields[attr_name] = typ
예제 #2
0
    def ShortFlag(self,
                  short_name,
                  arg_type=None,
                  default=None,
                  quit_parsing_flags=False,
                  help=None):
        # type: (str, int, Optional[Any], bool, Optional[str]) -> None
        """ -c """
        assert short_name.startswith('-'), short_name
        assert len(short_name) == 2, short_name

        char = short_name[1]
        typ = _FlagType(arg_type)
        if arg_type is None:
            assert quit_parsing_flags == False
            self.actions_short[char] = args.SetToTrue(char)
        else:
            self.actions_short[char] = _MakeAction(
                arg_type, char, quit_parsing_flags=quit_parsing_flags)

        if self.typed:
            self.defaults[char] = _Default(arg_type, arg_default=default)
        else:
            self.defaults[char] = args.PyToValue(default)
        self.fields[char] = typ
예제 #3
0
    def ShortFlag(self, short_name, arg_type=None, long_name=None, help=None):
        # type: (str, Optional[int], Optional[str], Optional[str]) -> None
        """
    This is very similar to ShortFlag for FlagSpecAndMore, except we have
    separate arity0 and arity1 dicts.
    """
        assert short_name.startswith('-'), short_name
        assert len(short_name) == 2, short_name

        typ = _FlagType(arg_type)
        char = short_name[1]

        # Hack for read -0.  Make it a valid variable name
        if char == '0':
            char = 'Z'

        if arg_type is None:
            self.arity0.append(char)
        else:
            self.arity1[char] = _MakeAction(arg_type, char)

        if long_name is not None:
            name = long_name[2:]  # key for parsing
            if arg_type is None:
                self.actions_long[name] = args.SetToTrue(char)
            else:
                self.actions_long[name] = _MakeAction(arg_type, char)

        self.defaults[char] = _Default(arg_type)
        self.fields[char] = typ
예제 #4
0
    def LongFlag(
            self,
            long_name,  # type: str
            arg_type=None,  # type: Union[List[str], None, int]
            default=None,  # type: Optional[Any]
            help=None,  # type: Optional[str]
    ):
        # type: (...) -> None
        """ --rcfile """
        assert long_name.startswith('--'), long_name

        # TODO: Move this to runtime?  So you don't have duplicate flag and key
        name = long_name[2:]
        if arg_type is None:
            typ = flag_type.Bool()  # type: flag_type_t
            self.actions_long[long_name] = args.SetToTrue(name)
        else:
            typ = _FlagType(arg_type)
            self.actions_long[long_name] = args.SetToArgAction(name, typ)

        attr_name = name.replace('-', '_')
        if self.typed:
            self.defaults[attr_name] = _Default(arg_type, arg_default=default)
            #from core.pyerror import log
            #log('%s DEFAULT %s', attr_name, self.defaults[attr_name])
        else:
            self.defaults[attr_name] = args.PyToValue(default)
        self.fields[attr_name] = typ
예제 #5
0
    def LongFlag(self, long_name, arg_type=None, help=None):
        # type: (str, Optional[int], Optional[str]) -> None
        typ = _FlagType(arg_type)

        name = long_name[2:]  # key for parsing
        if arg_type is None:
            self.actions_long[name] = args.SetToTrue(name)
        else:
            self.actions_long[name] = _MakeAction(arg_type, name)

        self.defaults[name] = _Default(arg_type)
        self.fields[name] = typ
    def LongFlag(
            self,
            long_name,  # type: str
            arg_type=None,  # type: Union[List[str], None, int]
            default=None,  # type: Optional[Any]
            help=None,  # type: Optional[str]
    ):
        # type: (...) -> None
        """ --rcfile """
        assert long_name.startswith('--'), long_name

        name = long_name[2:]
        if arg_type is None:
            self.actions_long[long_name] = args.SetToTrue(name)
        else:
            self.actions_long[long_name] = args.SetToArg(
                name, _FlagType(arg_type))

        self.defaults[name] = args.PyToValue(default)