zen_of_python | Unsorted

Telegram-канал zen_of_python - Zen of Python

19037

Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Subscribe to a channel

Zen of Python

В Python-сообществе обсуждают свежий PEP 831 под названием «Frame Pointers Everywhere». Авторы предлагают начиная с Python 3.15 по умолчанию собирать CPython и все Си/Rust-расширения с включёнными указателями фреймов (frame pointers).

Зачем это нужно?

Исторически компиляторы (GCC/Clang) для оптимизации вырезают указатели фреймов, освобождая один регистр процессора для вычислений. Проблема в том, что без этих указателей внешние профайлеры (perf, py-spy) и eBPF-тулы не могут нормально размотать стек вызовов. Вы пытаетесь понять, почему тормозит ваш бэкенд, открываете flame-граф, а там вместо нормального трейса — обрывки сишных функций и сломанный стек.

PEP 831 предлагает добавлять флаги --fno-omit-frame-pointer --mno-omit-leaf-frame-pointer при сборке как самого интерпретатора, так и всех сторонних пакетов, которые компилируются через sysconfig.

Главные тезисы предложения:

— Системная наблюдаемость из коробки. Любые профилировщики смогут строить идеальные flame-графы для Python-процессов без костылей.

— Нужна поддержка всей экосистемы. Цепочка фреймов работает только если все звенья (CPython, ваши C-экстеншены, библиотеки на Rust) собраны с флагами. Одна библиотека без указателей, и трейс ломается для всего процесса.

— Производительность почти не страдает. Авторы замерили падение производительности: в среднем оно составляет менее 2%. А на задачах, сильно нагружающих eval-loop, код парадоксальным образом работает даже на 1–2% быстрее из-за лучшего распределения инструкций в кэше процессора.

— Уже протестировано в бою. Все бинарники python-build-standalone (которые под капотом использует тот же uv) уже давно собираются с этими флагами. То есть половина современного питона уже работает с frame pointers, PEP просто хочет сделать это официальным стандартом.

Для тех, кому нужен каждый процент перформанса (например, в жёстком числовом дробилове), оставят флаг --without-frame-pointers при сборке интерпретатора. На Windows изменения никак не повлияют, там механизм размотки стека работает иначе и проблем с профайлингом нет.

Метрики по производительности на скрине.

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Astral берётся за безопасность Python — тот же Ruff-подход, теперь к PyPI

Astral запускает аудит зависимостей и обнаружение вредоносных пакетов. Логика железная — uv уже стоит в точке входа миллионов проектов и видит весь граф зависимостей. Грех не проверять.

Тайпсквоттинг, малварь в PyPI, пакеты-двойники — не абстрактные угрозы. pip install reqeusts — один символ, и вы узнаёте много нового о supply chain атаках.

В Rust, Go и Node подобная инфраструктура существует давно. Python получает её теперь — и, судя по тому, как Astral делали uv и Ruff, делают это они быстро.

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Учим LLM работать с файлами локально

На Тпрогер вышла пошаговая инструкция о том, как поднять локальную агентную AI‑систему из трёх компонентов:
— LibreChat — удобный UI для общения с LLM
— MCP‑сервер — стандартный доступ к файлам и инструментам
— Langflow — визуальный конструктор для многоступенчатых сценариев (с валидацией и расчётами)

Всё работает в изолированной Docker‑сети. Данные никуда не уходят.

В статье готовые docker-compose.yml, конфиги librechat.yaml, пример кастомного Python‑компонента для расчётов и таблиц, а также схемы работы каждого этапа.

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Вебхуки в Python: почему обработка прямо в эндпоинте это ловушка

Начинающие разработчики часто пишут обработку вебхуков в лоб: получили запрос -> обновили базу -> отправили письмо -> вернули ответ. На локальной машине всё работает, но в реальности такой подход приводит к таймаутам (внешний сервис ждёт ответа секунды), потере данных (падение во время обработки) и дублям.

В статье делятся практическим опытом перехода от «просто эндпоинта» к надёжной архитектуре с очередью задач. Ключевое решение: FastAPI принимает вебхук, проверяет подпись, кладёт задачу в Redis и мгновенно отвечает. Отдельный воркер забирает задачи из очереди и спокойно выполняет бизнес-логику. Так API не тормозит, задачи не теряются, а при необходимости можно запустить несколько воркеров для горизонтального масштабирования.

