Esempio n. 1
0
 def __init__(self, default, help_string):
     super().__init__(default, help_string, flags.BooleanParser())
Esempio n. 2
0
# The initial code in Python 2 was:
# _FIELD_TYPE_TO_PARSER = {
#     types.IntType: flags.IntegerParser(),
#     types.FloatType: flags.FloatParser(),         # OK For Python 3
#     types.BooleanType: flags.BooleanParser(),     # OK For Python 3
#     types.StringType: flags.ArgumentParser(),
#     types.TupleType: tuple_parser.TupleParser(),  # OK For Python 3
# }
# The possible breaking changes are:
# - A Python 3 int could be a Python 2 long, which was not previously supported.
#   We then add support for long.
# - Only Python 2 str were supported (not unicode). Python 3 will behave the
#   same with the str semantic change.
_FIELD_TYPE_TO_PARSER = {
    float: flags.FloatParser(),
    bool: flags.BooleanParser(),
    # Implementing a custom parser to override `Tuple` arguments.
    tuple: tuple_parser.TupleParser(),
}
for t in six.integer_types:
    _FIELD_TYPE_TO_PARSER[t] = flags.IntegerParser()
for t in six.string_types:
    _FIELD_TYPE_TO_PARSER[t] = flags.ArgumentParser()
_FIELD_TYPE_TO_PARSER[str] = flags.ArgumentParser()
_FIELD_TYPE_TO_SERIALIZER = {
    t: flags.ArgumentSerializer()
    for t in _FIELD_TYPE_TO_PARSER
}


class UnsupportedOperationError(flags.Error):
Esempio n. 3
0
 def __init__(self,
              default: Optional[bool],
              help_string: Optional[str] = None):
     super().__init__(default, help_string, flags.BooleanParser())