Index
Classes¶
GraphModel
¶
A Graph Model
Used to declaratively register Edge and/or Node data supplier functions by using decorators.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
the archetype name for Graphs generated based on the GraphModel. |
required |
Attributes¶
edge_generators: Mapping[str, list[Callable[[], Iterable[Edge]]]]
property
¶
Returns:
| Type | Description |
|---|---|
Mapping[str, list[Callable[[], Iterable[Edge]]]]
|
Edge generator functions for Edge Types |
node_models: Mapping[NodeTypeAbsoluteId, list[NodeModel]]
property
¶
Returns:
| Type | Description |
|---|---|
Mapping[NodeTypeAbsoluteId, list[NodeModel]]
|
NodeModel for Node Types. Key values are NodeTypeAbsoluteId. |
node_types: set[str]
property
¶
Returns:
| Type | Description |
|---|---|
set[str]
|
Node Types |
Methods:¶
edge(type_: Extractor | None = None, source: Extractor = 'source', target: Extractor = 'target', label: Extractor | None = str, value: Extractor | None = None, weight: Union[float, Callable[[Any], float]] = 1.0) -> Callable[[Items], None]
¶
Decorator to Register a generator of edge payloads as a source of Graph Edges. It creates an Edge generator function.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
type_
|
Extractor | None
|
Optional source for the Edge Type. Defaults to use Generator function name as the Edge Type. |
None
|
source
|
Extractor
|
Source for edge source Node ID. |
'source'
|
target
|
Extractor
|
Source for edge target Node ID. |
'target'
|
label
|
Extractor | None
|
Source for edge label. |
str
|
value
|
Extractor | None
|
Source for edge value. |
None
|
weight
|
Union[float, Callable[[Any], float]]
|
Source for edge weight. |
1.0
|
Returns:
| Type | Description |
|---|---|
Callable[[Items], None]
|
None. |
node(type_: Extractor | None = None, parent_type: str | None = UniverseNode, key: Extractor | None = None, value: Extractor | None = None, label: Extractor | None = None, unique: bool = True, multiplicity: Multiplicity = Multiplicity.ALL) -> Callable[[Items], None]
¶
Decorator to Register a Generator of node payloads as a source for Graph Nodes. It creates a NodeModel object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
type_
|
Extractor | None
|
Optional source for the Node Type. Defaults to use Generator function name as the Node Type. |
None
|
parent_type
|
str | None
|
Optional parent Node Type. Defaults to UNIVERSE_NODE |
UniverseNode
|
key
|
Extractor | None
|
Optional source for Node IDs. Defaults to use the complete Node payload as Node ID. |
None
|
value
|
Extractor | None
|
Optional source for Node value field. Defaults to use the complete Node payload as Node ID. |
None
|
label
|
Extractor | None
|
Optional source for Node label field. Defaults to use a 'str' representation of the complete Node payload. |
None
|
unique
|
bool
|
is the Node universally unique. Defaults to True. |
True
|
multiplicity
|
Multiplicity
|
Multiplicity of the Node. Defaults to ALL. |
ALL
|
Generator Function Signature
The decorated generator function may accept arguments to receive context from parent nodes. These arguments MUST conform to the following strict naming convention: 1. The argument name must be lowercase. 2. The argument name must end with '_id'. 3. The prefix (before '_id') must match an existing registered Node Type.
Example: If you have a parent node type 'user', your child node generator can accept 'user_id'.
1 2 | |
Note: Arbitrary arguments (e.g., configuration flags) are currently NOT supported.
Returns:
| Type | Description |
|---|---|
Callable[[Items], None]
|
None |
node_children_types(_type: str = UniverseNode) -> Mapping[str, list[str]]
¶
Children Node Types for given input Node Type
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
_type
|
str
|
Node Type. Default value is UNIVERSE_NODE. |
UniverseNode
|
Returns:
| Type | Description |
|---|---|
Mapping[str, list[str]]
|
List of children Node Types. |
rectify(_type: Extractor | None = None, parent_type: str | None = UniverseNode, key: Extractor | None = None, value: Extractor | None = None, label: Extractor | None = None)
¶
Rectify the model. Add a default NodeModel in case of having just edge supplier/s and no node supplier/s.
Returns:
| Type | Description |
|---|---|
|
None |
GraphType
¶
Bases: Enum
Graph Types
The choice of graph class depends on the structure of the graph you want to represent.
| Graph Type | Type | Self-loops allowed | Parallel edges allowed |
|---|---|---|---|
| Graph | Undirected | Yes | No |
| DiGraph | Directed | Yes | No |
| MultiGraph | Undirected | Yes | Yes |
| MultiDiGraph | Directed | Yes | Yes |
See more here: NetworkX Reference
ParentId
¶
Functions:¶
build(builder_cls: type[Builder], graph_model: GraphModel, graph_type: GraphType = GraphType.Graph, default_node_attributes: Mapping | None = None, **kwargs: Any) -> Any
¶
Build a graph from a graph model
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
builder_cls
|
type[Builder]
|
builder class type |
required |
graph_model
|
GraphModel
|
a GraphModel instance |
required |
graph_type
|
GraphType
|
type of the generated graph |
Graph
|
default_node_attributes
|
Mapping | None
|
default node attributes |
None
|
**kwargs
|
Any
|
node id values |
{}
|
Returns:
| Type | Description |
|---|---|
Any
|
Graph data structure |
model(name: str)
¶
Create a graph model
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
model name |
required |
Returns:
| Type | Description |
|---|---|
|
GraphModel |