CLI Speed improvements. (#23189)
This commit is contained in:
		
							parent
							
								
									8b8f73098b
								
							
						
					
					
						commit
						1875659df0
					
				
					 1 changed files with 10 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -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.
 | 
			
		||||
    """
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue