/
sarus
/
photo-processor
Обзор
Документация
Войти
/
sarus
/
photo-processor
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/photo_processor/cli.py
80 строк
2 KB
otcheskiy
feat: add simple background segmentation and mask quality
01 авг 2026, 12:34
01 авг 2026, 12:34
03c5abe
Код
Авторство
О чём код?
"""CLI-интерфейс приложения.""" from __future__ import annotations import argparse import sys from pathlib import Path from photo_processor.config import ConfigError, load_config from photo_processor.pipeline import run_pipeline def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="photo-processor", description=( "Локальная обработка новых фотографий очковых оправ " "(этап 2: фон, простая маска, bounding box)." ), ) parser.add_argument( "--input", type=Path, required=True, help="Каталог с исходными изображениями", ) parser.add_argument( "--output", type=Path, required=True, help="Корневой каталог для результатов запусков", ) parser.add_argument( "--config", type=Path, required=True, help="Путь к config.yaml", ) return parser def main(argv: list[str] | None = None) -> int: parser = build_parser() args = parser.parse_args(argv) input_dir: Path = args.input output_dir: Path = args.output config_path: Path = args.config try: config = load_config(config_path) except ConfigError as exc: print(f"Ошибка конфигурации: {exc}", file=sys.stderr) return 2 if not input_dir.exists(): print(f"Входной каталог не найден: {input_dir}", file=sys.stderr) return 2 if not input_dir.is_dir(): print(f"Путь --input не является каталогом: {input_dir}", file=sys.stderr) return 2 try: result = run_pipeline( input_dir=input_dir, output_dir=output_dir, config=config, ) except Exception as exc: # noqa: BLE001 print(f"Критическая ошибка запуска: {exc}", file=sys.stderr) return 1 print( f"Готово. Каталог запуска: {result.run_dir.path} " f"(файлов: {result.stats.total}, " f"skipped: {result.stats.skipped}, " f"review: {result.stats.reviews}, " f"errors: {result.stats.errors})" ) return 0