bedrock.generators.code_generators.common.imports
1from bedrock._helpers.string import upper_case_first, camelCase_to_snake_case 2from bedrock.config.models import get_models_dictionary 3 4MODELS_DICT = {} 5 6 7def imports_list_to_string(imports: list[str]) -> str: 8 import_strings = [_import_to_string(i) for i in imports] 9 return "\n".join(import_strings) 10 11 12def make_model_import(model: str) -> str: 13 module_name = camelCase_to_snake_case(model) 14 return f"model.{module_name}.{model}" 15 16 17def make_parent_model_import(prefixes: list[str]) -> str: 18 prefix_vars = [prefix.replace("{", "").replace("}", "") for prefix in prefixes if "{" in prefix] 19 if prefix_vars: 20 last_prefix_var = prefix_vars[-1].replace("Uuid", "") 21 parent_model_class_name = upper_case_first(last_prefix_var) 22 return make_model_import(parent_model_class_name) 23 return "" 24 25 26def _import_to_string(package: str) -> str: 27 if not package: 28 return "" 29 if len(package.split(".")) == 1: 30 return f"import {package}" 31 import_ = package.split(".")[-1] 32 from_ = ".".join(package.split(".")[0:-1]) 33 return f"from {from_} import {import_}" 34 35 36def import_models(app_path: str): 37 global MODELS_DICT 38 if app_path in MODELS_DICT: 39 return MODELS_DICT[app_path] 40 module_prefix = "model" 41 if app_path == "./testing": 42 module_prefix = "testing.model" 43 MODELS_DICT[app_path] = get_models_dictionary(f"{app_path}/model", module_prefix, f"{app_path}/model") 44 return MODELS_DICT[app_path]
MODELS_DICT =
{}
def
imports_list_to_string(imports: list[str]) -> str:
def
make_model_import(model: str) -> str:
def
make_parent_model_import(prefixes: list[str]) -> str:
18def make_parent_model_import(prefixes: list[str]) -> str: 19 prefix_vars = [prefix.replace("{", "").replace("}", "") for prefix in prefixes if "{" in prefix] 20 if prefix_vars: 21 last_prefix_var = prefix_vars[-1].replace("Uuid", "") 22 parent_model_class_name = upper_case_first(last_prefix_var) 23 return make_model_import(parent_model_class_name) 24 return ""
def
import_models(app_path: str):
37def import_models(app_path: str): 38 global MODELS_DICT 39 if app_path in MODELS_DICT: 40 return MODELS_DICT[app_path] 41 module_prefix = "model" 42 if app_path == "./testing": 43 module_prefix = "testing.model" 44 MODELS_DICT[app_path] = get_models_dictionary(f"{app_path}/model", module_prefix, f"{app_path}/model") 45 return MODELS_DICT[app_path]