Я работаю над системой, которая позволяет вам использовать графический интерфейс для написания базового Python для использования в качестве сценариев в приложении.
Одна из вещей, которые он делает, - позволяет вам установить атрибут в какое-то значение, и я хочу посмотреть, может ли он быть обработан одним из обработчиков типов, которые реализованы в графическом интерфейсе. Встроенный модуль набора текста на Python не имеет возможности проверить, является ли str
допустимым типом для Optional[str]
или int
допустимым для Union[float, int, complex]
и т. Д.
Однако mypy выполняет эту проверку типа статически и имеет функцию под названием is, который, я думаю, отлично подойдет в этом случае; однако, когда я вызываю его с типами python, я получаю исключение TypeError: mypy.types.Type object expected; got type
, см. код ниже.
Внутренние компоненты mypy довольно сложны, и я не могу найти четкого пути от типов python к тому, что mypy ожидает внутри, есть ли простой способ превратить собственные типы python в типы mypy или другую функцию, которую я должен использовать в mypy, чтобы проверить совместимость типов во время выполнения?
from mypy.subtypes import is_subtype
is_subtype(float, int)