Python Web & Scripts — Django, FastAPI, скрипты

<b>Скрипт должен падать предсказуемо: 6 проверок до запуска в прод</b>

<b>Скрипт должен падать предсказуемо: 6 проверок до запуска в прод</b>

Если python-скрипт живёт дольше одного запуска, его надо проверять не “на глаз”, а по схеме. Иначе он ломается там, где не ждёшь: на пустом файле, на кривой кодировке, на повторной записи, на таймауте API.

— Сначала проверяй вход: файл существует, формат тот, кодировка читается, обязательные поля не пустые.
— Потом ограничивай объём: лимит на размер файла, число строк, глубину рекурсии, размер ответа от внешнего сервиса.
— Любой внешний вызов оборачивай в retry + timeout, но retry делай только для идемпотентных операций.
— Логи пиши так, чтобы по одному сообщению было ясно: что обрабатывали, на каком шаге упали, какой был payload.
— Ошибки дели на ожидаемые и аварийные: первые обрабатывай, вторые пусть валят задачу с понятным trace.

Отдельная ловушка — временные файлы и частичные записи. Сначала пишешь в tmp, потом атомарно переименовываешь; иначе после падения у тебя остаётся “почти готовый” результат, который кто-то примет за валидный.

И ещё: любой скрипт без теста на один плохой кейс — это не автоматизация, а надежда. Лучше один раз зашить проверки, чем потом вручную искать, где именно всё съехало.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.