Анонс Python digest: Опаснее, быстрее, умнее
Атаки на PyPI набирают обороты, Google пытается приучить сообщество к своему стайлгайду, линтер Ruff бьёт рекорды скорости, а генеративные сети продолжают задавать тренды. Всё это вы найдёте в нашем мартовском Python-дайджесте.
В конце февраля 2023 была зафиксирована очередная атака на PyPI. Каждые 4–8 секунд в каталоге публиковались вредоносные пакеты. Внутри каждого такого пакета файл setup.py имел фрагмент, вызывающий команду Powershell. Сама команда была закодирована в Base64, чтобы не привлекать лишнего внимания. В расшифрованном виде эта команда выполняет веб-запрос в Dropbox, где лежит вредоносная нагрузка. По словам специалистов компании Phylum ущерб от такой атаки не будет слишком велик из за быстрого реагирования PyPI, но всё же стоит быть начеку.
Внутри отдельной компании создать внутреннее руководство по стилю не представляет сложности. Но как заставить разработчиков программного обеспечения с открытым исходным кодом придерживаться единого стиля? Кажется, корпорация Google решила, что имеет смысл поделиться с сообществом своим собственным стайлгайдом. Мотив очевиден — чем больше независимых разработчиков будут следовать этому своду правил, тем меньше денег потратит корпорация на доработку их кода.
В больших проектах скорость линтера становится критически важной. Последние годы инструменты экосистемы JavaScript становились всё производительнее за счёт перехода на более быстрые языки, например, Rust или Golang. Автор линтера Ruff справедливо рассудил, что такой же подход применим для Python и реализовал его с помощью Rust. Результат удивил — новый линтер работает молниеносно и по этому параметру обходит всех именитых конкурентов.
В завершение расскажем, как получить аналог CoPilot на своей машине. Это становится возможным, благодаря CodeGen. Это 4 предварительно обученных модели с разным количеством параметров: 350M, 2B, 6B, 16B. Пока что запуск требует наличия мощной видеокарты с большим количеством VRAM. Хорошая новость в том, что в обозримом будущем эта проблема будет решена проектом FlexGen. Он позволит запускать большие языковые модели на системах с недостаточным количеством видеопамяти.
Подробности читайте в полной версии нашего дайджеста.