Инструменты для проверки статического типа в Python

Я работаю с большой существующей кодовой базой Python и хочу начать добавлять аннотации типов, чтобы получить некоторый уровень статической проверки. Я представляю себе что-то вроде Erlang , Strongtalk , или Типизированная схема / ракетка .

Я видел быстрые и грязные декораторы, которые вставляют динамические проверки на основе аннотаций параметров функции и возвращаемого типа, но я ищу что-то более надежное и который выполняет проверки во время компиляции.

Какие инструменты доступны прямо сейчас для такого рода вещей? Я знаком с компиляторами и проверкой типов и определенно готов улучшить неполный инструмент, если он имеет хорошую основу.

(Примечание: меня не интересует обсуждение плюсов и минусов статической типизации.)

РЕДАКТИРОВАТЬ : Пример:

def put(d, k, v):
   d[k] = v

Я хотел бы иметь возможность аннотировать функцию put как имеющую тип put (dict , K, V) -> Нет .

ОБНОВЛЕНИЕ : Новый PEP 484 (сентябрь 2014 г.) определяет стандарт статической типизации и аннотаций типов в Python 3.5+. Существует инструмент проверки типов mypy , совместимый с PEP 484.

39
задан Kannan Goundan 29 October 2015 в 21:33
поделиться