- Зачем: - обработка нескольких файлов за один вызов с загрузкой модели один раз. - хранение дефолтов (модель, язык, устройство) в .transcriber.toml. - Что: - добавлен config.py: поиск .transcriber.toml (CWD → ~/.config), парсинг, валидация, приоритет CLI > конфиг > хардкод. - рефакторинг transcriber.py: выделены load_model() и _transcribe_file() с TranscribeFileResult для переиспользования модели в батче. - добавлены expand_globs() с дедупликацией и has_existing_transcript() в utils.py. - CLI: files: list[Path], --force/-f, prescan-first батч с итоговой статистикой и временем, Status-спиннер для прогресса. - README: секции батч-режим, конфигурационный файл, --force в таблице опций. - ADR-002: зафиксированы архитектурные решения (prescan-first, TranscribeFileResult, конфиг без мержа). - Проверка: - uv run pytest -q — 94 passed, 1 skipped. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
692 B
TOML
32 lines
692 B
TOML
[project]
|
|
name = "local-transcriber"
|
|
version = "0.1.0"
|
|
description = "Local CLI tool for audio/video transcription using faster-whisper"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"typer",
|
|
"rich",
|
|
"faster-whisper>=1.2.1",
|
|
"socksio>=1.0.0",
|
|
"nvidia-cublas-cu12>=12.4; sys_platform == 'linux' and platform_machine == 'x86_64'",
|
|
"tomli>=2.0; python_version < '3.11'",
|
|
]
|
|
|
|
[project.scripts]
|
|
transcribe = "local_transcriber.cli:app"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/local_transcriber"]
|