Подробнее о реализации: https://habr.com/ru/articles/1016206/

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Автокомплит Python в VSCode работает не всегда логично. Например, при вводе os. редактор первой строкой предлагает редкий метод os.abort вместо нужного os.path или os.remove.

И вот одному разработчику это надоело и он написал своё решение. Внимание, без ИИ. Просто по сути пересортировал по частоте использования. Алгоритм интегрирован через форк LSP для изменения порядка подсказок

Главное преимущество в скорости. Обычный поиск по таблице работает намного быстрее автокомплитов на базе ИИ и совершенно не грузит процессор. Алгоритм может хуже справляться с неизвестным кодом, но для стандартных библиотек как будто маст хэв, минусов не вижу.

Детальный разбор в блоге: https://matan-h.com/better-python-autocomplete
Исходный код проекта: https://github.com/matan-h/pyhash-complete

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

У популярной библиотеки 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)

Читать полностью…

Zen of Python

Один из мейнтейнеров фреймворка Pydantic AI (это популярный Python-инструмент для создания ИИ-агентов, который гарантирует строгую типизацию и валидацию данных при общении с нейросетями) написал большой пост о наболевшей проблеме.

За последние 15 дней команда получила 136 пулл-реквестов. Из них приняли только 39, а 97 пришлось закрыть. Причина — это низкокачественный, сгенерированный нейросетями код, который авторы даже не пытались проверить.
​
Доходит до абсурда: как только в репозитории появляется новый репорт о баге, уже через несколько минут прилетают сразу несколько бессмысленных PR с «исправлениями», которые просто скопированы из ответа Claude или ChatGPT. Это отнимает у разработчиков кучу времени на ревью и мешает развивать проект.
​
Как они планируют с этим бороться:

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

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

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

22 апреля в Москве пройдет конференция по искусственному интеллекту «MLечный путь»

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

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

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

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

Это #партнёрский пост

Читать полностью…

Zen of Python

Создайте своего бота-голосового помощника под управлением ИИ на онлайн-курсе: «Диалоговые боты и голосовые помощники»

Записывайтесь на открытый вебинар — познакомьтесь с программой обучения и преподавателями!

Вебинар: «Телеграм-бот с искусственным интеллектом на Python»
13 апреля в 20:00 мск

На открытом уроке вы узнаете:
🔘как зарегистрировать бота через BotFather и получить Телеграм-токен;
🔘что такое LLM-API (на примере бесплатных аналогов) и как его подключить;
🔘структуру простого Python-проекта: библиотека aiogram + openai;
🔘код: обработчик сообщений, который передаёт текст в LLM и возвращает ответ пользователю;
🔘запуск бота локально.

Записывайтесь ➡️ OTUS.RU

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Zen of Python

Несколько топовых 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)

Читать полностью…

Zen of Python

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

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

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

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

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Публичный API pandas теперь на 100% покрыт аннотациями типов. За год команды Quansight Labs и Pyrefly перебрали кодовую базу и подняли покрытие с 47% до максимума, ориентируясь на проверки статического анализатора.
​
Что это меняет на практике:

— ваши IDE вроде VSCode и PyCharm начнут выдавать адекватный автокомплит и точные подсказки по методам;
​
— статические анализаторы смогут ловить баги с неправильными аргументами ещё до запуска пайплайна.

​От себя могу добавить только одно: наконец-то.

@zen_of_python

Читать полностью…

Zen of Python

Победителями премии Тпрогер 🐀становятся...

Здесь играет барабанная дробь и интригующая музыка... Вам нужно только выждать драматическую паузу перед объявлением победителей — в каждой номинации он один, и определяется большинством голосов. Готовы?

В номинации «Продукт года» золотая мышь достается компании:
🐀NetVision за платформу интеллектуального мониторинга СИМ.

В номинации «Облачный продукт года» побеждает компания:
🐀Гравитон с паком виртуализации «Гелиус»

Звание «IT-ивент года» вручается компании:
🐀Островок! за О!Хакатон

И в категории «Дизайн года» первое место занимает компания:
🐀AcademiaDev за интерактивную инсталляцию.

