altgraph.ObjectGraph
— Graphs of objecs with an identifier¶
- class altgraph.ObjectGraph.ObjectGraph([graph[, debug]])¶
A graph of objects that have a “graphident” attribute. The value of this attribute is the key for the object in the graph.
The optional graph is a previously constructed
Graph
.The optional debug level controls the amount of debug output (see
msg()
,msgin()
andmsgout()
).Note
the altgraph library does not generate output, the debug attribute and message methods are present for use by subclasses.
- ObjectGraph.addNode(node)¶
Adds a node to the graph.
Note
re-adding a node that was previously removed using
removeNode()
will reinstate the previously removed node.
- ObjectGraph.createNode(self, cls, name, \*args, \**kwds)¶
Creates a new node using
cls(*args, **kwds)
and adds that node usingaddNode()
.Returns the newly created node.
- ObjectGraph.removeNode(node)¶
Removes a node from the graph when it exists. The node argument is either a node object, or the graphident of a node.
- ObjectGraph.createReferences(fromnode, tonode[, edge_data])¶
Creates a reference from fromnode to tonode. The optional edge_data is associated with the edge.
Fromnode and tonode can either be node objects or the graphident values for nodes. When fromnode is
None
tonode is a root for the graph.
- altgraph.ObjectGraph.removeReference(fromnode, tonode)¶
Removes the reference from fromnode to tonode if it exists.
- ObjectGraph.getRawIdent(node)¶
Returns the graphident attribute of node, or the graph itself when node is
None
.
- altgraph.ObjectGraph.getIdent(node)¶
Same as
getRawIdent()
, but only if the node is part of the graph.Node can either be an actual node object or the graphident of a node.
- ObjectGraph.findNode(node)¶
Returns a given node in the graph, or
Node
when it cannot be found.Node is either an object with a graphident attribute or the graphident attribute itself.
- ObjectGraph.__contains__(node)¶
Returns True if node is a member of the graph. Node is either an object with a graphident attribute or the graphident attribute itself.
- ObjectGraph.flatten([condition[, start]])¶
Yield all nodes that are entirely reachable by condition starting fromt he given start node or the graph root.
Note
objects are only reachable from the graph root when there is a reference from the root to the node (either directly or through another node)
- ObjectGraph.nodes()¶
Yield all nodes in the graph.
- ObjectGraph.get_edges(node)¶
Returns two iterators that yield the nodes reaching by outgoing and incoming edges for node. Note that the iterator for incoming edgets can yield
None
when the node is a root of the graph.Use
None
for node to fetch the roots of the graph.
- ObjectGraph.filterStack(filters)¶
Filter the ObjectGraph in-place by removing all edges to nodes that do not match every filter in the given filter list
Returns a tuple containing the number of: (nodes_visited, nodes_removed, nodes_orphaned)
- ObjectGraph.edgeData(fromNode, toNode):
- Return the edge data associated with the edge from *fromNode*
- to *toNode*. Raises :exc:`KeyError` when no such edge exists.
- ObjectGraph.updateEdgeData(fromNode, toNode, edgeData)¶
Replace the data associated with the edge from fromNode to toNode by edgeData.
Raises
KeyError
when the edge does not exist.
Debug output¶
- ObjectGraph.debug¶
The current debug level.
- ObjectGraph.msg(level, text, \*args)¶
Print a debug message at the current indentation level when the current debug level is level or less.
- ObjectGraph.msgin(level, text, \*args)¶
Print a debug message when the current debug level is level or less, and increase the indentation level.
- ObjectGraph.msgout(level, text, \*args)¶
Decrease the indentation level and print a debug message when the current debug level is level or less.