Skip to content

dizzy.generators.environment

dizzy.generators.environment

Environment generator — scaffold def/environment.yaml.

Each environment entry names an injected constant/variable (acquired in place of an os environment variable). Its shape is authored as one LinkML class.

render_scaffold_environment(environment)

Render a LinkML stub for def/environment.yaml from the feat definition.

Source code in dizzy/src/dizzy/generators/environment.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def render_scaffold_environment(environment: list[EnvironmentDef]) -> str:
    """Render a LinkML stub for def/environment.yaml from the feat definition."""
    lines = [
        "id: https://example.org/environment",
        "name: environment",
        "prefixes:",
        "  linkml: https://w3id.org/linkml/",
        "default_range: string",
        "imports:",
        "  - linkml:types",
        "classes:",
    ]
    for env in environment:
        lines.append(f"  {env.name}:")
        lines.extend(description_lines(env.description, "    "))
        lines.append("    attributes: {}")
    lines.append("")
    return "\n".join(lines)

write_scaffold_environment(environment, output_dir)

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

Source code in dizzy/src/dizzy/generators/environment.py
34
35
36
37
38
39
40
41
42
def write_scaffold_environment(environment: list[EnvironmentDef], output_dir: Path) -> None:
    """Write def/environment.yaml; skip if file already exists."""
    dest = output_dir / "def" / "environment.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_environment(environment))
    logger.debug("wrote file", extra={"path": str(dest)})