Amanda Crawford
08/28/2019, 4:42 PMalex
08/28/2019, 4:56 PMAmanda Crawford
08/28/2019, 5:02 PMalex
08/28/2019, 5:48 PMtype_check
functions of the inner types
• use Any
• use a common ancestor type ie DataFrame
# workaround for creating a custom union type
def custom_union_type(name, types):
class _CustomUnion(RuntimeType):
def __init__(self):
super(_CustomUnion, self).__init__(
name=name,
key=name,
)
def type_check(self, value):
failures = []
for type in types:
try:
type.type_check(value)
# passed type check
return TypeCheck('Valid for Union {name}. Passed as {tname}'.format(name=name, tname=type.name))
except Failure as fail:
failures.append(fail)
raise Failure(
'Value is not a valid type for Union type {name}. Failed all type checks: {fail}'.format(
name=self.name
fail="\n".join(fail.message)
)
)
Amanda Crawford
08/28/2019, 6:25 PM