The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Instagram открыл код MonkeyType, системы аннотации типов для..."
Отправлено opennews, 22-Дек-17 11:57 
Сервис Instagram объявил (https://engineering.instagram.com/let-your-code-type-hint-it...) об открытии исходных текстов проекта MonkeyType (https://github.com/Instagram/MonkeyType), в рамках которого разработана система для языка Python, позволяющая генерировать аннотации типов на основе сбора информации о типах переменных во время выполнения кода. Код открыт (https://github.com/Instagram/MonkeyType) под лицензией BSD. Для работы требуется Python 3.6 (аннотации сохраняются в атрибуте __annotations__ , а не в комментариях) и опционально утилита retype для  подстановки аннотаций в код.


Система была разработана как для упрощения понимания кода проектов новыми разработчиками, так и для автоматизированного выявления ошибок через применение статического анализа типов. Статический анализ имеет смысл только если большая часть кода снабжена сведениями о типах, но если для нового кода такая работа может быть выполнена вручную, то для старого кода и сторонних библиотек подобная задача оказалась не по силам и после ряда попыток анализа типов в модулях вручную было принято решение  автоматизировать работу. В итоге была создана система MonkeyType.

Для сбора информации о типах применяется вызов  sys.setprofile, предоставляемый в Python для перехвата событий вызова/завершения функций и результатов работы генераторов/yield.  Вначале Python-приложение запускается под контролем MonkeyType в режиме трассировки, в ходе которой определяются типы аргументов   и возвращаемых значений функций и методов во всех импортированных модулях. На основании полученных сведений формируется дамп трассировки (monkeytype.sqlite3), на базе которого затем могут быть сгенерированы
файлы-заглушки (stub) для утилиты retype (https://pypi.python.org/pypi/retype/) или выполнена подстановка черновых аннотаций типов прямо в исходные тексты.  


URL: https://engineering.instagram.com/let-your-code-type-hint-it...
Новость: https://www.opennet.ru/opennews/art.shtml?num=47787

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру