31 lines
720 B
Python
31 lines
720 B
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
from typing import Any, Dict
|
|
|
|
if sys.version_info >= (3, 8):
|
|
from typing import Literal, TypedDict
|
|
else:
|
|
# avoid runtime dependency on typing_extensions on py37
|
|
try:
|
|
from typing_extensions import Literal, TypedDict # type: ignore
|
|
except ImportError:
|
|
|
|
class _Literal:
|
|
def __getitem__(self, key):
|
|
return Any
|
|
|
|
Literal = _Literal() # type: ignore
|
|
|
|
class TypedDict(Dict): # type: ignore
|
|
pass
|
|
|
|
|
|
if sys.version_info >= (3, 10):
|
|
from typing import TypeAlias
|
|
else:
|
|
try:
|
|
from typing_extensions import TypeAlias
|
|
except ImportError:
|
|
TypeAlias = type # type: ignore
|