#!/usr/bin/env python3 import argparse,json from pathlib import Path import yaml from jsonschema import Draft202012Validator ROOT=Path(__file__).resolve().parents[1] def main(): ap=argparse.ArgumentParser();ap.add_argument('model',type=Path);args=ap.parse_args();m=yaml.safe_load(args.model.read_text());s=json.loads((ROOT/'schemas/FIAM-RuntimeCatalogExtension-v0.2.schema.json').read_text());errs=sorted(Draft202012Validator(s).iter_errors(m.get('extensions',{})),key=lambda e:list(e.path)); if errs: for e in errs:print('ERROR', '.'.join(map(str,e.path)), e.message) raise SystemExit(1) print('runtime extensions: PASS') if __name__=='__main__':main()