feat(cli): реализована обработка ошибок и graceful Ctrl+C (шаг 6)
- Зачем: - пользователь видел raw traceback при ошибках, не было корректной обработки Ctrl+C - Что: - graceful Ctrl+C: перехват KeyboardInterrupt → «Прервано пользователем» + exit 130 - пользовательские ошибки (файл не найден, пустой) — чистое сообщение без traceback - неожиданные ошибки — traceback только с --verbose, иначе подсказка - Windows CUDA диагностика интегрирована в общий обработчик ошибок - логика вынесена в _run(), обработка ошибок — в main() - Проверка: - uv run pytest -v — 60 passed, 1 skipped Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+4
-4
@@ -261,10 +261,10 @@
|
||||
|
||||
> PRD-ссылки: 6 (риски)
|
||||
|
||||
- [ ] Graceful Ctrl+C: перехват `KeyboardInterrupt` в cli.py → `console.print("Прервано пользователем", style="yellow")` + `raise SystemExit(130)`
|
||||
- [ ] Красивые ошибки: обернуть main в try/except, для пользовательских ошибок (файл не найден, ffmpeg, OOM) — вывод через rich без traceback; для неожиданных — traceback только с `--verbose`
|
||||
- [ ] `--verbose` режим: реализуется через `on_segment` callback в `transcribe()` (уже заложен в шаге 3) — печатать каждый сегмент в stderr по мере поступления
|
||||
- [ ] Проверка: неподдерживаемое расширение → warning, но попытка продолжить
|
||||
- [x] Graceful Ctrl+C: перехват `KeyboardInterrupt` в cli.py → `console.print("Прервано пользователем", style="yellow")` + `raise SystemExit(130)`
|
||||
- [x] Красивые ошибки: обернуть main в try/except, для пользовательских ошибок (файл не найден, ffmpeg, OOM) — вывод через rich без traceback; для неожиданных — traceback только с `--verbose`
|
||||
- [x] `--verbose` режим: реализуется через `on_segment` callback в `transcribe()` (уже заложен в шаге 3) — печатать каждый сегмент в stderr по мере поступления
|
||||
- [x] Проверка: неподдерживаемое расширение → warning, но попытка продолжить
|
||||
|
||||
**Критерий готовности**: ручной прогон edge cases — несуществующий файл, .txt файл, Ctrl+C во время работы.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user