"""Точка входа: `python -m synthgen --config synthgen/examples/default.yaml --set group_size=12 --out DIR`. Пока печатает итоговые настройки (спека §3); генерация набора добавится в следующих задачах. """ import argparse import sys from dataclasses import replace from pathlib import Path from synthgen.config import ConfigError, dump_config, load_config def _parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(prog="synthgen", description="Генератор синтетического набора АРМ КА.") parser.add_argument("--config", type=Path, default=None, help="YAML с настройками") parser.add_argument( "--set", dest="overrides", action="append", default=[], metavar="КЛЮЧ=ЗНАЧЕНИЕ", help="переопределение настройки (можно повторять)", ) parser.add_argument("--out", type=Path, default=None, help="каталог результата") parser.add_argument("--force", action="store_true", help="перезаписать существующий каталог результата") return parser def main(argv: list[str] | None = None) -> int: args = _parser().parse_args(argv) try: cfg = load_config(args.config, args.overrides) except ConfigError as exc: print(f"ошибка конфигурации: {exc}", file=sys.stderr) return 2 if args.out is not None: cfg = replace(cfg, out=args.out) sys.stdout.write(dump_config(cfg)) return 0 if __name__ == "__main__": raise SystemExit(main())