Zen of Python
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Показати більше📈 Аналітичний огляд Telegram-каналу Zen of Python
Канал Zen of Python (@zen_of_python) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 19 271 підписників, посідаючи 6 967 місце в категорії Технології та додатки та 35 078 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 19 271 підписників.
За останніми даними від 04 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на 19, а за останні 24 години на 7, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 12.73%. Протягом перших 24 годин після публікації контент зазвичай збирає 5.61% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 2 454 переглядів. Протягом першої доби публікація в середньому набирає 1 082 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 11.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як github, rust, pip, api, install.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL”
Завдяки високій частоті оновлень (останні дані отримано 05 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
---
name: my-skill-name
description: What this skill does
---
# Instructions for Claude...
➡️ Зачем это вам
Если используете Claude для повторяющихся задач — Skills позволяют один раз описать процесс и использовать повторно. Документные skills (PDF, DOCX, XLSX) уже готовы. Для собственных — есть шаблон и примеры.
📎 Репозиторий
@zen_of_python# Было: работало с warning'ом
df["foo"][df["bar"] > 5] = 100
# Стало: молча НЕ работает
# Правильно:
df.loc[df["bar"] > 5, "foo"] = 100
🔘Проверки dtype:
# Было
if df['col'].dtype == object: ...
# Стало
if pd.api.types.is_string_dtype(df['col']): ...
Как мигрировать
1️⃣Обновитесь до pandas 2.3, уберите warnings
3️⃣Включите в тестах: pd.options.future.infer_string = True
3️⃣Найдите dtype == object и цепочечные присваивания
4️⃣Обновляйтесь до 3.0
Требования: Python 3.11+, NumPy 1.26.0+, PyArrow 13.0.0+
Для production лучше подождать пару недель — релиз свежий.
📎 Changelog, GitHub
@zen_of_pythonbytes.replace() из Python на CUDA — для обработки многогигабайтных файлов прямо на GPU без передачи данных на CPU.
Бенчмарки (RTX 3090)
🔘1 MB: 1,09x (почти одинаково)
🔘5 MB: 1,80x
🔘50 MB: 3,43x
🔘100 MB: 4,37x
Среднее ускорение: 3,45x, пропускная способность: 0,79 GB/s
Ключевые фичи
🔘Точная семантика Python (leftmost, non-overlapping replacements)
🔘Streaming mode — файлы больше VRAM обрабатываются чанками
🔘Session API — несколько замен подряд без переинициализации
🔘Thread-safe
Пример
from cuda_replace import CReplaceLib
lib = CReplaceLib()
result = lib.unified(data, b"pattern", b"replacement")
# Для больших файлов
cleaned = lib.gpu_streaming(huge_data, b"old", b"new", chunk_size=256*1024*1024)
➡️ Зачем это нужно
Автор делал GPU-компрессию и хотел убрать лишние трансферы между CPU и GPU. Другие применения: санитизация логов, обработка сетевых пакетов, любые задачи с поиском/заменой в больших бинарных данных.
И давайте признаем, это просто круто, search-replace на CUDA блин :)
📎 Код на GitHub
@zen_of_pythonuv + ruff + httpx + pytest — этот стек набрал больше всего голосов. Poetry и venv уходят в прошлое, uv забирает всё: и виртуалки, и зависимости, и запуск.
А вот в тайп-чекинге единства нет. Одни ждут pyright, другие пробуют ty или pyrefly. Ruff сам по себе типы не проверяет, нужен отдельный инструмент.
Что ещё упоминают
🔘pydantic — почти как стандарт для валидации
🔘direnv — автоматическая активация окружения при входе в папку
🔘pandas остаётся дефолтом, но для больших данных смотрят на PySpark/Polars
Для старта нового проекта
uv init myproject
cd myproject
uv add --dev ruff pytest
Это готовый рецепт, которого пока что придерживается большинство в сообществе.
А что вы используете? Кто-то уже пробовал ty?
@zen_of_pythonpip install dbgpu
dbgpu lookup "GeForce RTX 4090"
from dbgpu import GPUDatabase
db = GPUDatabase.default()
spec = db["GeForce RTX 4090"]
# или нечёткий поиск: db.search("4090")
Поддерживает NVIDIA, AMD, Intel, ATI, 3dfx, Matrox — всё, что есть на TechPowerUp.
Внутри ~50 полей на карту: архитектура, техпроцесс (нм), транзисторы, die size, частоты (base/boost/memory), память (тип, объём, шина, bandwidth), шейдерные юниты, TMU, ROP, SM, tensor/RT cores, кэши L1/L2, TDP, размеры платы, разъёмы питания и видеовыходы, версии API (DirectX, OpenGL, Vulkan, OpenCL, CUDA, Shader Model), производительность FP16/FP32/FP64.
В релизах на GitHub лежат готовые JSON/CSV/PKL. Последний полный билд — декабрь 2025.
Можно спарсить свежую базу самостоятельно:
pip install dbgpu[build]
dbgpu build --manufacturer NVIDIA --start-year 2023
Rate limit 4 req/min. Полный проход по всем GPU — 10+ часов.
📎 Код на GitHub
@zen_of_python[[fill]align][sign][#][0][width][grouping_option][.precision][type]
И когда видишь f'{value:0>10.2f}' — не сразу понятно, что где. Визуализатор разбирает строку на части и показывает, за что отвечает каждый символ.
Примеры того, что можно форматировать
f'{3.14159:.2f}' # → '3.14'
f'{"test":#>10}' # → '######test'
f'{12345:,}' # → '12,345'
f'{-42:010}' # → '-000000042'
Выравнивание, заполнение, знаки, разделители тысяч, точность — всё в одной строке.
📎 Код на GitHub, демо на сайте
@zen_of_pythonbool наследуется от int, поэтому True и False — это полноценные объекты — целые числа. Каждый объект в CPython несёт накладные расходы:
🔘PyObject header — счётчик ссылок + указатель на тип (~16 байт на 64-бит)
🔘PyLongObject — структура для хранения целых чисел произвольной длины (~12 байт дополнительно)
Можно проверить самостоятельно:
import sys
print(sys.getsizeof(True)) # 28
print(sys.getsizeof(False)) # 28
Почему так расточительно?
Python оптимизирован для удобства и гибкости, а не для экономии памяти. Зато True и False — синглтоны (существует только по одному экземпляру каждого), так что в реальных программах это не создаёт проблем.
Для компактного хранения множества булевых значений используют numpy.array с dtype=bool (1 байт на значение) или битовые массивы.
@devs_booksfrom calgebra import day, time_of_day, HOUR
# Рабочие часы
work_hours = day("weekday") & time_of_day(start=9*HOUR, duration=8*HOUR)
# Календари команды
team = alice | bob | charlie
# Свободное время для встречи от 2 часов
free = (work_hours - team).filter(hours >= 2)
Операторы: | (объединение), & (пересечение), - (разность), ~ (дополнение). Ленивые вычисления — выражение выполняется только при слайсинге.
➡️ Чем отличается от аналогов
🔘icalendar / ics.py — только парсят .ics, calgebra добавляет запросы и композицию
🔘gcsa — CRUD для Google Calendar, calgebra даёт set-операции поверх
🔘dateutil.rrule — генерирует повторения, но не умеет пересекать/вычитать таймлайны
➡️ Фичи
🔘Поддержка RFC 5545 (повторяющиеся события)
🔘Фильтры по длительности, метаданным, кастомным атрибутам
🔘Импорт/экспорт .ics через file_to_timeline и timeline_to_file
🔘Интеграция с Google Calendar
🔘Type hints для IDE и агентов
➡️ Кому пригодится
Разработчикам scheduling-фич, интеграций с календарями, систем проверки availability. Автор отмечает, что API удобен для ИИ-агентов благодаря композируемости и типизации.
📎 Код на GitHub, на видео демо работы ИИ-агента с calgebra
@zen_of_pythonn_components — сколько компонент оставить. Обычно либо перебор через GridSearch, либо «ну возьму 50, должно хватить». Библиотека randomized-svd решает проблему автоматически.
🔘Сама определяет, где заканчивается сигнал и начинается шум
🔘Отрезает лишнее без ручного подбора
🔘Один проход вместо кросс-валидации
➡️ Бонус для больших данных
PCA требует центрирования матрицы. Если матрица разреженная (sparse), центрирование делает её плотной — память взрывается. Библиотека умеет считать PCA на sparse-матрицах без этой проблемы.
Использование
from randomized_svd import RandomizedSVD
rsvd = RandomizedSVD(n_components=100, rank_selection='auto')
X_reduced = rsvd.fit_transform(X) # сама выберет сколько компонент нужно
Drop-in замена sklearn — работает в Pipeline.
📎 Код на GitHub, доки
@zen_of_python# Было — исключения неявные
import pandas as pd
df = pd.read_csv("data.csv")
# Стало — нужно обработать все возможные ошибки
from pyrethrin.shields import pandas as pd
from pyrethrin import match, Ok
result = match(pd.read_csv, "data.csv")({
Ok: lambda df: process(df),
OSError: lambda e: log_error("File not found", e),
pd.ParserError: lambda e: log_error("Invalid CSV", e),
# ... остальные
})
➡️ Как узнали какие исключения бросает pd.read_csv?
Автор написал отдельный инструмент Arbor для статического анализа. Для read_csv он прошёл 5,623 функции и нашёл 1,881 raise-statement — 35 типов исключений. Топ: ValueError (442), TypeError (227), NotImplementedError (87).
➡️ Философия
🔘Нет unwrap() — никаких escape hatch, обрабатывай всё
🔘Проверка exhaustiveness в момент вызова, не импорта
🔘Работает с нативным match-case (Python 3.10+)
📎 GitHub, Arbor, PyPI
@zen_of_pythonSession management, который абстрагирует DPI — это то, чего не хватало PyAutoGUI📎 Код на GitHub, на видео демо @zen_of_python
«Нам казалось, что мы нормально разобрались с потоками. Многоядерных процессоров тогда всё равно ни у кого не было» — Гвидо ван Россум ➡️ Когда это стало проблемой Середина 2000-х: производители чипов упёрлись в потолок частоты и начали наращивать ядра. Внезапно concurrency без parallelism — это ограничение, а не фича. ➡️ Что меняется Спустя 30+ лет процесс удаления GIL наконец запущен. Python сможет выполнять потоки параллельно. Кстати, если хочется parallelism прямо сейчас — можно использовать альтернативные интерпретаторы (например, на Rust), которые уже масштабируются на все ядра. @zen_of_python
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
