Added bottom type to supported Element values
This commit is contained in:
parent
a3cf1ef8c5
commit
b404f3450f
1 changed files with 8 additions and 5 deletions
|
|
@ -1,12 +1,14 @@
|
||||||
from dataclasses import dataclass, asdict, astuple
|
from dataclasses import dataclass
|
||||||
from typing import TypeVar, Generic, Optional
|
from typing import TypeVar, Generic, Optional, Literal
|
||||||
|
from state.base import INTEGER, FLOAT, BOOLEAN, STRING, TYPE
|
||||||
|
|
||||||
# Some typing information for Python static type checkers
|
# Some typing information for Python static type checkers
|
||||||
Literal = TypeVar('Literal', int, float, bool, str) # Must be int, float, bool or str
|
bottom_type = Literal[INTEGER, FLOAT, BOOLEAN, STRING, TYPE]
|
||||||
|
T = TypeVar('T', int, float, bool, str, bottom_type)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Element(Generic[Literal]):
|
class Element(Generic[T]):
|
||||||
"""
|
"""
|
||||||
An Element can represent one of following two things, based on the value of its attributes:
|
An Element can represent one of following two things, based on the value of its attributes:
|
||||||
|
|
||||||
|
|
@ -19,7 +21,7 @@ class Element(Generic[Literal]):
|
||||||
dict that is used there.
|
dict that is used there.
|
||||||
"""
|
"""
|
||||||
id: Optional[str] = None
|
id: Optional[str] = None
|
||||||
value: Optional[Literal] = None
|
value: Optional[T] = None
|
||||||
|
|
||||||
def is_none(self) -> bool:
|
def is_none(self) -> bool:
|
||||||
return self.id is None and self.value is None
|
return self.id is None and self.value is None
|
||||||
|
|
@ -29,3 +31,4 @@ String = Element[str]
|
||||||
Integer = Element[int]
|
Integer = Element[int]
|
||||||
Float = Element[float]
|
Float = Element[float]
|
||||||
Boolean = Element[bool]
|
Boolean = Element[bool]
|
||||||
|
Type = Element[bottom_type]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue