in pulsar/schema/definition.py [0:0]
def validate_type(self, name, val):
if val is None:
return None
if type(val) is str:
# The enum was passed as a string, we need to check it against the possible values
if val in self.enum_type.__members__:
return self.enum_type.__members__[val]
else:
raise TypeError(
"Invalid enum value '%s' for field '%s'. Expected: %s" % (val, name, self.enum_type.__members__.keys()))
elif type(val) is int:
# The enum was passed as an int, we need to check it against the possible values
if val in self.values:
return self.values[val]
else:
raise TypeError(
"Invalid enum value '%s' for field '%s'. Expected: %s" % (val, name, self.values.keys()))
elif type(val) != self.python_type():
raise TypeError("Invalid type '%s' for field '%s'. Expected: %s" % (type(val), name, _string_representation(self.python_type())))
else:
return val