bedrock.generators.code_generators.model.model_header

 1from bedrock.generators.code_generators.common.imports import imports_list_to_string
 2from bedrock.generators.code_generators.model.helpers import resolve_attribute_columns_to_imports, \
 3    resolve_model_name_from_path_hint
 4from bedrock.generators.code_generators.common.imports import import_models
 5
 6
 7def make_model_header(attributes: list[tuple[str, str]], filter_path_hint: str, app_path: str) -> str:
 8    imports = _generate_imports(attributes)
 9    hinted_model_name = resolve_model_name_from_path_hint(filter_path_hint)
10    hinted_model = import_models(app_path).get(hinted_model_name)
11    if hinted_model:
12        imports.append("sqlalchemy.ForeignKey")
13        imports.append("sqlalchemy.UUID")
14    return f"{imports_list_to_string(imports)}\n"
15
16
17def _generate_imports(attributes: list[tuple[str, str]]) -> list[str]:
18    imports = [
19        "bedrock.db.model_helper.ModelHelper",
20        "bedrock.db.model_helper.Base",
21        "bedrock.model.decorators.filter_path_hint.filter_path_hint",
22        "sqlalchemy.Column",
23        "sqlalchemy.orm.relationship"
24    ]
25    imports.extend(resolve_attribute_columns_to_imports(attributes))
26    return imports
def make_model_header( attributes: list[tuple[str, str]], filter_path_hint: str, app_path: str) -> str:
 8def make_model_header(attributes: list[tuple[str, str]], filter_path_hint: str, app_path: str) -> str:
 9    imports = _generate_imports(attributes)
10    hinted_model_name = resolve_model_name_from_path_hint(filter_path_hint)
11    hinted_model = import_models(app_path).get(hinted_model_name)
12    if hinted_model:
13        imports.append("sqlalchemy.ForeignKey")
14        imports.append("sqlalchemy.UUID")
15    return f"{imports_list_to_string(imports)}\n"