MCPcopy
hub / github.com/lightningpixel/modly / cmd_batch

Function cmd_batch

tools/modly-cli/agent.py:1018–1046  ·  view source on GitHub ↗
(args: argparse.Namespace)

Source from the content-addressed store, hash-verified

1016
1017
1018def cmd_batch(args: argparse.Namespace) -> int:
1019 output_dir = Path(args.output_dir).expanduser().resolve() if args.output_dir else None
1020 if output_dir:
1021 output_dir.mkdir(parents=True, exist_ok=True)
1022 if args.manifest:
1023 jobs = _manifest_jobs(Path(args.manifest).expanduser().resolve(), output_dir, args.format)
1024 else:
1025 if not args.input_dir or output_dir is None:
1026 raise ModlyCliError("batch requires --input-dir and --output-dir, or --manifest with per-entry outputs")
1027 input_dir = Path(args.input_dir).expanduser().resolve()
1028 jobs = [(image, output_dir / f"{image.stem}.{args.format}", args.format) for image in _iter_images(input_dir)]
1029
1030 results: list[dict[str, Any]] = []
1031 failures = 0
1032 original_format = args.format
1033 try:
1034 for image, output, fmt in jobs:
1035 args.format = fmt
1036 try:
1037 results.append(_generate_one(args, image, output))
1038 except ModlyCliError as exc:
1039 failures += 1
1040 results.append({"ok": False, "image": str(image), "error": str(exc)})
1041 if not args.continue_on_error:
1042 break
1043 finally:
1044 args.format = original_format
1045 _json_print({"ok": failures == 0, "count": len(results), "failures": failures, "results": results}, compact=args.compact)
1046 return 0 if failures == 0 else 1
1047
1048
1049def cmd_serve(args: argparse.Namespace) -> int:

Callers

nothing calls this directly

Calls 5

_manifest_jobsFunction · 0.85
ModlyCliErrorClass · 0.85
_iter_imagesFunction · 0.85
_generate_oneFunction · 0.85
_json_printFunction · 0.85

Tested by

no test coverage detected