Мы широко используем проверку типов stati c, но нам также нужна простая проверка типов во время выполнения. Я бы хотел использовать наши типы stati c для проверки типов во время выполнения. Я видел typeguard и другие библиотеки, но предпочел бы что-нибудь попроще.
Я пробовал ниже, но assert value in expected_type
не имеет смысла. Как создать простую функцию, которая будет проверять, находится ли строка в строковом литерале Python?
from typing_extensions import Literal
def check_str_in_literal(value: str, expected_type: Literal):
assert value in expected_type
Gender = Literal["Male", "Female", "Other"]
def print_gender(gender: Gender):
print(gender)
# Unknown string as it's been retrieved from elsewhere
strRetrievedFromDB = "Male" # type: ignore
check_str_in_literal(strRetrievedFromDB, Gender)
print_gender(strRetrievedFromDB)