facetted-interfaces/history/FIAM_v0.2_Draft6/tools/validate_runtime_extensions.py
tegwick 1353267569 Establish FIAM repository governance baseline
Assistant: codex
Assistant-Model: gpt-5.6-luna
Assistant-Session: 01a087b0-7b1e-7531-8ef3-6525ebaf7ee7
2026-09-09 21:53:43 +02:00

13 lines
661 B
Python
Executable file

#!/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()