"""Compile the screens/styles of a .rpy file to JSON: python -m tests.make_screens SOURCE.rpy OUT.json""" import json import sys from pathlib import Path from app.converter.compatibility import audit_ir, require_supported_scripts from app.converter.pipeline import _used_screens from app.converter.rpy_parser import RpyParser, ScriptData def main(source: Path, out: Path) -> None: data = ScriptData() RpyParser(data, source.name).parse(source.read_text(encoding="utf-8")) audit_ir(data) require_supported_scripts(data) shipped = {name: data.screens[name] for name in sorted(_used_screens(data))} out.write_text(json.dumps({"screens": shipped, "styles": data.styles, "atl": data.atl, "transforms": data.transforms}, ensure_ascii=False, separators=(",", ":")), encoding="utf-8") if __name__ == "__main__": main(Path(sys.argv[1]), Path(sys.argv[2]))