en
Feedback
Хитрый Питон

Хитрый Питон

Open in Telegram

Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm

Show more
3 406
Subscribers
+1824 hours
+727 days
+89630 days
Posts Archive
Есть такой язык - Mojo: - синтаксически он близок к python - дает возможность вызывать и исполнять питоновские библиотеки через cpython-рантайм (я не уверен, что это production-схема - расходы на конвертацию и GIL никуда не деваются, но тем не менее) - при этом сам язык компилируемый - есть и JIT, и AOT-сборка в бинарник - работает с gpu из коробки и в принципе выглядит довольно интересно. И вот на прошлой неделе вышла версия 1.0 языка, то есть предполагается, что он достаточно стабилизировался. А на днях его заопенсорсили под apache 2.0 лицензией. Я его трогал совсем немного - когда сделали возможность вызова python-библиотек, но сейчас кажется хороший повод пойти поиграться. https://www.modular.com/blog/mojo-open-source

Пару недель назад я писал про то, насколько больше security-отчетов теперь приходит для CPython по сравнению с предыдущими годами. Казалось бы - берешь llm, она пишет тебе патч - и готово, profit. И тут как раз 1password опубликовали исследование, которое показывает, что это пока так не работает. Они сгенерировали более 6000 патчей для 6 разных уязвимостей с помощью opus 4.8 и chatgpt 5.5, обе в версии для security-специалистов (т.е. там были убраны часть ограничений). Результат? Только 26% патчей полноценно устранили уязвимость. Ещё 20,1% проблему закрыли, но работа приложения изменилась, читай "побочные эффекты". Самое забавное, в 2,1% случаев проблема не была устранена, так еще и появилась новая уязвимость. Хуже того, в трети "успешных" 20,1% на самом деле llm-ка фиксила не первопричину проблемы, а конкретный пример атаки, описанный в промпте. Вывод? Llm-ки очень удобны и могут ускорить разработку - но и голову тоже нужно включать и смотреть, что там интеллект нагенерил - ревьюить, править, тюнить. Ссылка на статью: https://1password.com/blog/why-ai-generated-patches-still-require-human-review

Вчера пишет мне Никита Соболев - так и так, собираем папку с каналами python-сообщества. Учитывая, что с большинством тех, чьи каналы в папке я знаком лично, на кого-то итак был подписан - рекомендую - https://t.me/addlist/o2_hXmp5nSUyODNi Для тех, кто уперся в лимит телеги по папкам, вот просто список каналов: • https://t.me/opensource_findingshttps://t.me/godunibloghttps://t.me/cpython_noteshttps://t.me/nkhitrov_bloghttps://t.me/fastnewsdevhttps://t.me/pyloungehttps://t.me/blog_pogromistahttps://t.me/moscow_pythonhttps://t.me/tricky_pythonhttps://t.me/pymineralhttps://t.me/t0digitalhttps://t.me/grigorycode

С 2028 года Django переходит на ежегодные релизы, при этом каждый такой релиз будет LTS с тремя годами поддержки. С одной стороны, разработка вроде как замедлится, а с другой стороны, с крупными релизами больше шансов протащить крупные системные изменения. Плюс, конечно, тем, кто поддерживает сайты на Django, не придётся больше заморачиваться с LTS — не LTS. Django 6.2 LTS в апреле 2027 станет последним релизом со "старой" нумерацией, в январе 2028 выйдет уже Django 2028. https://www.djangoproject.com/weblog/2026/aug/10/annual-release-cycle/

Запустили опрос python-разработчиков про типизацию - в авторах опроса Astral, JetBrains, Microsoft, Meta, discourse.python.org - т.е. очень многие из тех кто реально занимается типаии/туллингом. Это ежегодная история, предыдущий отчет тут https://engineering.fb.com/2025/12/22/developer-tools/python-typing-survey-2025-code-quality-flexibility-typing-adoption/ - мы кажется обсуждали его в подкасте. Если вы активно используете аннотации типов - сходите пройдите, важно давать обратную связь разработчикам, я уже прошел https://www.surveymonkey.com/r/python_typing

Уже завтра в 14:00 (по мск) обсудим новости июля в прямом эфире Moscow Python Podcast 🎙 Разберём самые интересные события последних недель: 🟤 PEP 836: новый план развития JIT-компилятора для CPython; 🟤 Ruff 0.16: теперь по умолчанию включены 413 правил вместо 59; 🟤 GitHub усиливает безопасность CI; 🟤 Релиз Django 6.1; 🟤 Обсудим статью In Defense of Not Understanding Your Codebase. 📍 Когда и во сколько: 7 августа в 14:00 по Москве. ➡️ Подключайтесь к эфиру или смотрите запись на YouTube, VK или Rutube.

