import json import pathlib import jsonschema HERE = pathlib.Path(__file__).parent SCHEMA_FILE = HERE / "schema.json" SCHEMA = json.loads(SCHEMA_FILE.read_text(encoding="utf-8")) SPEC_VERSION = SCHEMA["definitions"]["current-version"]["enum"][0] def make_validator(key): """make a JSON Schema (Draft 7) validator""" schema = {"$ref": "#/definitions/{}".format(key)} schema.update(SCHEMA) return jsonschema.validators.Draft7Validator(schema) SERVERS_RESPONSE = make_validator("servers-response") LANGUAGE_SERVER_SPEC = make_validator("language-server-spec") LANGUAGE_SERVER_SPEC_MAP = make_validator("language-server-specs-implementation-map")