def __init__(self, default, help_string): super().__init__(default, help_string, flags.BooleanParser())
# 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):
def __init__(self, default: Optional[bool], help_string: Optional[str] = None): super().__init__(default, help_string, flags.BooleanParser())