view.py icon indicating copy to clipboard operation
view.py copied to clipboard

Supporting `Literal` and enums in type validation

Open ZeroIntensity opened this issue 1 year ago • 0 comments

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

ZeroIntensity avatar Feb 09 '24 15:02 ZeroIntensity