Google использует Pyrefly для более быстрой и точной проверки типов Python

Google использует Pyrefly для более быстрой и точной проверки типов Python


Google заменил свою давнюю программу проверки типов Python Pytype на Pyrefly, инструмент с открытым исходным кодом, первоначально разработанный Meta. Это решение было обусловлено преимуществами Pyrefly, включая более быструю и точную проверку типов, а также более низкие затраты на инфраструктуру.

Поскольку система типизации Python быстро развивалась, Pytype столкнулся с фундаментальными проблемами. Поскольку он работал путем анализа скомпилированного байт-кода, а не исходных AST, идти в ногу с современными PEP типизации стало растущей нагрузкой на обслуживание из-за нестабильности байт-кода в выпусках Python.

Согласно внутренним тестам Google, Pyrefly примерно в 10 раз быстрее, чем Pytype, снижает задержку при инкрементальной перестройке до 98 % и снижает пиковые затраты на вычисления для проверки типов Python более чем на 80 %. Google также сообщил о сокращении времени проверки типов на критических путях чистой сборки на 90–99%, что существенно «устранило давнее узкое место в разработке».

Google использует Pyrefly для более быстрой и точной проверки типов Python

Google объясняет, что одной из ключевых сильных сторон Pyrefly является его строгое соответствие спецификации типизации Python: он проходит примерно 97% тестов в наборе соответствия. Pyrefly также активно поддерживается сообществом, что помогает ему идти в ногу с новым синтаксисом, а его диагностика обеспечивает более полезную обратную связь, включая встроенные аннотации кода, которые определяют основную причину ошибок и, в некоторых случаях, предлагают исправления.

Сообщество с интересом отреагировало на объявление Google. Хотя большинство комментаторов согласились, что Pytype работает хуже, чем Pyrefly, другие обсуждали относительные преимущества Pyrefly по сравнению с Ty и Mypy. Гушис отметил, что

Pyrefly гораздо более взрослый. Это уже версия 1.0, скорость производительности аналогична ty, и это проверенный инструмент. ты просто еще не совсем там.

WindHawkeye заметил, что «Mypy работает намного быстрее в больших установках, чем думают люди. У него по-прежнему самая быстрая инкрементальная проверка типов», на что BeamMeUpBiscotti ответил, что

Предполагается, что Mypy 2.0 будет работать до 5 раз быстрее в крупных проектах при холодной проверке, но новое поколение средств проверки типов может быть на порядок быстрее даже этого.

Комментируя объявление на LinkedIn, разработчик Python Амирреа Азадмхер предложил другую точку зрения, утверждая, что ценность проверки типов заключается не только в экономии 30 секунд в конвейерах CI, но и в том, как она улучшает цикл редактирования-проверки во время разработки. Он также отметил, что:

Если вы прямо сейчас оцениваете Pyright, Pyrefly и mypy, не доверяйте чьим-либо цифрам монорепозитория. Измеряйте холодное и теплое время на ВАШЕМ дереве и оценивайте качество диагностики наряду с пропускной способностью — быстрая проверка, которая загромождает вас шумом, по-прежнему стоит дороже, чем более медленная, которая указывает на настоящий сбой.

В прошлом году мета Pyrefly открыла исходный код. Pyrefly разработан для обеспечения высокой производительности и реализован на Rust для максимизации эффективности. По данным Meta, он может проверять 1,8 миллиона строк кода в секунду на больших базах кода, что позволяет выполнять проверку типов при каждом нажатии клавиши.





Source link

Leave a Reply

Your email address will not be published. Required fields are marked *