facetted-interfaces/history/FIAM_v0.2_Draft6/tools/validate_runtime_extensions.py

14 lines
661 B
Python
Raw Normal View History

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