
Как устроен CPython: байткод, интерпретатор и dis
Разбираем, во что компилятор CPython превращает исходник, как стековая виртуальная машина его исполняет и что показывает модуль dis на реальных примерах.

Разбираем, во что компилятор CPython превращает исходник, как стековая виртуальная машина его исполняет и что показывает модуль dis на реальных примерах.

Один переименованный аргумент — и после pip install --upgrade у пользователей падает прод. Разбираем, какие изменения в публичном API Python-библиотеки считаются ломающими и как их избегать.

Скрипт с multiprocessing.Pool на Windows уходит в бесконечный форк, на Linux течёт память, а в Jupyter молча зависает. Разбираем ошибки, из-за которых пул процессов ведёт себя не так, как задумано.

Аннотации перестают помогать, когда проект перерастает несколько модулей. Разбираем, где выбирать Protocol вместо ABC, как TypeVar связывает типы и во что упирается mypy на больших кодовых базах.

Как зашифровать бэкапы на бою и не превратить их в мусор при первом же большом файле, ротации ключа или падении процесса посреди записи. Разбор ошибок на cryptography 42.x.

Скачать 500 файлов по одному — полчаса ожидания сети. Разбираем, когда потоки реально ускоряют загрузку в Python, где начинается предел и чем пул отличается от asyncio на практике.

Когда нужен hashlib, когда hmac, а когда bcrypt или Argon2 — разбираем, чем эти инструменты отличаются и где ошибаются чаще всего.

Модель вернула JSON с лишним полем и строкой вместо числа — код упал в проде. Разбираем, как проверять ответ Pydantic-схемой и перезапрашивать модель с текстом ошибки, пока не получите валидную структуру.

Неиспользуемые функции, забытые ветки и импорты копятся годами. Разбираем, чем их искать в Python 3.11+, почему статический анализ ошибается и как удалять код, не роняя прод.

Какой алгоритм сжатия выбрать под задачу, чем zstd отличается от gzip на практике и какие ошибки убивают степень сжатия. Чек-лист для тех, кто уже пишет на Python 3.12.

Плотный list comprehension и цепочка тернарных операторов кажутся элегантными, пока их не приходится править через полгода. Разбираем, где однострочник экономит время, а где крадёт его у следующего читателя.

Потоковая выдача токенов кажется простой: читаешь чанки в цикле и печатаешь. На практике теряются куски JSON, зависают соединения и текут коннекты. Разбираем частые ошибки.