Download src/python/tom_world03/cli.py from c0mbatduckzz/TOMK: direct link, hf CLI and curl.
- Browser
- Download file 4.63 kB
-
https://huggingface.co/c0mbatduckzz/TOMK/resolve/main/src/python/tom_world03/cli.py
- Command line
-
hf download hf://c0mbatduckzz/TOMK/src/python/tom_world03/cli.py
-
curl -L -o cli.py https://huggingface.co/c0mbatduckzz/TOMK/resolve/main/src/python/tom_world03/cli.py
4.63 kB
| """Command-line interface for TOM World & Query Kernel 0.3 interval events.""" | |
| from __future__ import annotations | |
| import argparse | |
| import json | |
| from pathlib import Path | |
| from typing import Any | |
| from .baseline import trusted_affine_baseline | |
| from .canonical import canonical_bytes | |
| from .interval import ClosedInterval | |
| from .io import load_world | |
| from .rational import Q | |
| from .solver import certify_crossing, events_certificate, next_event_set | |
| from .transitions import apply_event_set | |
| def _emit(value: Any, output: str | None) -> None: | |
| data = canonical_bytes(value) + b"\n" | |
| if output: | |
| path = Path(output) | |
| path.parent.mkdir(parents=True, exist_ok=True) | |
| path.write_bytes(data) | |
| print(json.dumps(value, indent=2, sort_keys=True)) | |
| def main(argv: list[str] | None = None) -> int: | |
| parser = argparse.ArgumentParser(prog="tom-world03", description="Certified rational interval-event queries") | |
| sub = parser.add_subparsers(dest="command", required=True) | |
| p_validate = sub.add_parser("validate-world") | |
| p_validate.add_argument("world") | |
| p_validate.add_argument("--output") | |
| p_certify = sub.add_parser("certify-crossing") | |
| p_certify.add_argument("world") | |
| p_certify.add_argument("relation") | |
| p_certify.add_argument("lower") | |
| p_certify.add_argument("upper") | |
| p_certify.add_argument("--refine-steps", type=int) | |
| p_certify.add_argument("--output") | |
| p_events = sub.add_parser("events") | |
| p_events.add_argument("world") | |
| p_events.add_argument("start") | |
| p_events.add_argument("end") | |
| p_events.add_argument("--output") | |
| p_next = sub.add_parser("next-event-set") | |
| p_next.add_argument("world") | |
| p_next.add_argument("after") | |
| p_next.add_argument("before") | |
| p_next.add_argument("--include-after", action="store_true") | |
| p_next.add_argument("--output") | |
| p_apply = sub.add_parser("apply-next-event-set") | |
| p_apply.add_argument("world") | |
| p_apply.add_argument("after") | |
| p_apply.add_argument("before") | |
| p_apply.add_argument("--output") | |
| p_baseline = sub.add_parser("compare-baseline") | |
| p_baseline.add_argument("world") | |
| p_baseline.add_argument("start") | |
| p_baseline.add_argument("end") | |
| p_baseline.add_argument("--output") | |
| args = parser.parse_args(argv) | |
| record, world = load_world(args.world) | |
| if args.command == "validate-world": | |
| _emit({ | |
| "schema": "TOM-WORLD-VALIDATION-0.3", | |
| "status": "valid", | |
| "world_hash": world.content_hash, | |
| "trajectory": world.trajectory.id, | |
| "relations": len(world.relations), | |
| }, args.output) | |
| return 0 | |
| if args.command == "certify-crossing": | |
| relation = next((r for r in world.relations if r.id == args.relation), None) | |
| if relation is None: | |
| raise SystemExit(f"unknown relation {args.relation}") | |
| result = certify_crossing( | |
| world, relation, ClosedInterval(Q.from_value(args.lower), Q.from_value(args.upper)), | |
| refine_steps=args.refine_steps, | |
| ) | |
| _emit(result.certificate, args.output) | |
| return 0 | |
| if args.command == "events": | |
| _emit(events_certificate(world, args.start, args.end), args.output) | |
| return 0 | |
| if args.command == "next-event-set": | |
| _emit(next_event_set(world, args.after, args.before, include_after=args.include_after), args.output) | |
| return 0 | |
| if args.command == "apply-next-event-set": | |
| event_set = next_event_set(world, args.after, args.before) | |
| _emit(apply_event_set(world, event_set), args.output) | |
| return 0 | |
| if args.command == "compare-baseline": | |
| baseline = trusted_affine_baseline(record, args.start, args.end) | |
| solver = events_certificate(world, args.start, args.end) | |
| solver_events = [ | |
| { | |
| "relation_id": event["relation_id"], | |
| "event_id": event["event_id"], | |
| "priority": event["priority"], | |
| "root": event["exact_root_time"], | |
| } | |
| for event in solver["events"] if event["exact_root_time"] is not None | |
| ] | |
| result = { | |
| "schema": "TOM-INTERVAL-BASELINE-COMPARISON-0.3", | |
| "world_hash": world.content_hash, | |
| "equal": solver_events == baseline["events"], | |
| "solver_events": solver_events, | |
| "baseline_events": baseline["events"], | |
| "baseline_hash": baseline["content_hash"], | |
| "solver_hash": solver["content_hash"], | |
| } | |
| _emit(result, args.output) | |
| return 0 | |
| return 2 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |