И это всё МОЁ
Instagram открыл код MonkeyType, системы аннотации типов для Python.
Сервис Instagram объявил об открытии исходных текстов проекта MonkeyType, в рамках которого разработана система для языка Python, позволяющая генерировать аннотации типов на основе сбора информации о типах переменных во время выполнения кода. Код открыт под лицензией BSD. Для работы требуется Python 3.6 (аннотации сохраняются в атрибуте __annotations__ , а не в комментариях) и опционально утилита retype для подстановки аннотаций в код.
Система была разработана как для упрощения понимания кода проектов новыми разработчиками, так и для автоматизированного выявления ошибок через применение статического анализа типов. Статический анализ имеет смысл только если большая часть кода снабжена сведениями о типах, но если для нового кода такая работа может быть выполнена вручную, то для старого кода и сторонних библиотек подобная задача оказалась не по силам и после ряда попыток анализа типов в модулях вручную было принято решение автоматизировать работу. В итоге была создана система MonkeyType.
Для сбора информации о типах применяется вызов sys.setprofile, предоставляемый в Python для перехвата событий вызова/завершения функций и результатов работы генераторов/yield. Вначале Python-приложение запускается под контролем MonkeyType в режиме трассировки, в ходе которой определяются типы аргументов и возвращаемых значений функций и методов во всех импортированных модулях. На основании полученных сведений формируется дамп трассировки (monkeytype.sqlite3), на базе которого затем могут быть сгенерированы файлы-заглушки (stub) для утилиты retype или выполнена подстановка черновых аннотаций типов прямо в исходные тексты.
Instagram открыл код MonkeyType, системы аннотации типов для Python
Сервис Instagram объявил об открытии исходных текстов проекта MonkeyType, в рамках которого разработана система для языка Python, позволяющая генерировать аннотации типов на основе сбора информации о типах переменных во время выполнения кода. Код открыт под лицензией BSD. Для работы требуется Python 3.6 (аннотации сохраняются в атрибуте __annotations__ , а не в комментариях) и опционально утилита retype для подстановки аннотаций в код.
Система была разработана как для упрощения понимания кода проектов новыми разработчиками, так и для автоматизированного выявления ошибок через применение статического анализа типов. Статический анализ имеет смысл только если большая часть кода снабжена сведениями о типах, но если для нового кода такая работа может быть выполнена вручную, то для старого кода и сторонних библиотек подобная задача оказалась не по силам и после ряда попыток анализа типов в модулях вручную было принято решение автоматизировать работу. В итоге была создана система MonkeyType.
Для сбора информации о типах применяется вызов sys.setprofile, предоставляемый в Python для перехвата событий вызова/завершения функций и результатов работы генераторов/yield. Вначале Python-приложение запускается под контролем MonkeyType в режиме трассировки, в ходе которой определяются типы аргументов и возвращаемых значений функций и методов во всех импортированных модулях. На основании полученных сведений формируется дамп трассировки (monkeytype.sqlite3), на базе которого затем могут быть сгенерированы файлы-заглушки (stub) для утилиты retype или выполнена подстановка черновых аннотаций типов прямо в исходные тексты.
Instagram открыл код MonkeyType, системы аннотации типов для Python