diff options
Diffstat (limited to 'lib/python/qmk')
| -rw-r--r-- | lib/python/qmk/json_schema.py | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py index b00df749cc..1d5f863807 100644 --- a/lib/python/qmk/json_schema.py +++ b/lib/python/qmk/json_schema.py @@ -7,6 +7,7 @@ from collections.abc import Mapping  from functools import lru_cache  from typing import OrderedDict  from pathlib import Path +from copy import deepcopy  from milc import cli @@ -22,7 +23,8 @@ def _dict_raise_on_duplicates(ordered_pairs):      return d -def json_load(json_file, strict=True): +@lru_cache(maxsize=20) +def _json_load_impl(json_file, strict=True):      """Load a json file from disk.      Note: file must be a Path object. @@ -42,7 +44,11 @@ def json_load(json_file, strict=True):          exit(1) -@lru_cache(maxsize=0) +def json_load(json_file, strict=True): +    return deepcopy(_json_load_impl(json_file=json_file, strict=strict)) + + +@lru_cache(maxsize=20)  def load_jsonschema(schema_name):      """Read a jsonschema file from disk.      """ @@ -57,7 +63,7 @@ def load_jsonschema(schema_name):      return json_load(schema_path) -@lru_cache(maxsize=0) +@lru_cache(maxsize=1)  def compile_schema_store():      """Compile all our schemas into a schema store.      """ @@ -73,7 +79,7 @@ def compile_schema_store():      return schema_store -@lru_cache(maxsize=0) +@lru_cache(maxsize=20)  def create_validator(schema):      """Creates a validator for the given schema id.      """ | 
