import sys import json import argparse from . import parse, CollectedValidationErrors def main(): parser = argparse.ArgumentParser(description="Parse and validate STEP file.") parser.add_argument("filename", help="The STEP file to validate.") parser.add_argument( "--progress", action="store_true", help="Show progress during validation." ) parser.add_argument( "--json", action="store_true", help="Output errors in JSON format." ) parser.add_argument( "--only-header", action="store_true", help="Validate only the header section." ) args = parser.parse_args() try: parse( filename=args.filename, with_progress=args.progress, with_tree=False, only_header=args.only_header, ) if not args.json: print("Valid", file=sys.stderr) exit(0) except CollectedValidationErrors as exc: if not args.json: print(exc, file=sys.stderr) else: json.dump([e.asdict() for e in exc.errors], sys.stdout, indent=2) exit(1) if __name__ == "__main__": main()