logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git
commit: 1875659df025ec83201bb8e1e4515100e5152a87
parent 8b8f73098b325ea60e2affea6dcd36fc86716dab
Author: Nick Brassel <nick@tzarc.org>
Date:   Sat,  2 Mar 2024 08:45:01 +1100

CLI Speed improvements. (#23189)


Diffstat:

Mlib/python/qmk/json_schema.py14++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git 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. """