Python 2025: что посмотреть
В этом году питон‑коммьюнити много говорит про развитие разработчиков, виртуальные окружения, AST‑магию, большие данные и новые паттерны RAG. Для бэкграунда очень советую документалку Python: The Documentary и Q&A с Гвидо и компанией.
Про развитие и карьеру
🔘 Выйти из «ада туториалов» — как перестать смотреть бесконечные курсы и начать делать свои проекты (с помощью ИИ тоже).
🔘 Менторинг в обе стороны — как помогать другим и параллельно прокачивать себя, не закапываясь в синдром самозванца.
🔘 Design Pressure — про то, как инструменты и процессы незаметно гнут архитектуру кода, и что с этим делать.
Инструменты, AST и железо
🔘 Виртуальные окружения прошлого, настоящего и будущего (и куда движутся uv‑подобные тулзы).
🔘 AST‑парсинг для ускорения библиотек и переписывания кода до попадания в C‑расширения.
🔘 Как не умереть от огромных JSON‑ов: стриминг, JSON Lines и более компактные форматы.
🔘 Чип PyXL, который гоняет Python прямо в железе и даёт серьёзный буст без переписывания кода.
Данные, RAG и аналитика
🔘 Narwhals: один API поверх Polars, DuckDB, PyArrow, pandas и cuDF — меньше if‑ов, больше совместимости.
🔘 DuckDB как способ приручить «зоопарк файлов» и собрать нормальные пайплайны.
🔘 Structured RAG is better than RAG от Гвидо — как структурированный RAG делает ответы точнее и даёт долгую память ИИ, плюс новая Python‑библиотека под это.
🔘 Футбол‑аналитика на Polars, Keras и GNN: превращаем координаты игроков в метрики и модели уровня профклубов.
@zen_of_python
В этом году питон‑коммьюнити много говорит про развитие разработчиков, виртуальные окружения, AST‑магию, большие данные и новые паттерны RAG. Для бэкграунда очень советую документалку Python: The Documentary и Q&A с Гвидо и компанией.
Про развитие и карьеру
Инструменты, AST и железо
Данные, RAG и аналитика
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
Вышла свежая либа для авторизации в Python — PyPermission. Это небольшая RBAC‑библиотека, которая реализует классическую модель ролей по NIST: есть роли, есть права, права можно складывать в иерархии (
Идея в том, чтобы описать все разрешения декларативно, а не размазывать
Устанавливается всё обычным
Код в репо, отдельно документация.
@zen_of_python
chat.*, chat.global, ticket.close.own и т.д.), а дальше вы просто спрашиваете у системы: «есть ли у пользователя Х такое‑то право?».Идея в том, чтобы описать все разрешения декларативно, а не размазывать
if role == ... по коду. Вы заводите PermissionNode`‑класс с перечислением прав, настраиваете `Authority и храните роли с привязанными пользователями либо в JSON/YAML‑файле, либо в базе через SQLAlchemy — PyPermission сам разрулит наследование ролей и проверку доступа через метод subject_has_permission.Устанавливается всё обычным
pip install PyPermission, а если нужен конкретный бэкенд хранения, то PyPermission[sqlalchemy] или PyPermission[yaml]. Авторы честно помечают проект как alpha: API ещё могут поломать, но уже есть рабочие примеры, тесты и заготовленная документация, так что если вы как раз думаете, как аккуратно оформить права в своём сервисе или админке на Python, это хороший кандидат попробовать.Код в репо, отдельно документация.
@zen_of_python
👍14❤2
Автор два года пилил свою библиотеку для Dependency Injection в Python и наконец выкатил её в продакшен-ready состоянии. Называется
Работает всё на декораторах и type hints: вешаете
Комьюнити сравнивает проект с
Установка стандартная:
Код в репо.
@zen_of_python
python-injection, и главная фишка — минимум конфигурации и максимум простоты.Работает всё на декораторах и type hints: вешаете
@injectable или @singleton на класс, а потом @inject на функцию — и зависимости резолвятся автоматически по аннотациям типов. Поддерживаются четыре типа времени жизни: transient (новый инстанс каждый раз), singleton, constant (для конфигов) и scoped (привязка к контексту). Есть поддержка async, профили для переключения зависимостей между окружениями и scoped-зависимости через context manager.Комьюнити сравнивает проект с
dependency-injector и другими решениями. Автор отмечает, что его подход менее инвазивный: если захотите избавиться от библиотеки, достаточно убрать декораторы — код останется рабочим. Из минусов — нужно не забывать импортировать модули, где объявлены декораторы, иначе зависимости не зарегистрируются. Работает только на Python 3.12+.Установка стандартная:
pip install python-injection. Дальше импортируете нужные декораторы из injection и размечаете классы и функции.Код в репо.
@zen_of_python
❤5🔥1
Cookiecutter — это CLI-утилита для генерации проектов из шаблонов. Если вам надоело каждый раз копипастить структуру папок, настраивать
Работает просто: берёте готовый шаблон (свой или чужой с GitHub), запускаете cookiecutter, отвечаете на вопросы в интерактивном режиме — и получаете готовую структуру проекта с подставленными значениями. Шаблоны используют Jinja2, так что можно делать условную генерацию, циклы и любую логику внутри. Переменные задаются в
На GitHub уже куча готовых шаблонов:
Быстрый старт:
Код в репо.
@zen_of_python
pyproject.toml, README и прочую обвязку — инструмент закрывает боль.Работает просто: берёте готовый шаблон (свой или чужой с GitHub), запускаете cookiecutter, отвечаете на вопросы в интерактивном режиме — и получаете готовую структуру проекта с подставленными значениями. Шаблоны используют Jinja2, так что можно делать условную генерацию, циклы и любую логику внутри. Переменные задаются в
cookiecutter.json, там же можно указать дефолтные значения и валидацию. Есть хуки для запуска скриптов до и после генерации — например, сразу инициализировать git или установить зависимости.На GitHub уже куча готовых шаблонов:
cookiecutter-pypackage для Python-пакетов, cookiecutter-django для Django-проектов, шаблоны для pytest-плагинов и много других. Проект зрелый — 24 тысячи звёзд, почти 300 контрибьюторов, используется в 35 тысячах репозиториев. Работает на Windows, Mac и Linux, поддерживает Python 3.8–3.12.Быстрый старт:
pipx install cookiecutter или python -m pip install --user cookiecutter, затем cookiecutter gh:audreyfeldroy/cookiecutter-pypackage — и через пару вопросов у вас готовый Python-пакет со всей структурой.Код в репо.
@zen_of_python
✍5
Вышел Pact Python v3 — библиотека для контрактного тестирования микросервисов. Если кратко: Pact позволяет тестировать взаимодействие между сервисами без поднятия всех зависимостей. Consumer описывает, какие запросы он будет делать и какие ответы ожидает, это записывается в JSON-контракт. Потом этот контракт проигрывается против реального provider'а.
Главное изменение в v3 — переезд с Ruby-бинарников на Rust FFI. Раньше библиотека тащила за собой Ruby-обёртки, теперь всё работает через нативную Rust-библиотеку, скомпилированную под разные платформы. Это дало поддержку Pact Specification v3/v4, нормальные мэтчеры и генераторы данных, async message testing для событийных архитектур.
Что появилось в API:
🔘 Мэтчеры:
🔘 Генераторы тестовых данных
🔘 Асинхронные сообщения для Kafka/RabbitMQ и подобных
🔘 Улучшенные ошибки при несовпадении контрактов
Пример как может выглядеть код:
Миграция с v2 потребует изменений — переименовали
Код в репо, документация на офф. сайте, установка как обычно
@zen_of_python
Главное изменение в v3 — переезд с Ruby-бинарников на Rust FFI. Раньше библиотека тащила за собой Ruby-обёртки, теперь всё работает через нативную Rust-библиотеку, скомпилированную под разные платформы. Это дало поддержку Pact Specification v3/v4, нормальные мэтчеры и генераторы данных, async message testing для событийных архитектур.
Что появилось в API:
like(), each_like(), regex(), uuid(), each_key(), each_value()Пример как может выглядеть код:
from pact.v3 import Pact
pact = Pact("consumer", "provider")
(pact
.upon_receiving("a request for users")
.with_request("GET", "/users")
.will_respond_with(200)
.with_body({"users": like([{"id": 1, "name": "Alice"}])}))
Миграция с v2 потребует изменений — переименовали
set_state в state_handler, поменяли сигнатуры message handler'ов. Python 3.8 больше не поддерживается.Код в репо, документация на офф. сайте, установка как обычно
pip install pact-python.@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥5
Команда Puzl Cloud выложила в опенсорс KubeSDK — Python-клиент для работы с Kubernetes API. Основная идея: сделать типизированный async-first клиент с минимумом зависимостей, который удобно использовать в продакшене и при работе с несколькими кластерами одновременно.
Чем отличается от официального kubernetes-client/python:
🔘 Полностью асинхронный из коробки (не как обёртка поверх sync-кода)
🔘 Все методы и модели типизированы — IDE нормально автокомплитит
🔘 Встроенный генератор моделей: скармливаешь ему Kubernetes API — получаешь dataclasses для всех ресурсов, включая CRD
🔘 Единый интерфейс для core-ресурсов и custom resources
🔘 Заточен под высокую нагрузку и мульти-кластерные сценарии
Есть альтернативы — kubernetes_asyncio, kr8s, lightkube — но у каждой свои компромиссы. kubernetes_asyncio генерируется из OpenAPI и тоже async, но не такой developer-friendly. kr8s поддерживает и sync, и async, но там другой подход к моделям.
Код в репо, установка
@zen_of_python
Чем отличается от официального kubernetes-client/python:
Есть альтернативы — kubernetes_asyncio, kr8s, lightkube — но у каждой свои компромиссы. kubernetes_asyncio генерируется из OpenAPI и тоже async, но не такой developer-friendly. kr8s поддерживает и sync, и async, но там другой подход к моделям.
Код в репо, установка
pip install kubesdk[cli].@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Forwarded from Типичный программист
Летим зимовать ✈️
Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.
Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!
Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:
😎 Типичный программист
🐸 Библиотека программиста
🟢 Ostrovok! Tech
Теперь осталось нажать на кнопку участия под этим постом и вы в игре!
Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.
Всем удачи!
Участников: 19
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (4 дня)
Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.
Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!
Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:
Теперь осталось нажать на кнопку участия под этим постом и вы в игре!
Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.
Всем удачи!
Участников: 19
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (4 дня)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2
JetBrains выпустили PyCharm 2025.3 — и это важный релиз, потому что PyCharm Community Edition официально всё. Теперь есть только один PyCharm: базовые фичи (включая Jupyter) бесплатно, расширенные — по подписке Pro.
Что нового:
🔘 uv по умолчанию — при создании проекта теперь предлагается uv вместо venv. Для тех кто не в курсе: uv — это менеджер пакетов от Astral (создатели Ruff), работает в 10-100 раз быстрее pip
🔘 LSP-интеграции из коробки: Ruff и Pyright теперь настраиваются прямо в Settings → Python → Tools. Не нужны сторонние плагины
🔘 Remote Jupyter — можно подключаться к удалённым Jupyter-серверам и работать с ноутбуками без локальной установки
🔘 AI Agents Debugger — дебаггер для агентных систем, показывает что происходит внутри «чёрного ящика»: входы, выходы, метаданные каждого шага
🔘 300+ багфиксов
Про миграцию с Community: если использовали Community Edition, при обновлении до 2025.3 произойдёт автоматическая миграция на unified PyCharm. Все бесплатные фичи останутся, плюс добавится Jupyter. Исходники Community по-прежнему открыты, но готовых билдов больше не будет.
@zen_of_python
Что нового:
Про миграцию с Community: если использовали Community Edition, при обновлении до 2025.3 произойдёт автоматическая миграция на unified PyCharm. Все бесплатные фичи останутся, плюс добавится Jupyter. Исходники Community по-прежнему открыты, но готовых билдов больше не будет.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎1
Вышел release candidate pandas 3.0 — мажорный релиз с breaking changes, который готовили несколько лет. Стабильная версия ожидается через пару недель.
Главные изменения:
🔘 Строки теперь отдельный dtype — больше никакого object для текстовых колонок. Новый str dtype под капотом использует PyArrow (если установлен), иначе fallback на NumPy. Это даёт строгую типизацию, лучшую производительность и меньше использование памяти.
🔘 Copy-on-Write включён по умолчанию — конец путанице view vs copy. Теперь любой срез DataFrame/Series ведёт себя как копия. Chained assignment больше не работает, SettingWithCopyWarning удалён. Внутри pandas всё ещё использует views для оптимизации, но API стал предсказуемым.
🔘 Datetime resolution inference — при создании datetime из строк pandas теперь сам определяет нужную точность (секунды, миллисекунды, микросекунды) вместо дефолтных наносекунд.
Удалено:
🔘
🔘
🔘 Поддержка Python 2 pickle
🔘 ArrayManager
🔘 Куча deprecated параметров
Новая политика deprecation: сначала
Потестить:
@zen_of_python
Главные изменения:
Удалено:
DataFrame.applymap → используйте mapSeries.view и Series.ravelНовая политика deprecation: сначала
DeprecationWarning, потом FutureWarning в последнем минорном релизе, потом удаление. Меньше внезапных поломок.Потестить:
pip install --upgrade --pre pandas, полный список изменений в рели-ноутсах.@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Pyrefly — модный тайпчекер, написанный на Rust — добавил нативную поддержку Pydantic. Теперь это второй (после Mypy) инструмент, который понимает магию Pydantic-моделей без костылей.
Pyrefly выкатили в апреле 2025 как замену старому Pyre, который использовался для кода инсты в сами-знаете-какой организации. Написан на Rust, работает со скоростью до 1,8 млн строк/сек — это в 14 раз быстрее Mypy и Pyright. В ноябре вышла бета (v0.42+), сейчас актуальная версия 0.45.
Что поддерживается для Pydantic:
🔘 ConfigDict и immutable-поля
🔘 Strict vs non-strict валидация
🔘 Extra fields
🔘 Field constraints
🔘 Root models
🔘 Alias validation
Главное отличие от Mypy: всё встроено в сам тайпчекер, не нужен отдельный плагин. Pyright пока Pydantic нативно не поддерживает.
Зачем пробовать: если у вас большой Python-проект с Pydantic-моделями — Pyrefly даст и скорость проверки, и правильный вывод типов для моделей. Есть VSCode-расширение с autocomplete, go-to-definition, автоимпортами.
Код на гитхабе, документация по интеграции есть как у Pyrefly, так и у Pydantic.
@zen_of_python
Pyrefly выкатили в апреле 2025 как замену старому Pyre, который использовался для кода инсты в сами-знаете-какой организации. Написан на Rust, работает со скоростью до 1,8 млн строк/сек — это в 14 раз быстрее Mypy и Pyright. В ноябре вышла бета (v0.42+), сейчас актуальная версия 0.45.
Что поддерживается для Pydantic:
Главное отличие от Mypy: всё встроено в сам тайпчекер, не нужен отдельный плагин. Pyright пока Pydantic нативно не поддерживает.
Зачем пробовать: если у вас большой Python-проект с Pydantic-моделями — Pyrefly даст и скорость проверки, и правильный вывод типов для моделей. Есть VSCode-расширение с autocomplete, go-to-definition, автоимпортами.
Код на гитхабе, документация по интеграции есть как у Pyrefly, так и у Pydantic.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3
PyAtlas — интерактивная карта 10 000 самых популярных пакетов PyPI, где похожие библиотеки расположены рядом друг с другом.
Как работает: описания пакетов прогоняются через sentence transformer → получаются эмбеддинги → UMAP сжимает их в 2D → кластеризация группирует по темам. В итоге веб-фреймворки оказываются в одном углу, ML-библиотеки в другом, тулзы для тестирования в третьем.
Что можно делать:
🔘 Просто тыкать и исследовать экосистему Python с высоты птичьего полёта
🔘 Найти пакет, который уже используешь, и посмотреть что рядом — там будут альтернативы и связанные инструменты
🔘 Обнаружить библиотеки, о которых не слышал, но которые решают похожие задачи
Практическая польза: когда ищешь «что-то вроде X, но для Y» — карта покажет соседей по смыслу, а не по алфавиту. Или когда хочешь понять что вообще существует в какой-то нише.
Под капотом: Python, sentence-transformers для эмбеддингов, UMAP для редукции размерности, HDBSCAN для кластеризации. Код открыт на GitHub.
@zen_of_python
Как работает: описания пакетов прогоняются через sentence transformer → получаются эмбеддинги → UMAP сжимает их в 2D → кластеризация группирует по темам. В итоге веб-фреймворки оказываются в одном углу, ML-библиотеки в другом, тулзы для тестирования в третьем.
Что можно делать:
Практическая польза: когда ищешь «что-то вроде X, но для Y» — карта покажет соседей по смыслу, а не по алфавиту. Или когда хочешь понять что вообще существует в какой-то нише.
Под капотом: Python, sentence-transformers для эмбеддингов, UMAP для редукции размерности, HDBSCAN для кластеризации. Код открыт на GitHub.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3❤3😍3
JetBrains опубликовали State of Developer Ecosystem 2025 — опрос 24 500+ разработчиков из 190+ стран. Python на первом месте с 35%.
Топ языков:
🐍 Python — 35%
☕️ Java — 33%
🌐 JavaScript — 26%
🧩 TypeScript — 22%
🎨 HTML/CSS — 16%
Важная оговорка: это не «все программисты мира», а преимущественно аудитория JetBrains. PyCharm, IntelliJ, WebStorm — у компании сильные IDE именно для Python, Java и веб-стека. Так что выборка смещена в сторону этих языков. Например, Go и Rust-разработчики чаще сидят в VS Code, Swift-девелоперы — в Xcode.
Тем не менее, тренд понятен: Python уверенно держится в топе благодаря AI/ML и автоматизации. 41% Python-разработчиков в опросе используют язык для машинного обучения.
Другие находки:
🔘 85% используют AI-инструменты для кода
🔘 TypeScript, Rust и Go — лидеры по потенциалу роста
🔘 PHP и Ruby продолжают снижаться
Для более объективной картины стоит смотреть несколько источников: Stack Overflow Survey, TIOBE, RedMonk, GitHub Octoverse. Но то, что Python стабильно в топ-3 везде — факт.
@zen_of_python
Топ языков:
🐍 Python — 35%
☕️ Java — 33%
🌐 JavaScript — 26%
🧩 TypeScript — 22%
🎨 HTML/CSS — 16%
Важная оговорка: это не «все программисты мира», а преимущественно аудитория JetBrains. PyCharm, IntelliJ, WebStorm — у компании сильные IDE именно для Python, Java и веб-стека. Так что выборка смещена в сторону этих языков. Например, Go и Rust-разработчики чаще сидят в VS Code, Swift-девелоперы — в Xcode.
Тем не менее, тренд понятен: Python уверенно держится в топе благодаря AI/ML и автоматизации. 41% Python-разработчиков в опросе используют язык для машинного обучения.
Другие находки:
Для более объективной картины стоит смотреть несколько источников: Stack Overflow Survey, TIOBE, RedMonk, GitHub Octoverse. Но то, что Python стабильно в топ-3 везде — факт.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2👎1🏆1
Команда urllib3 столкнулась с неприятным открытием: механизм DeprecationWarning в Python фактически не работает. Библиотека три года предупреждала об устаревших API — через документацию, changelog и встроенные предупреждения. В версии 2.6.0 эти методы удалили. И всё сломалось.
Что произошло: после релиза посыпались баг-репорты от Kubernetes-клиента, Fastly, Airflow и других крупных проектов. Разработчики были в шоке — никто не видел предупреждений и не знал, что API исчезнет. Команде urllib3 пришлось срочно откатывать изменения и возвращать удалённые методы.
Почему так вышло: DeprecationWarning в Python по умолчанию отключён. Интерпретатор просто игнорирует эти предупреждения, если разработчик явно не включил их показ. В итоге API годами кричал о своей устарелости, но его никто не слышал.
Какие есть варианты:
🔘 Использовать UserWarning вместо DeprecationWarning — он не игнорируется по умолчанию
🔘 Делать более частые мажорные релизы по SemVer, как в криптографических библиотеках
🔘 Менять культуру работы с предупреждениями в экосистеме — но это долгий путь
Вывод для авторов библиотек: если полагаетесь только на стандартные предупреждения — велика вероятность, что их никто не увидит до момента, пока код не сломается.
@zen_of_python
Что произошло: после релиза посыпались баг-репорты от Kubernetes-клиента, Fastly, Airflow и других крупных проектов. Разработчики были в шоке — никто не видел предупреждений и не знал, что API исчезнет. Команде urllib3 пришлось срочно откатывать изменения и возвращать удалённые методы.
Почему так вышло: DeprecationWarning в Python по умолчанию отключён. Интерпретатор просто игнорирует эти предупреждения, если разработчик явно не включил их показ. В итоге API годами кричал о своей устарелости, но его никто не слышал.
Какие есть варианты:
Вывод для авторов библиотек: если полагаетесь только на стандартные предупреждения — велика вероятность, что их никто не увидит до момента, пока код не сломается.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
Tproger
Обновление urllib3 доказало, что DeprecationWarning мертв. Python-экосистема его просто не видит — Tproger
urllib3 показал, что DeprecationWarning не работает: Python игнорирует устаревшие API, из-за чего ломаются даже крупные проекты
❤4🗿4👍1😱1
Python's random.seed() игнорирует знак числа — и это не баг
Андрей Карпати наткнулся на неочевидное поведение:
➡️ Как обнаружилось
Карпати работал над nanochat и хотел использовать знак seed'а для разделения train/test данных. Получил баг: train и test оказались идентичными.
➡️ Почему так
В исходниках CPython (
Знак просто отбрасывается.
➡️ Баг или фича?
Формально — не баг. Документация гарантирует только то, что одинаковый seed даст одинаковую последовательность. Но не гарантирует, что разные seed'ы дадут разные последовательности.
Карпати считает это ошибкой дизайна: знаковый бит мог бы удвоить пространство seed'ов. Простое решение:
➡️ Что дальше
🔘 Не полагаться на отрицательные seed'ы как на «другие»
🔘 В NumPy отрицательные seed'ы вызывают ошибку — там строже
🔘 Открыт issue на GitHub для обновления документации
@zen_of_python
Андрей Карпати наткнулся на неочевидное поведение:
random.seed(5) и random.seed(-5) дают одинаковую последовательность случайных чисел.Карпати работал над nanochat и хотел использовать знак seed'а для разделения train/test данных. Получил баг: train и test оказались идентичными.
В исходниках CPython (
_randommodule.c, строка 321) явно вызывается abs():// "This algorithm relies on the number being unsigned"
n = PyNumber_Absolute(arg);
Знак просто отбрасывается.
Формально — не баг. Документация гарантирует только то, что одинаковый seed даст одинаковую последовательность. Но не гарантирует, что разные seed'ы дадут разные последовательности.
Карпати считает это ошибкой дизайна: знаковый бит мог бы удвоить пространство seed'ов. Простое решение:
n -> 2*abs(n) + int(n < 0).import random
random.seed(42)
print(random.random()) # 0.6394267984578837
random.seed(-42)
print(random.random()) # 0.6394267984578837
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3😱1
Kreuzberg v4 — вышла новая версия библиотеки для извлечения текста, таблиц и метаданных из 56+ форматов.
Была на Python, теперь переписана на Rust, в 5-15 раз легче конкурентов, есть готовые биндинги под популярные языки. Есть настоящий async без GIL и стриминг для гигабайтных файлов.
Главное: 16–31 MB полная установка против 146 MB – 9,7 GB у Unstructured/Docling/MarkItDown. Также в новой версии встроили эмбеддинги (FastEmbed + ONNX), семантический чанкинг, определение 68 языков и MCP-сервер для Claude Desktop.
Установка для Python:
📎 GitHub: https://github.com/kreuzberg-dev/kreuzberg
На картинке сравнение с альтернативами.
@zen_of_python
Была на Python, теперь переписана на Rust, в 5-15 раз легче конкурентов, есть готовые биндинги под популярные языки. Есть настоящий async без GIL и стриминг для гигабайтных файлов.
Главное: 16–31 MB полная установка против 146 MB – 9,7 GB у Unstructured/Docling/MarkItDown. Также в новой версии встроили эмбеддинги (FastEmbed + ONNX), семантический чанкинг, определение 68 языков и MCP-сервер для Claude Desktop.
Установка для Python:
pip install kreuzberg
На картинке сравнение с альтернативами.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Python 3.15.0a3 — третья альфа уже доступна, всё по графиу релизов, только что выложили.
До беты ещё полгода, но уже есть интересное.
🔘 PEP 799 — встроенный sampling profiler: высокочастотный, низкий overhead, отдельный пакет для профилирования
🔘 PEP 686 — UTF-8 теперь дефолтная кодировка (наконец-то!)
🔘 PEP 782 — новый C API PyBytesWriter для создания bytes-объектов
🔘 Больше предложений по фиксам в сообщениях об ошибках (см. скриншот)
Таймлайн
🔘 Альфа 4 выйдет 13 января 2026
🔘 Бета: 5 мая 2026
🔘 RC: 28 июля 2026
Напоминание: альфа-релизы не для продакшна. Фичи могут измениться или исчезнуть до RC. Но посмотреть уже очень интересно, конечно.
@zen_of_python
До беты ещё полгода, но уже есть интересное.
Таймлайн
Напоминание: альфа-релизы не для продакшна. Фичи могут измениться или исчезнуть до RC. Но посмотреть уже очень интересно, конечно.
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Astral выпустили ty — type checker для Python, который в 10-60x быстрее mypy и Pyright
Astral — это те ребята, которые сделали uv и Ruff. Теперь у них полный тулчейн для Python: пакеты, линтинг, форматирование и type checking — всё на Rust, всё безумно быстрое.
Что такое ty
Type checker + language server. Альтернатива mypy, Pyright и Pylance. Написан на Rust, спроектирован с нуля под инкрементальность — пересчитывает только то, что изменилось.
Скорость
🔘 Без кэша: 10-60x быстрее mypy и Pyright
🔘 В редакторе после правки файла в PyTorch: 4.7ms (Pyright — 386ms, Pyrefly — 2.38 сек)
🔘 Это 80x и 500x разница соответственно
Что умеет
🔘 First-class intersection types, продвинутый type narrowing, reachability analysis
🔘 Диагностики как у Rust-компилятора — показывает контекст из нескольких файлов, объясняет почему ошибка и как починить
🔘 Полноценный LSP: Go to Definition, Rename, Auto-Complete, Auto-Import, Inlay Hints
Как попробовать
Или VS Code extension: ищите «ty» в маркетплейсе.
Сейчас Beta — команда Astral уже использует его в продакшне. Stable планируется в следующем году. В планах — поддержка Pydantic, Django и type-aware линтинг в связке с Ruff.
📎 GitHub, пост в блоге, на видео демо скорости работы
@zen_of_python
Astral — это те ребята, которые сделали uv и Ruff. Теперь у них полный тулчейн для Python: пакеты, линтинг, форматирование и type checking — всё на Rust, всё безумно быстрое.
Что такое ty
Type checker + language server. Альтернатива mypy, Pyright и Pylance. Написан на Rust, спроектирован с нуля под инкрементальность — пересчитывает только то, что изменилось.
Скорость
Что умеет
Как попробовать
uv tool install ty@latest
Или VS Code extension: ищите «ty» в маркетплейсе.
Сейчас Beta — команда Astral уже использует его в продакшне. Stable планируется в следующем году. В планах — поддержка Pydantic, Django и type-aware линтинг в связке с Ruff.
@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2
Программисты из Tproger подготовили для вас новогоднее бинго. Заканчивайте работу, пора позалипать на этот шедевр и найти все пасхалки.
@zen_of_python
@zen_of_python
Tproger
НОВОГОДНЕЕ БИНГО v2000
Заполни всё поле и узнай свою судьбу в новом году!
🔥1😍1
Clean Architecture в Python: не догма, а инструмент — разбор от разработчика с 30-летним стажем
Макс Кирхофф взял интервью у Сэма Кина — автора книги «Clean Architecture with Python». Сэм прошёл путь от стартапов до AWS и делится практическим подходом к архитектуре.
Ключевые моменты
🔘 Clean Architecture — не «всё или ничего», а набор принципов под твой контекст
🔘 Главная ценность — грамотное управление зависимостями и чёткая доменная модель
🔘 Хорошая архитектура = тестируемый код (связь прямая)
🔘 Бонус: чистая архитектура упрощает работу с AI-ассистентами при написании кода
Почему важно
Python любят за прагматику — и можно сохранить её, не скатываясь в спагетти-код. Архитектурные принципы адаптируются, а не навязываются.
📎 Видео на YouTube или в этом посте
@zen_of_python
Макс Кирхофф взял интервью у Сэма Кина — автора книги «Clean Architecture with Python». Сэм прошёл путь от стартапов до AWS и делится практическим подходом к архитектуре.
Ключевые моменты
Почему важно
Python любят за прагматику — и можно сохранить её, не скатываясь в спагетти-код. Архитектурные принципы адаптируются, а не навязываются.
@zen_of_python
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2