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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Pyrefly дорос до беты. Это быстрый type checker и языковой сервер для Python, написанный на Rust: он анализирует типы в проекте и одновременно обслуживает IDE-фичи вроде перехода к определению, подсветки типов и поиска по символам. Подходит, если вы активно используете type hints и хотите получать постоянную проверку типов без ощутимых тормозов даже на больших кодовых базах.​

Быстрый старт в проекте выглядит так:
pip install pyrefly
pyrefly init
pyrefly check --summarize-errors

pyrefly init создаст или обновит конфиг (pyproject.toml или pyrefly.toml), а pyrefly check прогонит типизацию по проекту и покажет сводку ошибок.​

Простейший пример, который Pyrefly сразу подсветит:
def add(a: int, b: int) -> int:
return str(a + b)

Аннотация говорит, что функция возвращает int, но фактически возвращается str, и Pyrefly отметит это как ошибку типов. Дальше можно подключить его как сервер языка в редакторе (через LSP или готовое расширение) и получать те же проверки прямо во время набора кода.

Статус беты говорит, что в принципе уже можно начинать использовать в своих проектах. Если уже пробовали — поделитесь мнением в комментариях, пожалуйста.

@zen_of_python
👍4
Новый инструмент для поиска мертвого кода в Python-проектах, называется Skylos. Автор заявляет проблему: статические анализаторы часто ругаются на вещи, которые на самом деле используются — например, роуты или хендлеры, которые вызываются извне. И пытается её решить через сканер, который учитывает специфику фреймворков.

Skylos понимает, что функция с декоратором @app.route может быть вызвана HTTP-запросом, даже если в коде она нигде не вызывается напрямую. Использует систему confidence levels (0-100) — чем ниже значение, тем больше потенциально мертвого кода покажет, включая роуты и хелперы.

Как работает
Анализирует AST, находит неиспользуемые функции, классы, импорты. Для веб-фреймворков применяет пониженный confidence (по умолчанию 60, для роутов — 20). Тестовые файлы исключает автоматически, потому что их вызовы не очевидны статически. Можно запускать в интерактивном режиме и выбирать, что удалять — использует LibCST, поэтому правильно обрабатывает многострочные импорты, алиасы, декораторы и async-функции.

Запуск
pip install skylos
skylos /path/to/project # базовый анализ
skylos --confidence 20 app.py # показать роуты
skylos --interactive /project # выбрать, что удалить
skylos run # веб-интерфейс на localhost:5090


В выдаче — тип находки, confidence score, местоположение. Результаты в benchmarks: быстрее Vulture, лучше recall, чем у Flake8/Ruff. Но как и любой статический анализатор, не ловит getattr() или динамические импорты.

Код в репо, на картинке пример выдачи результатов анализа. Есть также плагин для VS Code.

@zen_of_python
41
На реддите обсуждают кто какую библиотеку использует для отрисовки графиков в Python.

Сделал краткую выжимку и подборку библиотек:
🔘Matplotlib — базовый стандарт;
🔘Bokeh — интерактивные графики и дашборды в браузере;
🔘Plotly.py — интерактивные 2D/3D‑графики и отчёты;
🔘Seaborn — красивые статистические графики поверх Matplotlib;
🔘PyQtGraph — быстрые интерактивные графики и GUI на Qt, хорошо подходит для real‑time;
🔘Plotnine — ggplot2‑подобный, декларативный стиль построения графиков;
🔘HoloViews — «данные сначала», декларативные интерактивные визуализации;
🔘hvPlot — интерактивный .hvplot() для pandas/dask/xarray.

На картинке — сравнение по количеству звёзд на GitHub.​

В самом треде для интерактивных графиков с зумом/hover/tooltip чаще всего советуют Plotly и Bokeh, а Matplotlib — если хватает статических картинок.​

@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🦄21
Есть готовый шаблон FastAPI‑NiceGUI‑Template: фуллстек‑проект целиком на Python с FastAPI на бэкенде, NiceGUI на фронтенде, PostgreSQL в базе и SQLModel в качестве ORM. Он даёт асинхронный API c Pydantic‑валидацией, серверный компонентный UI, работу с БД через Docker Compose и уже настроенную JWT‑аутентификацию.​

Основные фичи:​
🔘CRUD по сущностям (items);
🔘пользователи с ролями (обычный и суперюзер) и разным уровнем доступа;
🔘динамический UI, который подстраивается под права залогиненного пользователя;
🔘автодоки API через Swagger UI и ReDoc.​

Использовать шаблон удобно, когда нужно быстро собрать внутреннюю админку, дашборд или демо для ML/данных и при этом остаться в одном стеке на Python, без отдельного React/Vue‑фронта и Node.js‑сборки. Для старта достаточно склонировать проект, поднять PostgreSQL через Docker Compose и запустить приложение.

Код в репо, подробнее в блоге автора шаблона, на видео демо.

@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3🤣2👍1
Канал по нейронкам, который часто пересекается с Python по темам: @neuro_channel

Веду его тоже я, так что если вам нравятся посты в Zen of Python в последние недели, то буду рад видеть вас и в «Нейроканале».

Три примечательных поста:

1️⃣Про утилиту, которая автоматически снимает цензуру (safety alignment) с трансформерных языковых моделей без дообучения и ручного тюнинга.

3️⃣Разбор сборки GPT‑OSS с нуля на чистом Python, без PyTorch и без GPU: последовательно с объяснениями от Softmax и RMSNorm до Grouped Query Attention.

3️⃣Залипательный ролик с анимацией, как нейросеть «думает» в латентном пространстве в процессе обучение распознаванию цифр.

Плюс новости о выходе новых моделей, чтобы не пропустить ничего важного. Про ту же Kimi K2 я писал ещё 7го ноября, до того как это стало мейнстримом. Сейчас вон даже в Perplexity добавили её, рядом с GPT 5.1, хотя это открытая модель.

@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
2