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:
 8def imports_list_to_string(imports: list[str]) -> str:
 9    import_strings = [_import_to_string(i) for i in imports]
10    return "\n".join(import_strings)
def make_model_import(model: str) -> str:
13def make_model_import(model: str) -> str:
14    module_name = camelCase_to_snake_case(model)
15    return f"model.{module_name}.{model}"
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]