Каждый ваш лайк, голос влияли на исход премии. Давайте поддержим всех — ставьте 🏆участникам, которые хоть и не заняли призового места, но точно остались в сердечке.
И 🔥, если хотите аналогичных активностей и готовы выбирать еще!

Читать полностью…

Zen of Python

Опубликован черновик PEP 827 (Type Manipulation). Он предлагает добавить в Python возможности из TypeScript, чтобы не дублировать код при описании моделей.

Допустим, у вас есть класс User для базы данных, где есть id, email, username и created_at. Вам нужен класс UserUpdate для API, где id и created_at менять нельзя, а остальные поля необязательны, можно обновить только email.

Сейчас приходится вручную писать новый класс и дублировать поля.
С PEP 827 можно будет сгенерировать его одной строкой:

UserUpdate = Partial[Omit[User, "id" | "created_at"]]


— Omit убирает лишние поля из базового класса
— Partial делает оставшиеся необязательными
— Если тип email изменится в главной модели, он автоматически обновится и в UserUpdate

Вместо копипасты под каждый эндпоинт (Create, Update, Read) вы описываете одну модель и генерируете производные. И всё это работает на уровне статического анализа. Черновик нацелен на Python 3.15.

@zen_of_python (теперь и в Max)

Читать полностью…

Zen of Python

Последний день голосования в Tproger Award!

Две недели, 16 компаний, 4 номинации — спасибо, что читали, участвовали и лайкали. И отдельное спасибо, что голосовали! Вообще не представляем, что вы там наделали, уже узнать хочется!

Давайте сегодня зафиналим голосовалку и раздадим по максимуму золотых мышей. Интересно, расстановка сил сможет измениться за один день?

Если потеряли, то номинации вот:
— Продукт года
— Облачный продукт года
— ИТ-ивент года
— Дизайн года

Только сайт не положите, очень просим 🙏

Пойти голосовать: https://tprg.ru/bWfy

@zen_of_python (теперь и в Max)

Читать полностью…

Zen of Python

Устали от уймы API-ключей и танцев с бубном вокруг OpenAI, Claude и Gemini?

Снять эту головную боль может один API-роутер.
Разбираемся на Tproger, почему три разных API могут тормозить ваш проект и как подключить GPT-5.4, Claude Sonnet 4.6 и Gemini 3.1 Pro через единую точку входа без переписывания кода.

Кратко о содержании:
— Что умеет хороший роутер: fallback, балансировка, кеш, единый биллинг.
— Пошаговый гайд подключения через одни API на Python и Node.js.
— Реальный кейс: мультимодельный бот с авто-переключением за 30 минут.
— Подводные камни: контекстные окна, latency, rate limits (и как их обойти).

Читать материал: https://tprg.ru/YWhU

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Разработчик запустил первый PyPI-пакет repowise (инструмент для автоматической генерации wiki-документации по кодовой базе) и через несколько дней обнаружил три copycat-пакета, выложенных одновременно с идентичным описанием: «base intelligence ahead — performs every dimension».

Оказалось, это не просто спам-пустышки. Автор-одиночка форкнул его код (лицензия AGPL-3.0), прогнал через LLM для мелких правок, выложил под тремя разными именами без указания источника и без соблюдения условий лицензии.

Два важных тейка из обсуждения в треде:

— Про AGPL и ИИ-генерированный код. Даже если 95% нового пакета написано нейросетью, а вы внесли только 5% оригинального кода, то лицензия оригинала всё равно распространяется на весь форк. Это не меняет юридический статус AGPL. Отдельный спорный момент: код, созданный ИИ не во всех странах защищён авторским правом вообще.

— Про PyPI security. Команда безопасности PyPI разобрала репорт за 48 часов. Пакеты были удалены. Жаловаться стоит через форму malware («Report a security vulnerability»), а не через общую поддержку. Параллельно можно отправить DMCA-запрос на GitHub.

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Вышел релиз Niquests 3.18. Это современный HTTP-клиент для Python, разработка которого длится уже три года. Автор создал его как форк классической библиотеки requests, развитие которой практически остановилось.

Главная фишка Niquests в том, что это полная замена старой библиотеки. Вы можете просто написать import niquests as requests и ваш старый код, куки, авторизация и зависимости продолжат работать без изменений, но уже на новых технологиях.

