Coverage for little_loops / cli / schemas.py: 25%
16 statements
« prev ^ index » next coverage.py v7.12.0, created at 2026-04-11 23:19 -0500
« prev ^ index » next coverage.py v7.12.0, created at 2026-04-11 23:19 -0500
1"""ll-generate-schemas: Generate JSON Schema files for all LLEvent types."""
3from __future__ import annotations
5import argparse
6from pathlib import Path
9def main_generate_schemas() -> int:
10 """Entry point for ll-generate-schemas command.
12 Generate JSON Schema (draft-07) files for all 19 LLEvent types and write them
13 to docs/reference/schemas/ (or a custom output directory).
15 Returns:
16 Exit code (0 = success, 1 = error)
17 """
18 from little_loops.generate_schemas import generate_schemas
20 parser = argparse.ArgumentParser(
21 prog="ll-generate-schemas",
22 description="Generate JSON Schema files for all LLEvent types",
23 formatter_class=argparse.RawDescriptionHelpFormatter,
24 epilog="""
25Examples:
26 %(prog)s # Write to docs/reference/schemas/
27 %(prog)s --output path/to/schemas/ # Custom output directory
29Exit codes:
30 0 - Schemas generated successfully
31 1 - Error occurred
32""",
33 )
35 parser.add_argument(
36 "-o",
37 "--output",
38 type=Path,
39 default=None,
40 help="Output directory (default: docs/reference/schemas/ relative to cwd)",
41 )
43 args = parser.parse_args()
45 output_dir = args.output or Path.cwd() / "docs" / "reference" / "schemas"
47 try:
48 paths = generate_schemas(output_dir)
49 print(f"Generated {len(paths)} schema(s) in {output_dir}/")
50 return 0
51 except Exception as exc:
52 print(f"Error: {exc}")
53 return 1