Вышел релиз Django 6.1. Изменений не очень много: - QuerySet.fetch_mode позволяет более гибко управлять тем, что происходит при обращении к незагруженному полю модели - делать запрос в базу, делать запрос загружая связанные сущности одним запросом или выдавать исключение. Выглядит как действительно полезная фича - on_delete для ForeignKey теперь можно перевесить на уровень базы данных через SQL ON DELETE, раньше это делалось python-логикой - В ORM добавлены функции для генерации UUID v4 и UUID v7 на стороне БД - Всякие улучшения для Content Security Policy, настройки отправки email теперь конфигурируются через словарь и много всяких других мелочей Полный ченджлог тут https://docs.djangoproject.com/en/6.1/releases/6.1/

Вместе с прогрессом llm-ок растет нагрузка на мейнтенеров проектов, это не новость и мы много раз обсуждали это в подкасте. Но вот подъехала статья с нитересными графиками по нагрузке именно связанноы с безопасностью: - Security-отчеты на github - ~40 за весь 2025 и уже 175 за первую половину 2026 - Полноценные CVE - ~20 за 2025 и столько же только за первую треть 2026, т.е. за весь год предполагается рост в три раза То есть рост нагрузки очень значительный, сама статься состоит почти из одних графиков https://hugovk.dev/blog/2026/security-line-goes-up/

Поддержка free-threading в библиотеках сейчас один из ключевых блокеров перехода на free-treading. Поэтому я с интересом читаю статьи, которые публикуют на этот счет разработчики библиотек - не то чтобы мне это было нужно для работы, просто очень интересно. На днях наткнулся на статью, про оптимизацию NumPy - проблема была в том, что с отключенным GIL, ThreadPoolExecutor все равно работал медленнее, чем ProcessPoolExecutor. Если вам такое интересно - рекомендую почитать, но если кратко: - Убрали локи там, где можно было обойтись без них - Где-то перешли на immortal-объекты, чтобы перестать дергать счетчик ссылок - Пересели с системного malloc/free на cpython-овский аллокатор, который лучше масштабируется на большое количество потоков В результате бенчмарк вместо 44 секунд на 32 потоках начал отрабатывать за 1,5 секунды (при использовании процессов - 6 секунд). Подробнее в статье - https://labs.quansight.org/blog/scaling-numpy-on-free-threaded-python

Вышла библиотека django-orjson, которая позволяет легко перевести Django и DRF на быстрый orjson. В комплекте — JsonResponse, renderer и parser для DRF и даже сериализатор для сессий. В принципе, идея не новая: мы у себя перевели DRF на orjson ещё года четыре назад. Но с готовым пакетом это будет гораздо проще сделать. Тем, у кого плюс-минус нагруженный проект или просто большие JSON-запросы и ответы, рекомендую присмотреться: https://adamj.eu/tech/2026/07/15/introducing-django-orjson/

GitHub запустил пару полезных фич для безопасности CI. Во-первых, Malware Alerts. Эта штука проверяет, нет ли зависимостей проекта в базе OpenSSF Malicious Packages, и, если находит совпадение, присылает алерт. Глобально включить её пока нельзя — только отдельно для каждого репозитория. Я у себя уже включил, вот тут инструкция https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configure-malware-alerts Вторая фича - автоматическое обнаружение и блокировка небезопасных CI-пайплайнов. Если workflow выглядит потенциально вредоносным, GitHub не запускает его, пока участник с правами на запись не подтвердит запуск. Пока это работает только для публичных репозиториев. Если интересно подробнее почитать, как могут выглядеть подобные атаки, вот хороший разбор: https://www.stepsecurity.io/blog/introducing-secret-exfiltration-protection-for-github-actions

Вышла новая версия Ruff 0.16. Казалось бы, минорный релиз, но на самом деле нет. Теперь по умолчанию включено 413 правил вместо 59, поэтому, если в конфиге у вас не зафиксирован список правил, используемых на проекте, вас ждёт сюрприз. Ради интереса прогнал Ruff на своём пет-проекте, где до обновления всё было зелёненьким. После перехода на 0.16 получил: Found 50 errors, 34 fixable. Пойду чинить 🙂 Если планируете обновляться на большой кодовой базе, сразу закладывайте время на фиксы. Ченджлог в блоге Astral: https://astral.sh/blog/ruff-v0.16.0

