view.py
view.py copied to clipboard
Supporting `Literal` and enums in type validation
Improvement Description
As of now, typing.Literal nor enum.Enum are supported when using the type validation API. This is an important feature that should be ready before #10 is complete.
Improvement Request Example API
from view import compile_type
from enum import Enum
class MyEnum(Enum):
A = 1
B = 2
tp = compile_type(MyEnum)
tp.cast("1") # MyEnum.A
tp.cast("A") # MyEnum.A
And with literals:
from view import compile_type
from typing import Literal
tp = compile_type(Literal["a", "b", "c"])
tp.is_compatible("1") # False
tp.is_compatible("a") # True
tp.is_compatible("A") # False
Anything else?
No response