Zen of Python
19.9K subscribers
1.31K photos
193 videos
38 files
3.37K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
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​

Как попробовать
uv tool install ty@latest

Или VS Code extension: ищите «ty» в маркетплейсе.

Сейчас Beta — команда Astral уже использует его в продакшне. Stable планируется в следующем году. В планах — поддержка Pydantic, Django и type-aware линтинг в связке с Ruff.

📎 GitHub, пост в блоге, на видео демо скорости работы

@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥133
Программисты из Tproger подготовили для вас новогоднее бинго. Заканчивайте работу, пора позалипать на этот шедевр и найти все пасхалки.

@zen_of_python
🔥1😍1
Clean Architecture в Python: не догма, а инструмент — разбор от разработчика с 30-летним стажем

Макс Кирхофф взял интервью у Сэма Кина — автора книги «Clean Architecture with Python». Сэм прошёл путь от стартапов до AWS и делится практическим подходом к архитектуре.

Ключевые моменты
🔘Clean Architecture — не «всё или ничего», а набор принципов под твой контекст
🔘Главная ценность — грамотное управление зависимостями и чёткая доменная модель
🔘Хорошая архитектура = тестируемый код (связь прямая)
🔘Бонус: чистая архитектура упрощает работу с AI-ассистентами при написании кода

Почему важно
Python любят за прагматику — и можно сохранить её, не скатываясь в спагетти-код. Архитектурные принципы адаптируются, а не навязываются.

📎 Видео на YouTube или в этом посте

@zen_of_python
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Весь год вы носили футболки и джинсы… Хватит!

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

Осторожно, эти наряды могут наповал сразить ваших коллег…

Реклама
👍4🤣31
Tryolabs опубликовали 11-й ежегодный топ Python-библиотек

Команда перелопатила сотни проектов и отобрала те, что реально полезны в продакшене. Критерии: практическая польза (не хайп), активная поддержка, понятная ценность для разработчика. AI-библиотек могло быть 90%, но список специально разделили на две части.

➡️ Категория «Не ИИ»

0️⃣ty — тайпчекер на Rust от Astral (авторы ruff и uv). Инкрементальный анализ на уровне функций — меняешь одну функцию, перепроверяется только она

1️⃣complexipy — измеряет когнитивную сложность кода (не цикломатическую). Есть GitHub Action, pre-commit хук и расширение для VS Code

3️⃣Kreuzberg — извлекает данные из 50+ форматов, работает на Rust, биндинги для Python/TS/Ruby/Go. Есть CLI, REST API и MCP-сервер

3️⃣throttled-py — rate limiting с пятью алгоритмами (Fixed Window, Token Bucket, GCRA и др.), поддержка Redis и async

4️⃣httptap — waterfall-визуализация HTTP-запросов: DNS, TLS handshake, время ответа — всё по фазам

5️⃣fastapi-guard — security-мидлварь для FastAPI: IP-фильтры, геоблокировка, детект SQL-инъекций

6️⃣modshim — оверлей модификаций поверх чужих модулей без monkey-patching и форков

7️⃣Spec Kit — спецификации как источник истины для AI-ассистентов. Пишешь spec → AI генерит код по плану, а не угадывает (и всё же что-то про ИИ — прим. ред.)

8️⃣skylos — поиск мёртвого кода + детект уязвимостей, включая паттерны vibe-coded кода

9️⃣FastOpenAPI — автогенерация OpenAPI-документации для Flask, Falcon, Tornado, Django и ещё 4 фреймворков

➡️ Категория «AI/ML/Data»

0️⃣MCP Python SDK + FastMCP — стандарт подключения LLM к внешним данным (Anthropic)

1️⃣TOON — Token-Oriented Object Notation, JSON-like, но YAML-стиль для вложенности + CSV-формат для массивов. Экономия 40-60% токенов, заголовки с длиной помогают LLM валидировать структуру

3️⃣Deep Agents — агентный фреймворк с planning через write_todos/read_todos, файловой системой (ls, read_file, edit_file), спавном субагентов

3️⃣smolagents — агенты в ~1000 строк кода. LLM пишет действия как Python, а не JSON → на 30% меньше шагов на бенчмарках. Поддержка любых LLM, E2B/Docker/WASM sandbox

4️⃣LlamaIndex Workflows — event-driven архитектура: степы + события вместо DAG. Async-first, автовывод типов из аннотаций, стриминг результатов, чекпоинты для возобновления

