Skip to content

interface

Build an ELK interface context from collected capellambse.

DiagramBuilder 🔗

DiagramBuilder(diagram: InterfaceContextDiagram, params: dict[str, Any])

Bases: DiagramBuilder

Collect the data context for a DataFlow diagram.

Source code in src/capellambse_context_diagrams/builders/interface.py
27
28
29
30
31
32
33
34
35
36
37
38
39
def __init__(
    self,
    diagram: context.InterfaceContextDiagram,
    params: dict[str, t.Any],
):
    self.edge_data: dict[str, default.EdgeData] = {}
    self.incoming_edges: set[str] = set()
    self.outgoing_edges: set[str] = set()

    super().__init__(diagram, params)

    self.left: m.ModelElement = self.target.source
    self.right: m.ModelElement = self.target.target

yield_box_from_children 🔗

yield_box_from_children(
    uuid: str, children: Iterable[ELKInputChild] | None = None
) -> cabc.Iterator[_elkjs.ELKInputChild | None]

Yield the box from data with given uuid.

Source code in src/capellambse_context_diagrams/builders/interface.py
163
164
165
166
167
168
169
170
171
172
173
174
def yield_box_from_children(
    self,
    uuid: str,
    children: cabc.Iterable[_elkjs.ELKInputChild] | None = None,
) -> cabc.Iterator[_elkjs.ELKInputChild | None]:
    """Yield the box from data with given uuid."""
    for child in children or self.data.children:
        if child.id == uuid:
            yield child
        elif child.children:
            yield from self.yield_box_from_children(uuid, child.children)
    return None