summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/python/qmk/json_schema.py14
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.
"""