5️⃣Batchata — единый интерфейс для batch API Anthropic/OpenAI/Gemini. Экономия 50%, лимиты по стоимости, dry-run для оценки расходов, Pydantic-валидация выходов

6️⃣MarkItDown — PDF/DOCX/PPTX/Excel/HTML/аудио → Markdown. Сохраняет структуру (заголовки, таблицы, списки)

7️⃣Data Formulator — визуализация через natural language + drag-n-drop. Указываешь поля которых ещё нет («profit_margin») → AI генерит трансформацию

8️⃣LangExtract — извлечение структурированных данных с точной привязкой к позиции в тексте (character offset). Критично для медицины/юридики. Few-shot, чанкинг для длинных документов, HTML-визуализация

9️⃣GeoAI — мост между PyTorch/Transformers и геоданными. Поиск спутниковых снимков → подготовка датасета → обучение → инференс → визуализация через Leafmap

@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1162
pyreqwest — новый HTTP-клиент на Rust для Python. GIL-free, HTTP/2 из коробки, sync и async с одинаковым API. Автор — тот же разработчик, который открыл issue #3215 в httpx о 10x просадке производительности при конкурентных запросах.

Зачем переходить с httpx
httpx/httpcore имеют давние проблемы с connection pooling — при 20 конкурентных запросах httpx в 10+ раз медленнее aiohttp. Эти баги висят годами. pyreqwest решает их на уровне архитектуры, потому что connection pool реализован на Rust.

➡️ Если httpx работает — можно не трогать. Но в высоконагруженных системах он станет бутылочным горлышком.

Фичи
🔘HTTP/1.1 и HTTP/2 (у aiohttp нет HTTP/2)
🔘Автодекомпрессия: zstd, gzip, brotli, deflate
🔘TLS через rustls
🔘Connection pooling, стриминг, multipart
🔘Куки, прокси, редиректы, таймауты
🔘Полные type hints, zero Python-зависимостей
🔘Встроенный мок для тестов + подключение к ASGI напрямую

Быстрый старт:
# uv add pyreqwest

from pyreqwest.client import ClientBuilder, SyncClientBuilder

async def example_async():
async with ClientBuilder().error_for_status(True).build() as client:
response = await client.get("https://httpbun.com/get").query({"q": "val"}).build().send()
print(await response.json())

def example_sync():
with SyncClientBuilder().error_for_status(True).build() as client:
print(client.get("https://httpbun.com/get").query({"q": "val"}).build().send().json())


📎 Код на GitHub

@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Вышел Gazetteer — офлайн геокодер на Python, который не врёт на границах

Небольшое напоминание, зачем это вообще нужно:
➡️ Reverse geocoding — когда есть координаты, а нужно понять что там: страна, регион, город. Нужно для аналитики доставки, логистики, геотаргетинга, обработки GPS-логов. Проблема: большинство офлайн-решений ищут ближайшую точку (nearest-neighbor). У границ это ломается — ближайший город может быть в другой стране.

Gazetteer проверяет, в какой полигон реально попадает координата. KD-Tree для быстрого отсева + валидация вхождения в polygon.

Характеристики
🔘210+ стран, 145 000+ административных границ
🔘10 000 координат за <2 секунды (<0,4 мс на точку)
🔘Single-process и multiprocessing
🔘Без внешних API — никаких лимитов и платежей
🔘Автор говорит, что начинал как toy project, но оказалось production-ready.

📎 Код на GitHub, документация на сайте

@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Servy — свежий проект для запуска Python-скриптов (на самом деле не только Python) как Windows-сервисов без боли

Проблема: нужно, чтобы Python-скрипт работал в фоне как сервис Windows: стартовал при загрузке, перезапускался при падении, писал логи. Стандартный sc работает только с приложениями, специально написанными как сервисы, а pythonw.exe + Task Scheduler — костыль без нормального мониторинга.

Решение: Servy. Указываешь путь к Python, скрипт, аргументы, рабочую директорию, env-переменные → Install → готово. Есть GUI для тех, кто не любит CLI.

Что умеет

🔘Логирование stdout/stderr с ротацией (по размеру и дате)
🔘Health checks + автоперезапуск при падении
🔘Мониторинг CPU/RAM в реальном времени
🔘Уведомления о падениях
🔘Pre/post-launch хуки
🔘Экспорт/импорт конфигов

Установка
winget install servy
choco install -y servy
scoop install servy


📎 Код на GitHub, пример для Python, на видео демо

@zen_of_python
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3