Skip to content

dizzy.generators.events

dizzy.generators.events

Events generator — scaffold def/events.yaml.

render_scaffold_events(events)

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

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

write_scaffold_events(events, output_dir)

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

Source code in dizzy/src/dizzy/generators/events.py
30
31
32
33
34
35
36
37
38
def write_scaffold_events(events: list[EventDef], output_dir: Path) -> None:
    """Write def/events.yaml; skip if file already exists."""
    dest = output_dir / "def" / "events.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_events(events))
    logger.debug("wrote file", extra={"path": str(dest)})