Spaces:
Running
Running
File size: 823 Bytes
cc5efb1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | from __future__ import annotations
import argparse
import json
import sys
from voxmed.schema_validation import dump_normalized_payload, validate_extraction_payload
def main() -> int:
parser = argparse.ArgumentParser(description="Validate and normalize a VoxMed extraction payload.")
parser.add_argument("path", nargs="?", help="Path to a JSON file. Reads stdin if omitted.")
args = parser.parse_args()
raw_text = sys.stdin.read() if not args.path else open(args.path, "r", encoding="utf-8").read()
payload = json.loads(raw_text)
errors = validate_extraction_payload(payload)
if errors:
for error in errors:
print(error, file=sys.stderr)
return 1
print(dump_normalized_payload(payload))
return 0
if __name__ == "__main__":
raise SystemExit(main()) |