Console Graph
ZoomSpec
dataclass
AutoZoom
ConsoleGraph
ConsoleGraph(
nodes: dict[Hashable, dict[str, Any]] | None = None,
edges: Iterable[tuple[Hashable, Hashable]]
| Iterable[tuple[Hashable, Hashable, dict[str, Any]]]
| None = None,
*,
layout_engine: LayoutEngine = core.SugiyamaLayout(
core.LayoutDirection.TOP_DOWN
),
console: Console = Console(),
viewport: Region | None = None,
max_width: int | None = None,
max_height: int | None = None,
zoom: float
| tuple[float, float]
| ZoomSpec
| AutoZoom = 1.0,
)
A console representation of a graph.
The class conforms to the rich console protocol and can be printed as any other rich renderable. You can pass a layout engine and a specific console that will be used for rendering.
Rendering of nodes and edges happens lazily when the graph is rendered by rich. The object size is determined by the graph (no reactive rendering).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nodes
|
dict[Hashable, dict[str, Any]] | None
|
A dict mapping node ids to data dicts, e.g. |
None
|
edges
|
Iterable[tuple[Hashable, Hashable]] | Iterable[tuple[Hashable, Hashable, dict[str, Any]]] | None
|
An iterable of 2-tuples |
None
|
layout_engine
|
LayoutEngine
|
The layout engine used. |
SugiyamaLayout(TOP_DOWN)
|
console
|
Console
|
The rich console driver used to render. |
Console()
|
viewport
|
Region | None
|
The viewport to render. Defaults to the whole graph. |
None
|
max_width
|
int | None
|
The maximum width of the graph in characters. |
None
|
max_height
|
int | None
|
The maximum height of the graph in characters. |
None
|
zoom
|
float | tuple[float, float] | ZoomSpec | AutoZoom
|
The zoom level, either a float, a tuple of zoom in x and y direction or a zoom spec / auto zoom mode. Defaults to 1.0. |
1.0
|
full_viewport
property
The full viewport of the graph that is spanned by the whole graph.
zoom
property
writable
The zoom level of the graph.
Can be set either to a float, a tuple of zoom in x and y direction or a zoom spec / auto zoom mode. Defaults to 1.0, always returns a ZoomSpec or AutoZoom, so a float or tuple is converted to a ZoomSpec.
viewport
property
writable
The viewport that is set by the user (or the full viewport if none is set).
max_width
property
writable
The maximum width of the graph in characters or None if no maximum width is set.
max_height
property
writable
The maximum height of the graph in characters as integer or None if no maximum height is set.
from_networkx
classmethod
Create a ConsoleGraph from a networkx DiGraph.
networkx is optional and is only needed to create the graph object passed to this method (pip install netext[networkx]).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
graph
|
Any
|
A networkx DiGraph (or Graph) object. |
required |
**kwargs
|
Any
|
Additional keyword arguments passed to the ConsoleGraph constructor. |
{}
|
Returns:
| Type | Description |
|---|---|
ConsoleGraph
|
A new ConsoleGraph instance. |
add_node
add_node(
node: Hashable,
position: FloatPoint | None = None,
data: dict[str, Any] | None = None,
) -> None
Add a node to the console graph.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node
|
Hashable
|
The node to add. |
required |
position
|
FloatPoint | None
|
If set add the node at the specific position in graph space coordinates. |
None
|
data
|
dict[str, Any] | None
|
The data and attributes of the node. |
None
|
update_node
update_node(
node: Hashable,
position: FloatPoint | None = None,
data: dict[str, Any] | None = None,
update_data: bool = True,
) -> None
Update a node position or attributes (data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node
|
Hashable
|
The node to update. |
required |
position
|
FloatPoint | None
|
A new position if the node should be moved, by default None. |
None
|
data
|
dict[str, Any] | None
|
A new or updated data dictionary, by default None. |
None
|
update_data
|
bool
|
Whether to replace or update the data dictionary, by default True. |
True
|
Returns:
| Type | Description |
|---|---|
None
|
None |
remove_node
Removes the specified node from the graph, along with any edges that are connected to it.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
node
|
Hashable
|
The node to remove. |
required |
Returns:
| Type | Description |
|---|---|
None
|
None |
add_edge
Add an edge between existing nodes in the graph.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
u
|
Hashable
|
The source node. |
required |
v
|
Hashable
|
The target node. |
required |
data
|
dict[str, Any] | None
|
The data and attributes of the edge. |
None
|
Raises:
| Type | Description |
|---|---|
ValueError
|
Raised if one of the nodes does not exist in the graph. |
update_edge
update_edge(
u: Hashable,
v: Hashable,
data: dict[str, Any],
update_data: bool = True,
update_layout: bool = True,
) -> None
Update edge attributes (data).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
u
|
Hashable
|
The source node of the edge. |
required |
v
|
Hashable
|
The target node of the edge. |
required |
data
|
dict[str, Any]
|
The new or updated data dictionary. |
required |
update_data
|
bool
|
Whether to replace or update the data dictionary, by default True. |
True
|
update_layout
|
bool
|
Accepted for API compatibility. The edge is currently rerendered whether this is true or false. |
True
|
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If the zoom factor has not been computed yet. |
Returns:
| Type | Description |
|---|---|
None
|
None |
remove_edge
Removes an edge from the graph.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
u
|
Hashable
|
The source node of the edge. |
required |
v
|
Hashable
|
The target node of the edge. |
required |
Returns:
| Type | Description |
|---|---|
None
|
None |
to_graph_coordinates
Converts a point from view coordinates to graph coordinates.
This means applying the inverse zoom and offset to the point.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
p
|
Point
|
The point to convert. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
FloatPoint |
FloatPoint
|
The converted point in graph coordinates. |
to_view_coordinates
Converts a point from graph coordinates to view coordinates.
This means applying the zoom and offset to the point.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
p
|
FloatPoint
|
The point to convert. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Point |
Point
|
The converted point in view coordinates. |