Zen of Python
19.5K subscribers
1.34K photos
201 videos
38 files
3.42K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Вышел релиз DuckDB 1.5.0. Если вы ещё не пользовались этим инструментом, представьте себе SQLite, но только для аналитики и работы с данными. Это колоночная база данных, которая работает локально внутри вашего процесса без отдельного сервера и умеет очень быстро переваривать огромные датасеты.

Что интересного завезли в новом обновлении:

— на уровне движка добавили типы VARIANT для полуструктурированных данных и GEOMETRY для пространственных вычислений;

— консольную утилиту duckdb-cli опубликовали в PyPI, поэтому теперь ее не нужно качать руками, а можно моментально поднимать через pip или uv;

В связке с новой функцией read_duckdb это позволяет делать классные вещи прямо в терминале. Например, вы можете одной командой прочитать таблицу из удал`нной базы по ссылке, вообще не скачивая сам файл целиком на диск:
uv run -w duckdb-cli duckdb -c "from read_duckdb('https://blobs.duckdb.org/data/animals.db', table_name='ducks')"


На выходе вы мгновенно получите отформатированную таблицу в консоли. Идеальный инструмент, когда нужно быстро проанализировать датасет без поднятия тяжёлой инфраструктуры.

@zen_of_python
👍32🔥2
Как ML помогает тестировать то, что нельзя предсказать вручную?

В новом материале — кейс о том, как спроектировать систему динамической генерации тестовых сценариев для транспортного проекта. За основу взято имитационное моделирование с элементами ML.

В статье подробное описание архитектуры решения:
— пайплайн из Great Expectations, Evidently AI, DVC и Airflow;
— три слоя данных: продовые срезы, обезличенные профили и «мутации» аномалий от ML;
— а еще швейцарский сыр.

Как он там оказался, читайте в статье.

@zen_of_python (теперь в VK и Max)
1
Разработчик провёл масштабное исследование всех способов ускорить Python. Взял классические математические тесты (n-body, spectral-norm) и пайплайн обработки JSON, а затем прогнал их вообще через всё: от разных версий CPython и PyPy до Numba, Cython, Mojo и связки Rust/PyO3.

Самые интересные результаты бенчмарков:

— GraalPy стал главным сюрпризом. На задаче spectral-norm он разогнал выполнение в 66 раз без единого изменения в исходном коде, обогнав даже скомпилированный Cython;

— в самом Cython нашлась неприятная подстава с типами. Оказалось, что возведение в дробную степень через стандартный оператор ** работает в 40 раз медленнее, чем прямой вызов сишной функции libc.math.sqrt() с типизированными даблами;

— компилятор Cython никак не предупреждает о таких просадках при сборке. Код успешно компилируется, но теряет огромную долю потенциального ускорения.

В итоге для реального продакшена самым стабильным вариантом остаётся классический подход. Проще всего держать основную бизнес-логику на обычном интерпретаторе, а точечные узкие места переписывать на Rust или выносить в C-расширения. Код всех проверок и итоговые графики выложены в открытый доступ на гитхабе.

@zen_of_python (теперь в VK и Max)
🔥6
Несколько топовых Python-модулей, про которые не все знают​

1. Tenacity (и обертка Stamina)
Мощная библиотека для настройки retry-логики. Вместо того чтобы писать самописные циклы с time.sleep(), вы просто вешаете один декоратор над функцией. Он позволяет из коробки настроить экспоненциальную задержку (exponential backoff), лимит попыток и срабатывание только на определенные типы исключений.

2. Shelve
Недооцененный модуль из стандартной библиотеки Python. Это персистентный словарь, который автоматически сохраняет свои данные в локальный файл. Идеально подходит для кэширования или сохранения стейта в простеньких CLI-скриптах, когда разворачивать даже SQLite — это оверкилл. Вы просто открываете его как обычный dict, пишете данные и закрываете.

3. Polars
Сверхбыстрая альтернатива Pandas, написанная на Rust. Скорость загрузки просто космос, быстрая обработка гигантских CSV-файлов, с которыми классический Pandas начинает тормозить.

4. Marimo
Современная замена Jupyter Notebooks. Это реактивные ноутбуки для Python, которые гарантируют воспроизводимость (нет проблемы скрытого состояния ячеек). В комментариях советуют использовать Marimo в связке с тем же Polars и DuckDB для максимально комфортного анализа данных.

@zen_of_python (теперь в VK и Max)
16
PyTogether — браузерная IDE для совместного написания кода на Python. Проект создавался с прицелом на новичков, репетиторов и проведение технических интервью, где главное — это простота и фокус на общении, а не настройка окружения.

Главные фишки платформы:

Client-side выполнение: код выполняется прямо в браузере через Pyodide (WebAssembly), что делает платформу безопасной (песочница) и позволяет моментально использовать тяжелые библиотеки вроде NumPy и Matplotlib.

Инструменты для общения: можно не только вместе писать код (через движок Y.js), но и рисовать прямо поверх редактора, а также общаться во встроенном голосовом и текстовом чате.

Embed-виджеты: любой сниппет кода можно встроить к себе на сайт через iframe (отличная замена закрывающемуся сервису trinket.io).

Никакого ИИ: автор принципиально не встраивал ИИ-помощников и Copilot, так как многие преподаватели просят чистую среду для обучения.

Проект написан на React + Django, использует Redis и Celery для умного автосохранения. Исходный код полностью открыт на GitHub, так что при желании платформу можно развернуть на своём сервере через Docker: https://github.com/SJRiz/pytogether

Попробовать в песочнице без регистрации: https://pytogether.org/playground

На видео демо совместной работы в стиле Google Docs.

@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
4
Оказывается, есть отдельная команда Faster CPython — отдельные люди, которые целенаправленно занимаются ускорением эталонного интерпретатора языка.

В прошлом году они лишились главного спонсора, а первые версии JIT в Python 3.13 и 3.14 работали медленнее обычного интерпретатора. В тот момент казалось, что они чем-то странным занимаются.

Но сейчас разработка JIT для Python 3.15 неплохо продвинулась: на macOS AArch64 альфа-версия работает на 11-12% быстрее, а на x86_64 Linux прирост составляет 5-6%.

В статье есть подробности за счёт чего получается: https://fidget-spinner.github.io/posts/jit-on-track.html

@zen_of_python (теперь в VK и Max)
👀53❤‍🔥1👎1
22 апреля в Москве пройдет конференция по искусственному интеллекту «MLечный путь»

Это мероприятие от облачного провайдера Selectel для тех, кто не просто следит за хайпом вокруг ИИ, а внедряет модели в продакшн или управляет этим процессом. Программа разделена на два трека: для бизнеса и для технических специалистов.

В техническом блоке доклады про:
— Выбор серверного железа под разные типы ИИ-нагрузок.
— Особенности SDLC для вероятностных систем.
— Безопасность при использовании генеративных технологий в рабочих процессах.
— Как сочетать инференс классических моделей и LLM на одной платформе.

В бизнес-треке — темы про окупаемость, риски и дорожные карты внедрения.

Участие бесплатное, но количество мест ограничено.Подробная программа и регистрация — на сайте мероприятия.

Это #партнёрский пост
3👌3
OpenAI покупает Astral, которая известна в сообществе Python благодаря созданию сверхбыстрых инструментов разработки uv, Ruff, ty. Команда Astral перейдёт в подразделение, занимающееся развитием ИИ-ассистента Codex.

Как по мне, это звучит как «корпорация зла покупает компанию добра».

Что это значит для разработчиков:

— Обещают, что инструменты не бросят: Глава Astral Чарли Марш заявил, что после закрытия сделки OpenAI продолжит финансово и технически поддерживать их популярные open-source проекты (линтер Ruff и менеджер пакетов uv).

— Интеграция с Codex: OpenAI планирует глубоко интегрировать технологии Astral в свой ИИ-ассистент Codex. Цель — создать систему, которая будет не просто писать код, но и автономно работать со всей инфраструктурой разработки (линтерами, тестами и зависимостями).

— Конкуренция на рынке: По словам представителей OpenAI, аудитория Codex выросла в три раза с начала года и достигла 2 млн активных пользователей в неделю. Покупка Astral — это явный шаг для усиления позиций в борьбе с Anthropic (Claude) и Cursor на рынке ИИ для разработчиков.

Финансовые условия сделки пока не разглашаются.

@zen_of_python (теперь в VK и Max)
😱9🤯4👎211
Один из мейнтейнеров фреймворка Pydantic AI (это популярный Python-инструмент для создания ИИ-агентов, который гарантирует строгую типизацию и валидацию данных при общении с нейросетями) написал большой пост о наболевшей проблеме.

За последние 15 дней команда получила 136 пулл-реквестов. Из них приняли только 39, а 97 пришлось закрыть. Причина — это низкокачественный, сгенерированный нейросетями код, который авторы даже не пытались проверить.

Доходит до абсурда: как только в репозитории появляется новый репорт о баге, уже через несколько минут прилетают сразу несколько бессмысленных PR с «исправлениями», которые просто скопированы из ответа Claude или ChatGPT. Это отнимает у разработчиков кучу времени на ревью и мешает развивать проект.

Как они планируют с этим бороться:

— Автоматически закрывать любые PR, если они не привязаны к существующему Issue и не обсуждались заранее с командой (исключение — только мелкие опечатки).

— Мгновенно отклонять PR, если автор проигнорировал прямые указания мейнтейнера в ветке обсуждения.

Авторы подчёркивают, что всё ещё любят open-source и ждут новых контрибьюторов, но просят прекратить бездумно прогонять их комментарии через ИИ-ассистентов.

@zen_of_python (теперь в VK и Max)
👍8🤷‍♂3
Вышло крупное обновление для NServer — минималистичного Python-фреймворка, который позволяет легко создавать кастомные DNS-серверы с помощью понятного API.

Что нового:

Главная фишка версии 3.2.0 — полноценная многопоточность. Раньше всё работало в один поток, и если серверу нужно было сделать тяжелый блокирующий запрос (например, сходить в базу данных на 10–100 мс), пропускная способность моментально падала с 10 000 до 25 запросов в секунду.

Теперь архитектура разделена на три пула потоков:
1. Для приёма входящих DNS-запросов.
2. Настраиваемое количество воркеров для обработки логики.
​3. Поток для отправки ответов.

По словам автора, с новой архитектурой сервер уверенно держит от 300 до 1200 запросов в секунду даже при наличии тех самых блокирующих задержек в коде. В синтетических TCP-бенчмарках NServer даже обошёл популярный CoreDNS (когда тот используется как балансировщик) и некоторые серверы, написанные на C.

Полный ченжлог: https://nhairs.github.io/nserver/latest/changelog/

@zen_of_python (теперь в VK и Max)
👍4
У популярной библиотеки litellm (обертка для работы с разными LLM API) взломали релизы на PyPI. Скомпрометированы версии 1.82.7 и 1.82.8.

Злоумышленники залили заражённые пакеты напрямую в PyPI в обход пайплайнов на GitHub. Внутри лежит вредоносный файл litellm_init.pth, который автоматически срабатывает при старте абсолютно любого Python-процесса в заражённом окружении.

Что делает этот скрипт:
— собирает ваши SSH-ключи, файлы .env, доступы к AWS, GCP, Azure и конфиги Kubernetes;
— архивирует данные, шифрует их и сливает на сторонний сервер models.litellm.cloud;
— если находит токен Kubernetes, пытается расползтись по кластеру, создать привилегированные поды на всех нодах и прописать бэкдор в автозагрузку системы.

Самое забавное, что обнаружили атаку ребята из FutureSearch из-за глупого бага самих хакеров. Зловред при запуске плодит дочерний Python-процесс, который из-за логики работы .pth файлов снова вызывает зловред. Возникает бесконечная форк-бомба, которая моментально вешает систему намертво, что и привлекло внимание разработчиков.

Если вы ставили или обновляли litellm 24 марта 2026 года или позже, обязательно проверьте версию через pip show litellm и почистите кеши pip или uv. Зараженные релизы уже снесли с PyPI, но они могли остаться локально. Если вредонос успел запуститься на вашей машине или сервере, придется менять абсолютно все ключи, пароли и токены, до которых он мог дотянуться.

@zen_of_python (теперь в VK и Max)
2😱2👌2
Частая ошибка начинающих в анализе данных — перебирать строки таблиц через обычные циклы for. На больших объемах такой скрипт может зависнуть надолго, потому что чистый Python просто не рассчитан на тяжелые математические расчёты.

В этом кроется главная ценность библиотек Pandas и NumPy: они не просто сокращают код, но ещё используют векторизацию — вычисления передаются на уровень оптимизированного низкоуровневого кода. В результате то, что на чистом Python занимает 50 строк и считается 10 минут, в Pandas делается одним методом и отрабатывает за секунды.

Если вы уже пишете на Python, но хотите уверенно работать с данными и перестать писать медленные «велосипеды», обратите внимание на курс «Python для анализа данных» от Яндекс Практикума PRO.

За 3 месяца вы освоите:

— Продвинутый Pandas и NumPy: векторизация, фильтрация аномалий, сводные таблицы и очистка «грязных» датасетов.

— Визуализацию: построение понятных графиков через Plotly, Matplotlib и Seaborn.

— Математическую базу: теория вероятностей, статистические тесты и грамотное проведение A/B-тестирований (чтобы не путать случайность с закономерностью).

— Основы ML: базовые модели машинного обучения для предсказаний на основе табличных данных.

Курс рассчитан на специалистов, которые хотят расширить свой стек или плавно перекатиться в Data Science. На бесплатной вводной части можно оценить, подходит ли вам курс: https://tprg.ru/bLs0

Реклама. Рекламодатель: АНО ДПО «Образовательные технологии Яндекса» ИНН 7704282033, erid: 2W5zFGYwtqw