Что появилось под капотом за это время:
— поддержка HTTP/2 из коробки и HTTP/3 (QUIC) при поддержке со стороны сервера;
— системное хранилище сертификатов по умолчанию (больше не нужно таскать за собой certifi);
— встроенные асинхронные методы (Async/Await);
— поддержка WebSocket и SSE через единый API;
— кастомные настройки DNS (over HTTPS, TLS, QUIC).

В реальных бенчмарках на тысячу запросов Niquests показывает среднее время в 0,55 секунды, обгоняя aiohttp (1,35 сек) и httpx (2,08 сек). Отличное обновление, если вам нужны современные стандарты протоколов, но нет желания переписывать всю сетевую логику в старых проектах.

Ссылка на репозиторий: https://github.com/jawah/niquests

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Django получил новый REST-фреймворк: быстрее, строже и без привязки к моделям

Для Django долгое время было два основных пути: DRF с его сериализаторами, привязанными к моделям, и django-ninja, который пытался повторить FastAPI, но в итоге принёс свои ограничения. Ни один из них не давал полной типизации, гибкости в выборе моделей данных и внятной OpenAPI-спеки из коробки.

Новый фреймворк, созданный core-разработчиком CPython, предлагает альтернативу. Его ключевые особенности:
— производительность на уровне FastAPI (всего на 30% медленнее без учёта БД);
— полная типизация, но без навязывания;
— поддержка любых моделей: pydantic, msgspec, dataclasses, TypedDict и даже собственных сериализаторов;
— строгая валидация ответов в dev-режиме — OpenAPI-спека всегда соответствует реальности;
— нативная работа с sync и async;
— стриминг (SSE, JsonLines) на ASGI;
— расширяемые контроллеры-классы, которые наследуют обычные Django View.

Проект уже содержит удобные инструменты для тестирования (polyfactory, schemathesis, tracecov) и позиционируется как AI-first: есть скилы для миграции с django-ninja, llms-full.txt и интеграции с агентами.

Подробности, примеры кода и философия разработки в статье: https://habr.com/ru/articles/1017036/

Читать полностью…

Zen of Python

Частая ошибка начинающих в анализе данных — перебирать строки таблиц через обычные циклы 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

@zen_of_python (теперь в VK и Max)

Читать полностью…

Zen of Python

Вышло крупное обновление для 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)

Читать полностью…

Zen of Python

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)

Читать полностью…

Zen of Python

Оказывается, есть отдельная команда 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)

Читать полностью…

Zen of Python

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

Читать полностью…

Zen of Python

Разработчик провёл масштабное исследование всех способов ускорить 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)

Читать полностью…

Zen of Python

Вышел релиз 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

Читать полностью…

Zen of Python

Если вы используете httpx в своих проектах, обратите внимание на изменения в репозитории. На днях мейнтейнер библиотеки полностью закрыл доступ к issues и discussions на гитхабе.

Причина блокировки оказалась не технической. Автор объяснил свое решение тем, что больше не хочет поддерживать онлайн-среду с «абсурдно искаженным гендерным представительством».
​
Чем это грозит на практике:
— библиотека не получала новых релизов уже больше года, новых скорее всего уже тоже не будет;
— разработчики потеряли возможность сообщать о багах и обсуждать код.
​
Поскольку httpx часто применяется для асинхронных запросов, на реддите уже активно обсуждают будущее проекта. Многие пользователи не понимают, как поддерживать свои продукты дальше без обратной связи от автора.
​
Пока непонятно, появится ли полноценный форк или сообществу придется переходить на альтернативы вроде aiohttp. Советую иметь в виду при выборе библиотеки в своих проектах.

@zen_of_python (теперь и в Max)

Читать полностью…

Zen of Python

Классика

@zen_of_python (теперь и в Max)

Читать полностью…

Zen of Python

Senior-level решение задачи

@zen_of_python (теперь и в Max)

Читать полностью…

Zen of Python

Финал Tproger Awards уже близко! 🔥

Заканчивается февраль, и наше голосование за лучшие релизы года тоже подходит к концу.

К тем, кто вручил участникам золотые мыши, вопросов нет. Тех, кто еще не посещал премию, зовем предпоследний раз! Не упускайте возможность выбрать лучшую компанию года.

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

Голосуйте: https://tprg.ru/QtJE

Читать полностью…
Subscribe to a channel