MCPcopy Create free account
hub / github.com/URLab-Sim/UnrealRoboticsLab / main

Function main

Scripts/codegen/build_mjcf_schema_snapshot.py:557–590  ·  view source on GitHub ↗
(argv: Optional[List[str]] = None)

Source from the content-addressed store, hash-verified

555
556
557def main(argv: Optional[List[str]] = None) -> int:
558 here = os.path.dirname(os.path.abspath(__file__))
559 plugin_root = os.path.normpath(os.path.join(here, "..", ".."))
560 default_src = os.path.join(
561 plugin_root, "third_party", "MuJoCo", "src", "src", "xml",
562 "xml_native_reader.cc",
563 )
564 default_output = os.path.join(plugin_root, "Scripts", "codegen", "snapshots", "mjcf_schema_snapshot.json")
565
566 ap = argparse.ArgumentParser()
567 ap.add_argument("--src", default=default_src,
568 help=f"MuJoCo xml_native_reader.cc (default: {default_src})")
569 ap.add_argument("--output", default=default_output,
570 help=f"Output JSON path (default: {default_output})")
571 args = ap.parse_args(argv)
572
573 if not os.path.exists(args.src):
574 print(f"error: schema source not found: {args.src}", file=sys.stderr)
575 return 2
576
577 with open(args.src, "r", encoding="utf-8") as f:
578 src_text = f.read()
579 body = _extract_mjcf_block(src_text)
580 blocks = _tokenise_blocks(body)
581 root = _parse_tree(blocks)
582 version = _detect_mujoco_version(args.src)
583 snapshot = _build_snapshot(root, mujoco_version=version, src_text=src_text)
584
585 os.makedirs(os.path.dirname(args.output), exist_ok=True)
586 with open(args.output, "w", encoding="utf-8") as f:
587 json.dump(snapshot, f, indent=2)
588 f.write("\n")
589 print(f"wrote {args.output}: mujoco_version={version}, top-level keys={len(snapshot) - 1}")
590 return 0
591
592
593if __name__ == "__main__":

Callers 1

Calls 5

_extract_mjcf_blockFunction · 0.85
_tokenise_blocksFunction · 0.85
_parse_treeFunction · 0.85
_detect_mujoco_versionFunction · 0.85
_build_snapshotFunction · 0.85

Tested by

no test coverage detected