РоссияСтатьяПрактика
Находки в опенсорсе: доклады с большой встречи сообщества, конец опенсорса и питон 3.15; октябрь 2026
Добро пожаловать в мир находок в опенсорсе! Всем привет! Очень большой получился дайжест: было очень много событий. Но тем будет интереснее! 17 октября прошла наша большая открытая встреча...
Содержание
Всем привет! Очень большой получился дайжест: было очень много событий. Но тем будет интереснее!
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ы
- Godot запретил использование ИИ
- Платформа 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
Я там ничего не продаю, просто делаю свою работу, если считаете, что я делаю полезное — можно поддержать. Если нет, то я все равно продолжу ее делать.
Подписывайтесь на главный канал сообщества, если вам нравится такое читать. И возможно даже захочется поучаствовать! Буду рад видеть вас частью нашего опенсорс сообщества :)
До встречи в следующем дайджесте и в нашем сообществе!
Комментарии
Обсуждайте статью, отвечайте и оценивайте комментарии. Вход — через ваш Яндекс ID.
Загружаем обсуждение…