Прикольный проект — интерпретатор «старого» Бейсика на Python. Сам проект маленький, всего около 1000 строк, поэтому, если вам интересно немного разобраться в том, как работают интерпретаторы, рекомендую посмотреть: https://github.com/nedbat/acidica

Уже сегодня в 14:00 (по мск) обсудим новости июня в прямом эфире Moscow Python Podcast 🎙 Обсудим с Никитой Соболевым последние интересные релизы: 🟤Что нового будет в Python 3.15 🟤Django 6.1 Beta: главные изменения и новые возможности 🟤PEP 835: сокращённый синтаксис для метаданных Annotated 🟤Небезопасные подсказки кода: можно ли считать их уязвимостью? Основные ведущие: Михаил Корнеев и Григорий Петров 📍Когда и во сколько: 3 июля в 14:00 по Москве. Подключайтесь к удобной площадке Youtube / Rutube ➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок

Завтра, 10 июня обсудим новости мира Python в прямом эфире Moscow Python🎙 Перенесли выпуск с пятницы на эту среду, а всё остальное будет, как вы любите — обсудим новости с Мишей Корнеевым и Гришей Петровым. 📍Когда и во сколько: 10 июня в 14:00 по Москве. Подключайтесь к удобной площадке YouTube / Rutube / на VK Видео ссылка будет позже

Сегодня в первую пятницу месяца как обычно в 14:00 (по мск) обсудим новости апреля в прямом эфире Moscow Python Podcast 🎙 Новости про откат GC, packaging и жизнь с БД в эпоху агентов Ведущие: Михаил Корнеев и Григорий Петров 📍Когда и во сколько: 1 мая в 14:00 по Москве. Подключайтесь к удобной площадке YouTube / Rutube / VK Видео

Есть такой относительно популярный LLM-gateway/SDK — LiteLLM. Он позволяет единообразно вызывать разные облачные LLM (в том числе из Vertex, Bedrock, Azure и т.д.). Вчера его скомпрометировали: в PyPI выпустили две версии — 1.82.7 и 1.82.8 — которые, например, крадут ключи из .ssh. Если вы его используете, самое время проверить, не задело ли вас это и если задело — срочно бегите менять ключи. Сейчас PyPI поместил проект в карантин, и скачать эти версии уже нельзя. Подробности от разработчиков: https://github.com/BerriAI/litellm/issues/24518 Оригинальный issue на GitHub атакующий заспамил комментариями в стиле “Thanks, that helped!”, чтобы усложнить дискуссию и, видимо, выиграть себе время: https://github.com/BerriAI/litellm/issues/24512

Завтра, в пятницу в 14:00 (по МСК) обсудим свежие новости Python в прямом эфире Moscow Python Podcast🎙 Новости выпуска: 🟤 Anthropic инвестирует $1.5 млн в Python и open source-безопасность 🟤 Эволюция Git: курс на 3.0 🟤 CLI против GitHub-спама 🟤 Starlette 1.0.0rc1 🟤 PEP 814 — frozendict в стандартной библиотеке Ведущие: Михаил Корнеев и Григорий Петров 📍 Когда: 6 марта в 14:00 по Москве ➡️Подключайтесь на удобной площадке: YouTube / Rutube / VK Видео Присоединяйтесь к эфиру или смотрите запись на любой из платформ.

У нас в подкасте один эфир за другим 🙂 В этот четверг встречаемся в прямом эфире Moscow Python Podcast🎙 В этот раз у нас в гостях Сергей Поляшов, COO в Toloka. Поговорим подробно про агентские системы: 🟤библиотеки и архитектурные паттерны для разработки; 🟤почему большинство таких систем так и не доезжают до продакшена; 🟤как проектировать контуры участия человека; 🟤как оценивать эффективность агентских систем. 📍Когда и во сколько: 12 февраля в 14:00 по Москве. Подключайтесь к удобной площадке YouTube / Rutube / VK Видео ➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок

Сегодня в 14:00 (по мск) обсудим новости января в прямом эфире Moscow Python Podcast 🎙 Новости выпуска: 🟤убивают ли Python инкрементальные улучшения; 🟤релиз Pandas 3.0 ; 🟤в CPython и psutils избавились от busy-polling при работе с subprocess; 🟤PyPI в 2025 году; 🟤PEP 822 — d-string или новый синтаксис для многострочных строковых литералов без лишних отступов. Ведущие: Михаил Корнеев и Григорий Петров 📍Когда и во сколько: 6 фераль в 14:00 по Москве. Подключайтесь к удобной площадке YouTube / Rutube / VK Видео ➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок