Files
soleprint/soleprint/atlas2/docgen/extractors/db_main.py
2026-09-12 06:42:49 -03:00

32 lines
994 B
Python

""" python3 -m docgen.extractors.db --schema path/to/schema.json [-o ir.json]"""
import argparse
import json
import sys
from pathlib import Path
from .db import extract
def main(argv=None):
p = argparse.ArgumentParser(prog="python3 -m docgen.extractors.db")
p.add_argument("--schema", "-s", required=True, type=Path,
help="A graphgen-compatible schema.json, as modelgen emits.")
p.add_argument("--output", "-o", type=Path)
args = p.parse_args(argv)
try:
ir = extract(args.schema)
except (OSError, json.JSONDecodeError, KeyError) as e:
print(f"Error: could not read {args.schema}: {e}", file=sys.stderr)
return 1
text = json.dumps(ir.to_dict(), indent=2) + "\n"
if args.output:
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(text)
print(f"{len(ir.nodes)} nodes, {len(ir.edges)} edges -> {args.output}")
else:
sys.stdout.write(text)
return 0