Zen of Python
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Mostrar más📈 Análisis del canal de Telegram Zen of Python
El canal Zen of Python (@zen_of_python) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 718 suscriptores, ocupando la posición 7 007 en la categoría Tecnologías y Aplicaciones y el puesto 35 217 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 718 suscriptores.
Según los últimos datos del 27 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -91, y en las últimas 24 horas de -3, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 6.24%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.26% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 168 visualizaciones. En el primer día suele acumular 797 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 1.
- Intereses temáticos: El contenido se centra en temas clave como github, rust, pip, api, install.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 28 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
# Было — исключения неявные
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
winget install servy
choco install -y servy
scoop install servy
📎 Код на GitHub, пример для Python, на видео демо
@zen_of_python# 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_pythonuv tool install ty@latest
Или VS Code extension: ищите «ty» в маркетплейсе.
Сейчас Beta — команда Astral уже использует его в продакшне. Stable планируется в следующем году. В планах — поддержка Pydantic, Django и type-aware линтинг в связке с Ruff.
📎 GitHub, пост в блоге, на видео демо скорости работы
@zen_of_pythonpip install kreuzberg
📎 GitHub: https://github.com/kreuzberg-dev/kreuzberg
На картинке сравнение с альтернативами.
@zen_of_pythonrandom.seed(5) и random.seed(-5) дают одинаковую последовательность случайных чисел.
➡️ Как обнаружилось
Карпати работал над nanochat и хотел использовать знак seed'а для разделения train/test данных. Получил баг: train и test оказались идентичными.
➡️ Почему так
В исходниках CPython (_randommodule.c, строка 321) явно вызывается abs():
// "This algorithm relies on the number being unsigned"
n = PyNumber_Absolute(arg);
Знак просто отбрасывается.
➡️ Баг или фича?
Формально — не баг. Документация гарантирует только то, что одинаковый seed даст одинаковую последовательность. Но не гарантирует, что разные seed'ы дадут разные последовательности.
Карпати считает это ошибкой дизайна: знаковый бит мог бы удвоить пространство seed'ов. Простое решение: n -> 2*abs(n) + int(n < 0).
➡️ Что дальше
🔘Не полагаться на отрицательные seed'ы как на «другие»
🔘В NumPy отрицательные seed'ы вызывают ошибку — там строже
🔘Открыт issue на GitHub для обновления документации
import random
random.seed(42)
print(random.random()) # 0.6394267984578837
random.seed(-42)
print(random.random()) # 0.6394267984578837
@zen_of_python