refactor(ModelManager): refactor rescan-on-miss to exists() method

This commit is contained in:
Kevin Turner 2023-07-28 21:11:00 -07:00
parent e70bedba7d
commit dca685ac25

View File

@ -386,13 +386,21 @@ class ModelManager(object):
model_name: str, model_name: str,
base_model: BaseModelType, base_model: BaseModelType,
model_type: ModelType, model_type: ModelType,
rescan = False
) -> bool: ) -> bool:
""" """
Given a model name, returns True if it is a valid Given a model name, returns True if it is a valid
identifier. identifier.
""" """
model_key = self.create_key(model_name, base_model, model_type) model_key = self.create_key(model_name, base_model, model_type)
return model_key in self.models exists = model_key in self.models
# if model not found try to find it (maybe file just pasted)
if rescan and not exists:
self.scan_models_directory(base_model=base_model, model_type=model_type)
exists = model_key in self.models
return exists
@classmethod @classmethod
def create_key( def create_key(
@ -449,11 +457,8 @@ class ModelManager(object):
model_class = self._get_implementation(base_model, model_type) model_class = self._get_implementation(base_model, model_type)
model_key = self.create_key(model_name, base_model, model_type) model_key = self.create_key(model_name, base_model, model_type)
# if model not found try to find it (maybe file just pasted) if not self.model_exists(model_name, base_model, model_type, rescan=True):
if model_key not in self.models: raise ModelNotFoundException(f"Model not found - {model_key}")
self.scan_models_directory(base_model=base_model, model_type=model_type)
if model_key not in self.models:
raise ModelNotFoundException(f"Model not found - {model_key}")
model_config = self.models[model_key] model_config = self.models[model_key]
model_path = self.app_config.root_path / model_config.path model_path = self.app_config.root_path / model_config.path