Skip to content

dizzy.generators.models

dizzy.generators.models

Models generator — scaffold def/models/ stubs.

render_scaffold_model(model)

Render a minimal LinkML stub for def/models/.yaml.

Source code in dizzy/src/dizzy/generators/models.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def render_scaffold_model(model: ModelDef) -> str:
    """Render a minimal LinkML stub for def/models/<model.name>.yaml."""
    lines = [
        f"id: https://example.org/models/{model.name}",
        f"name: {model.name}",
        *description_lines(model.description, ""),
        "prefixes:",
        "  linkml: https://w3id.org/linkml/",
        "default_range: string",
        "imports:",
        "  - linkml:types",
        "classes: {}",
        "",
    ]
    return "\n".join(lines)

write_scaffold_model(model, output_dir)

Write def/models/.yaml; skip if file already exists.

Source code in dizzy/src/dizzy/generators/models.py
27
28
29
30
31
32
33
34
35
def write_scaffold_model(model: ModelDef, output_dir: Path) -> None:
    """Write def/models/<model.name>.yaml; skip if file already exists."""
    dest = output_dir / "def" / "models" / f"{model.name}.yaml"
    if dest.exists():
        logger.debug("skipped existing file", extra={"path": str(dest)})
        return
    dest.parent.mkdir(parents=True, exist_ok=True)
    dest.write_text(render_scaffold_model(model))
    logger.debug("wrote file", extra={"path": str(dest)})