From 4aab4087dc97906d0b9890035401175cdaab32d4 Mon Sep 17 00:00:00 2001 From: blackhao <13851610112@163.com> Date: Fri, 22 Aug 2025 02:51:50 -0500 Subject: 2.0 --- scripts/validate_courses.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 scripts/validate_courses.py (limited to 'scripts/validate_courses.py') diff --git a/scripts/validate_courses.py b/scripts/validate_courses.py new file mode 100644 index 0000000..acff4cd --- /dev/null +++ b/scripts/validate_courses.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import json +import sys +from jsonschema import Draft202012Validator + + +def main() -> int: + if len(sys.argv) != 3: + print("usage: validate_courses.py ") + return 2 + + schema_path, data_path = sys.argv[1], sys.argv[2] + with open(schema_path, "r", encoding="utf-8") as f: + schema = json.load(f) + with open(data_path, "r", encoding="utf-8") as f: + data = json.load(f) + + validator = Draft202012Validator(schema) + errors = list(validator.iter_errors(data[0] if isinstance(data, list) and data else data)) + if errors: + for err in errors: + print(f"error: {err.message} at {list(err.path)}") + return 1 + print("ok") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) + + -- cgit v1.2.3