elasticai.creator.ir.datagraph#
Module Contents#
Classes#
Note that the fact, that |
Data#
API#
- class elasticai.creator.ir.datagraph.Node[source]#
Bases:
typing.Protocol- abstract property attributes: elasticai.creator.ir.attribute.AttributeMapping#
- abstract property type: str#
- abstract property name: str#
- class elasticai.creator.ir.datagraph.Edge[source]#
Bases:
typing.Protocol- abstract property attributes: elasticai.creator.ir.attribute.AttributeMapping#
- abstract property src: str#
- abstract property dst: str#
- elasticai.creator.ir.datagraph.N#
‘TypeVar(…)’
- elasticai.creator.ir.datagraph.E#
‘TypeVar(…)’
- class elasticai.creator.ir.datagraph.NodeEdgeFactory[source]#
Bases:
typing.Protocol[elasticai.creator.ir.datagraph.N,elasticai.creator.ir.datagraph.E]- abstractmethod node(name: str, attributes: elasticai.creator.ir.attribute.AttributeMapping = AttributeMapping(), /) elasticai.creator.ir.datagraph.N[source]#
- abstractmethod edge(src: str, dst: str, attributes: elasticai.creator.ir.attribute.AttributeMapping = AttributeMapping(), /) elasticai.creator.ir.datagraph.E[source]#
- class elasticai.creator.ir.datagraph.ReadOnlyDataGraph[source]#
Bases:
elasticai.creator.ir.graph.ReadOnlyGraph[str,elasticai.creator.ir.attribute.AttributeMapping],typing.Protocol[elasticai.creator.ir.datagraph.N,elasticai.creator.ir.datagraph.E]- abstract property attributes: elasticai.creator.ir.attribute.AttributeMapping#
- abstract property nodes: collections.abc.Mapping[str, elasticai.creator.ir.datagraph.N]#
- abstract property graph: elasticai.creator.ir.graph.Graph[str, elasticai.creator.ir.attribute.AttributeMapping]#
- abstract property node_attributes: elasticai.creator.ir.attribute.AttributeMapping#
- abstract property edges: collections.abc.Mapping[tuple[str, str], elasticai.creator.ir.datagraph.E]#
- abstract property factory: elasticai.creator.ir.datagraph.NodeEdgeFactory[elasticai.creator.ir.datagraph.N, elasticai.creator.ir.datagraph.E]#
- class elasticai.creator.ir.datagraph.DataGraph[source]#
Bases:
elasticai.creator.ir.datagraph.ReadOnlyDataGraph[elasticai.creator.ir.datagraph.N,elasticai.creator.ir.datagraph.E],elasticai.creator.ir.graph.Graph[str,elasticai.creator.ir.attribute.AttributeMapping],typing.Protocol[elasticai.creator.ir.datagraph.N,elasticai.creator.ir.datagraph.E]Note that the fact, that
add_nodeand similar methods take an argument of typeNodewhile thenodesandedgesproperties produce mappings over the generic type parametersEandN. This makesDataGraphcovariant overNandE, meaning thatDataGraph[SpecialNode, SpecialEdge]is a subtype ofDataGraph[Node, Edge]. It also means that every implementation detail in aDataGraphimplementation needs to assume that nodes and edges are of the most generalNodeorEdgetype.- abstractmethod add_nodes(*args: elasticai.creator.ir.datagraph.Node | tuple[str, elasticai.creator.ir.attribute.AttributeMapping] | str) Self[source]#
- abstractmethod add_edges(*args: elasticai.creator.ir.datagraph.Edge | tuple[str, str, elasticai.creator.ir.attribute.AttributeMapping] | tuple[str, str]) Self[source]#
- abstractmethod with_attributes(attributes: elasticai.creator.ir.attribute.AttributeMapping) Self[source]#