Additional schema fixes (#17414)
This commit is contained in:
		| @@ -5,7 +5,7 @@ Compile an info.json for a particular keyboard and pretty-print it. | ||||
| import json | ||||
|  | ||||
| from argcomplete.completers import FilesCompleter | ||||
| from jsonschema import Draft7Validator, RefResolver, validators | ||||
| from jsonschema import Draft202012Validator, RefResolver, validators | ||||
| from milc import cli | ||||
| from pathlib import Path | ||||
|  | ||||
| @@ -18,7 +18,7 @@ from qmk.path import is_keyboard, normpath | ||||
|  | ||||
|  | ||||
| def pruning_validator(validator_class): | ||||
|     """Extends Draft7Validator to remove properties that aren't specified in the schema. | ||||
|     """Extends Draft202012Validator to remove properties that aren't specified in the schema. | ||||
|     """ | ||||
|     validate_properties = validator_class.VALIDATORS["properties"] | ||||
|  | ||||
| @@ -37,10 +37,10 @@ def strip_info_json(kb_info_json): | ||||
|     """Remove the API-only properties from the info.json. | ||||
|     """ | ||||
|     schema_store = compile_schema_store() | ||||
|     pruning_draft_7_validator = pruning_validator(Draft7Validator) | ||||
|     pruning_draft_validator = pruning_validator(Draft202012Validator) | ||||
|     schema = schema_store['qmk.keyboard.v1'] | ||||
|     resolver = RefResolver.from_schema(schema_store['qmk.keyboard.v1'], store=schema_store) | ||||
|     validator = pruning_draft_7_validator(schema, resolver=resolver).validate | ||||
|     validator = pruning_draft_validator(schema, resolver=resolver).validate | ||||
|  | ||||
|     return validator(kb_info_json) | ||||
|  | ||||
|   | ||||
| @@ -68,11 +68,7 @@ def create_validator(schema): | ||||
|     schema_store = compile_schema_store() | ||||
|     resolver = jsonschema.RefResolver.from_schema(schema_store[schema], store=schema_store) | ||||
|  | ||||
|     # TODO: Remove this after the jsonschema>=4 requirement had time to reach users | ||||
|     try: | ||||
|         return jsonschema.Draft202012Validator(schema_store[schema], resolver=resolver).validate | ||||
|     except AttributeError: | ||||
|         return jsonschema.Draft7Validator(schema_store[schema], resolver=resolver).validate | ||||
|     return jsonschema.Draft202012Validator(schema_store[schema], resolver=resolver).validate | ||||
|  | ||||
|  | ||||
| def validate(data, schema): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user