Files
yrtv/utils/json_extractor/main.py

36 lines
1.4 KiB
Python

import sys
import os
import argparse
# Add project root to path so we can import utils.json_extractor
current_dir = os.path.dirname(os.path.abspath(__file__))
project_root = os.path.dirname(os.path.dirname(current_dir))
sys.path.append(project_root)
from utils.json_extractor.extractor import SchemaExtractor
def main():
parser = argparse.ArgumentParser(description="Extract JSON schema from 5E Arena data.")
parser.add_argument("--input", default="output_arena", help="Input directory containing iframe_network.json files")
parser.add_argument("--output-json", default="output_reports/schema_full.json", help="Output JSON report path")
parser.add_argument("--output-md", default="output_reports/schema_summary.md", help="Output Markdown summary path")
parser.add_argument("--output-csv", default="output_reports/schema_flat.csv", help="Output CSV flat report path")
args = parser.parse_args()
print(f"Starting extraction from {args.input}...")
extractor = SchemaExtractor()
extractor.process_directory(args.input)
# Ensure output directory exists
os.makedirs(os.path.dirname(args.output_json), exist_ok=True)
os.makedirs(os.path.dirname(args.output_md), exist_ok=True)
extractor.export_report(args.output_json)
extractor.export_markdown_summary(args.output_md)
extractor.export_csv_summary(args.output_csv)
print("Done.")
if __name__ == "__main__":
main()