Всем привет! Очень большой получился дайжест: было очень много событий. Но тем будет интереснее!
17 октября прошла наша большая открытая встреча сообщества в Нижнем Новгороде, доклады с которой уже выложены в посте ниже.
Еще поговорим про Python 3.15 и его фичи, ведь он как раз был релизнут в октябре 2026. Посмотрим, что нам уже готовит Python 3.16.
Поговорим про проекты сообщества. Очень много крутых (и очень красивых!) штук подобралось.
С меня как всегда статья без нейрослопа и ИИ, с вас как всегда интересные комментарии и лайки! А вот тут ссылка на прошлый дайджест за сентябрь.
Погнали смотреть, что у нас в питоне происходило!
Большая встреча сообщества
Спасибо большое всем за такой чудестный день! Больше 1000 человек было на конференции.
Было 7 крутых докладов на нашем потоке, море общения, новых знакомств. Заняли половину барной улицы после конфы. А теперь пришло время делиться докладами. Делюсь секцией PythoNN в порядке выступления:
-
Иван Кирпичников. Посмотрим на конкурента Pydantic от нашего сообщества. Посмотрим: где и когда не стоит использовать Pydantic, какие у него актуальные проблемы. Поговорим, за счет чего Adaptix насколько быстрый, как он устроен. И какие уникальные фичи у него есть.
-
Егор Бугаенко. Новые принципы построения проектов в век ИИ. Осторожно, будет подгорать!
-
Алексей Гладких. Расскажу про недооценённую платформу для коммуникации, выстраивания горизонтальных связей и создания личного бренда. Покажу как можно стримить с технической стороны.
-
Сергей Макаров. Как можно использовать zMQTT для работы в embedded устройствами?
-
Максим Мельников @PyLounge. Работа в IT‑команде иногда подозрительно напоминает Dota 2: кто‑то фармит, кто‑то руинит, кто‑то молчит до 40-й минуты, а тимлид начинает думать, что снова играет 1 vs 9. Только вместо Рошана — прод, вместо 0/10 мидера — соседняя CRM‑команда, а вместо «gg ez» — очередной аварийный комитет. На докладе поговорим о том, как перестать играть в такой режим и начать выстраивать систему: почему токсичность и дизмораль только мешают, зачем учить людей говорить ртом и управлять ожиданиями, почему процессы не должны держаться на одном «рокстар‑игроке» и как не превращать каждый фейл в поиск того, кто заруинил. Разберём, как продавать изменения команде, договариваться с бизнесом и другими командами, фиксировать договорённости и автоматизировать правила — чтобы вместо вечного 1 vs 9 получилась команда, которая действительно играет на победу как для бизнеса, так и технического развития проекта.
-
Александр Целуйко. Почему msgspec быстрее и меньше базовых структур (namedtuple, dataclass и тп) python и orjson (не всегда и везде есстессна).Что нужно, чтобы fastapi работал на msgspec? Как разогнать Ваш сервис на fastapi ещё быстрее? Устроим батл про msgspec vs adaptix!
-
Алексей Голобурдин, Диджитализируй. Почему для многих задач полностью локальные агенты это будущее, как Microsoft, Apple и hardware‑производители идут в сторону локального инференса, и как это использовать разработчику.
А еще у нас есть один спасенный доклад от Никиты Пастухова @Propan671 с секции NNИнтерфейс. Там были некоторые проблемы с записью видео и звука, Никита спас что мог:
Спасибо большое всем спикерам! Было круто. Повторим в следующем году!
Ship IT!
Всем спикерам мы всегда по традиции дарим мою опенсорс настольную игру про айтишечку: https://github.com/sobolevn/ship‑it‑boardgame
Игра очень классная вышла: социальная, веселая, душная! Но и правила мы специально делали очень простыми, чтобы было легко их объяснить своим коллегам в баре под кружечку пенного.
В нее можно поиграть абсолютно бесплатно: есть возможность напечатать самому, есть вариант поиграть через Table Top Simulator. Можно даже найти игроков в нашем чате.
Как раз под конференцию вышла новая версия: 0.0.26
Напечатайте и сыграйте, если любите настолки!
CPython
Тут тоже есть несколько важных новостей одной строкой:
-
Вышел Python 3.15, но рассказывать про такое старье я как всегда не вижу смысла. Ведь мы про него рассказывали уже весь прошлый 2025 й год. Подписывайтесь, чтобы быть в курсе актуальных новостей, а не новостей годичной давности.
-
Сергей Мирянов @zzzzzzerg, как я писал в прошлом дайджесте, был выдвинут и успешно принят на позицию CPython core разработчика. Сергей занимается GC, что очень важная и нужная сфера в CPython. Можете поздравить Сергея в комментах!
-
Наконец‑то приняли мое предложение (о котором я писал еще в июльском дайджесте) по добавлению нового C‑API
PyDict_AsFrozenDictAndClear
Ну и покажу один небольшой но интересный PR, который я недавно смерджил: https://github.com/python/cpython/pull/152632 В нем я исправляю грамматику для парсинга lazy imports. Было так:
import_name[stmt_ty]:
| lazy="lazy"? 'import' a=dotted_as_names { _PyAST_Import(a, lazy ? 1 : 0, EXTRA) }
Стало так:
import_name[stmt_ty]:
| "lazy" 'import' a=dotted_as_names {
CHECK_VERSION(stmt_ty, 15, "Lazy imports are",
_PyAST_Import(a, 1, EXTRA)) }
| 'import' a=dotted_as_names { _PyAST_Import(a, 0, EXTRA) }
Что тут вообще происходит?
-
Данный текст — описывает формальную грамматику Python, где есть имена правил:
import_name, тип C структуры для парсинга данного правилаstmt_ty, варианты парсинга правила (пишутся через|), ключевые слова"lazy"и"import", действия для выполнения парсинга в C коде_PyAST_Import(a, 0, EXTRA) -
Но, в Python можно использовать грамматику для парсинга еще и в виде
ast.parseвызова, например для линтеров или тайпчекеров -
А там есть параметр
feature_version, чтобы парсить код из, например, Python 3.15 но для версии Python 3.12. И раньше вызов видаast.parse('lazy import os', feature_version=(3, 12))работал в Python 3.15+. Хотя должен был кидатьSyntaxError -
Потому мне пришлось разделить кейсы парсинга на две части, там где есть
"lazy", я добавилCHECK_VERSION(stmt_ty, 15, "Lazy imports are", ...), чтобы вызывать правильную ошибку приfeature_versionменьше 3.15 -
Теперь все работает корректно, а вы узнали про
feature_versionи особенности грамматики Python. Круто?:)
Конец опенсорса
Опубликовал у себя в канале свои мысли про опенсорс и ИИ. А точнее про конец опенсорса — таким каким мы его знали. И пост собрал просто кучу обсуждений.
Раз есть такой живой запрос на обсуждение: то давайте и на хабре обсудим: что будет с опенсорсом после массового появления ИИ моделей. Вот такие вводные:
-
CPython ограничил количество PRов от внешних контрибьюторов тремя открытыми
-
OpenJDK запретил PRы с использованием ИИ в любом виде
-
Litestar закрыл PRы для всех внешних контрибьюторов, поток слопа был настолько большой, что я в какой‑то момент просто бросил открывать уведомления в проекте. @PyLounge написал большой пост про данный случай
-
JazzBand после 10 лет открытой коллаборации для десятков проектов закрылся по их формулировке из‑за «слопаппокалипсиса», новые участники больше не принимаются
-
Sindre Sorhus (один из самых популярных опенсорс разработчик в мире) закрыл все свои проекты для внешних контрибьюторов
-
JS фреймворк hono закрывает внешние PRы
-
Браузер LadyBird закрывает внешние PRы
-
Платформа Codeberg объявила себя свободной от LLM‑сгенерированного контента
-
Zig запретил использование ИИ у себя (читайте полную историю про переписывание Zig → Rust и при чем тут bun)
-
Node.js будет молча закрывать PRы с ИИ‑слопом
-
Linux прекращает поддержку старых сетевых драйверов, чтобы справиться с количеством ИИ‑багрепортов
-
r/opensource запретил публиковать AI‑slop проекты, формулировки у них вышли очень странные и размытые
-
GitHub знает о проблеме «слопа» в опенсорсе. Обсуждение тут
А вот мой доклад с недавнего MoscowPython на данную тему (говорю про ту же проблему другими словами):
Но — ключевой момент всей ситуации — а что делать то? Предлагаю обсудить в комментариях. У меня пока нет ответов.
RIP #opensource, было весело!
django‑modern‑rest
Вышел релиз django‑modern‑rest@0.17.0, мы очень значительно поработали над производительностью за последние несколько релизов. Вот и сейчас: ускорили большую часть кейсов в x1.6 и в x1.3 раза в самых горячих местах.
Мне очень нравятся цифры производительности. Уже быстрее FastAPI. А будет еще лучше!
Если еще не пробовали — смело пробуйте! У нас есть куча крутых и быстрых фич.
Django еще никогда не была настолько типизированной, приятной, удобной и быстрой!
Светлая пустота
В прошлом дайджесте я показывал темный вариант темы pustota, а сейчас сделал светлый вариант:
Для тех, кто любит светлые темы!
А наш коллега skatromb выпустил тему еще более минималистичную но похожую тему, мне очень понравилась: https://github.com/skatromb/navigate‑theme Посмотрите и вы!
Проекты сообщества
-
Библиотека, которая загружает конфиги в обычные датаклассы и проверяет типы по аннотациям. Цель простая: получить из конфига типизированный объект, а если что‑то не так, увидеть, где именно и почему: https://github.com/reagento/dature
-
Небольшой инструмент, который помогает понять, не испортился ли ваш чат‑бот (агент) после очередных правок. Работает так: convy сам переписывается с ботом, как обычный клиент, и проверяет, правильно ли тот отвечает. Потом можно сравнить старую и новую версию и сразу увидеть, где стало хуже: https://github.com/deyna256/convy
-
Эвент дривен фреймворк, вдохновлённый faststream, но для раста: https://github.com/powersemmi/ruststream
-
Точные замеры HTTP по фазам и выгрузка в удобном формате (OpenTelemetry, Prometheus, JSON, HAR). Показывает, на что уходит время в каждом запросе: DNS → TCP connect → TLS handshake → ожидание сервера (TTFB) → передача тела. Результат выводится как waterfall‑таймлайн: https://github.com/ozeranskii/httptap
-
Если вы хотите дать возможность агенту делать что‑то в Django админке — то вот библиотека для вас: https://github.com/JargeZ/django‑unfold‑agentic‑layer
-
Идейный порт wemake‑python‑styleguide для Rust! В наборе есть линты почти про всё, что по дефолту выключено: Читаемость, Размеры функций, Когнитивная сложность, Идиоматические паттерны, Паника и
.unwrap()в продакшн коде: https://github.com/skatromb/easy‑peasy‑rust -
Потеря тасок при ООМ? Год назад столкнувшись с этим, я реализовал для своей команды 0.x версию данной очереди. Спустя около 8 месяцев успехов и фидбека — родилась вторая версия 1,x, которой я захотел поделиться с миром. Эта очередь — некий симбиоз transactional outbox и durable task queue: https://github.com/KoninMikhail/workhold‑durable‑work‑queue
-
Совместили Telegram подобный интерфейс, принудительное сквозное шифрование и self‑hosted архитектуру. Каждый может развернуть свой сервер самостоятельно, что гарантирует нам отсутствие единой точки отказа, а протокол общения клиента с сервером — WebSocket, что делает трафик похожим на трафик обычных сайтов. E2E шифрование реализовано при помощи алгоритма Double Ratchet который был написан с нуля. Шифруем при помощи ChaChaPoly1305, ключами обмениваемся при помощи постквантового Диффи‑Хелмана. https://github.com/cathxrsys/patronus
-
Порт docling на Расте, проект официально приняли в Linux AI community, IBM docling подписалcя. Скоро полностью заменим docling! https://github.com/docling‑project/docling.rs
-
ETL фреймворк под питон с движком на Rust/Arrow, который грузит таблички/джисоны в/из DWH. Что‑то похожее на dlt, только по‑настоящему работающее: https://github.com/skatromb/transferred
-
Умный UPSERT на sqlalchemy, совместимый с разными БД: https://github.com/pavel‑v‑sobolev/dbmerge
-
benchset нужен, чтобы замерять производительность компьютера по различным метрикам: производительность CPU на 1 ядро, производительность всех доступных ядер в сумме, тд: https://github.com/mutating/benchset
-
Extella — бесплатное приложение для Mac, Windows и Linux. Внутри — открытые проекты с GitHub, упакованные так, чтобы их можно было открыть без терминала и Docker: поставил Extella, добавил приложение на рабочий стол, работаешь. Сейчас так собрано 19 браузерных приложений: редактор схем на основе draw.io, Mermaid Live Editor, JSON Crack, GraphvizOnline, редактор three.js, Excalidraw, Klecks и другие. https://extella.dev/apps/diagram‑editor/
-
shebang позволяет вам декларативно описать CLI вообще для любого скрипта. Такой, с валидациями входящих параметров, автодополнением для шелла. Смотрите как:
#!/usr/bin/env shebang
#! shebang.1
# description "Hello world"
#
# arg "source" {
# description "Copy from..."
# value "filepath" {
# type "directory"
# }
# }
# arg "to" {
# description "Copy to..."
# value "filepath" {
# glob "/archives/**"
# }
# }
cp -a "$1" $2"
-
Релиз arch‑blueprint 0.3: изучаем архитектуру и н т е р а к т и в н о🤌 Теперь можно сразу видеть и дерево проекта, и связи его объектов. Доступны все те же варианты модули vs классы и функции, метрики связей, группировка по неймспейсам и подсветка циклов с детализацией импортов: https://github.com/nkhitrov/arch‑blueprint Обсудить релиз и задать вопросы автору можно в канале Николая Хитрова
-
Написание читабельного кода для телеграм ботов с детерминированными сценариями, в основном для личных админок и не высоконагруженных сервисов. Доступные для Python фреймворки в основном используют FSM (конечный автомат состояний) в той или иной форме. Я же в свою очередь предлагаю иной подход, при котором не нужно выдумывать множество состояний в конечном автомате разбросанных по коду с трудно отслеживаемыми переходами. Вы просто пишите последовательный код в процедурном стиле: https://github.com/nebenwelt/pyteleflow
-
imgproxykit — библиотека для сборки URL к imgproxy. Если не сталкивались с imgproxy: это сервер на Go (асуждаем) для обработки изображений. Формируешь для него ссылку с набором параметров обработки и оригиналом — получаешь картинку нужно размера, качества и формата. imgproxykit позволяет описать параметры python‑кодом: https://github.com/kondratevdev/imgproxykit
-
Язык программирования для ИИ агентов. Он заставляет агентов работать с кристаллизованными контрактами, а не со свободной семантической интерпретацией текстов. Делая интерфейсы формальными, а тела реализаций — приватными, он превращает исходный код в компактный и жёсткий, не подверженный эрозии «экзоскелет», который агенты могут безопасно развивать, а люди — быстро читать. https://github.com/rete‑labs/quoll Почитать и обсудить подробнее можно в канале у Феди
-
Движок для создания презентаций с кучей анимацией и стилей. А еще умеет создавать красивые видео ролики из тех же презентаций. Код получается очень красивым! https://github.com/xfenix/slidemachina Демо можно глянуть вот тут в канале у Никиты Пастухова
Хотите попасть в следующий дайджест? Пишите о своем проекте в нашем чате, добавляйте тег #opensource, я обязательно им поделюсь!
Одной строкой
-
Релизнули pytest‑mypy‑plugins@4.1.0 (библиотека для тестирования mypy плагинов с pytest), поддержали mypy@2.4.0
-
Выпустили релиз
django-stubs@6.1.2с поддержкой mypy@2.4.0 -
Вышел новый dry‑python/returns@0.30.0, с поддержкой mypy@2.40
-
Релизул jinja2-git@1.5.0 плагин для отображения версии текущего коммита в
jinja2шаблонах
Завершение
А если вы думаете, что я делаю что‑то полезное для мира, то поддержать можно по ссылкам:
-
Бусти для российских карт: https://boosty.to/sobolevn
-
GitHub Sponsors для западных карт: https://github.com/sponsors/wemake‑services
Я там ничего не продаю, просто делаю свою работу, если считаете, что я делаю полезное — можно поддержать. Если нет, то я все равно продолжу ее делать.
Подписывайтесь на главный канал сообщества, если вам нравится такое читать. И возможно даже захочется поучаствовать! Буду рад видеть вас частью нашего опенсорс сообщества:‑)
До встречи в следующем дайджесте и в нашем сообществе!
Автор: sobolevn
