graphi.edge module¶
-
class
graphi.edge.
Edge
(start, stop, step=None)¶ Bases:
object
An edge in a graph as a pair of nodes
Parameters: - start – the start or tail of an edge
- stop – the stop or head of an edge
- step – currently unused
This is a verbose interface for creating edges between nodes for use in a graph. It allows using slice notation independent of a graph:
>>> atb = Edge[a:b] >>> a2b = Edge(a, b) >>> graph[a2b] = 1337 >>> graph[a:b] == graph[atb] == graph[a2b] == graph[Edge[a:b]] == graph[Edge(a, b)] True
A
Edge
can also be used for explicit containment tests:>>> Edge[a:b] in graph True
In addition to their slice-like nature,
Edge
is iterable and indexable. This allows for easy unpacking:>>> edge = Edge[a:b] >>> tail, head = edge
Note
This class creates a representation of an edge as a connection between nodes. Edge values can be arbitrary objects.
Warning
Even though
Edge
behaves like aslice
in graphs, builtin containers such aslist
cannot make use of anEdge
.-
start
¶
-
stop
¶
-
class
graphi.edge.
Loop
(start, stop=None, step=None)¶ Bases:
graphi.edge.Edge
An edge in a graph from a node to itself
Parameters: - start – the start or tail of a loop
- stop – optional stop or head of a loop, same as start
- step – currently unused
Raises: ValueError – if
stop
is given but not equal tostart