The karbor.services.protection.graph Module¶
-
exception
karbor.services.protection.graph.FoundLoopError¶ Bases:
exceptions.RuntimeError
-
class
karbor.services.protection.graph.GraphNode(value, child_nodes)¶ Bases:
tuple-
child_nodes¶ Alias for field number 1
-
value¶ Alias for field number 0
-
-
class
karbor.services.protection.graph.GraphWalker¶ Bases:
object-
register_listener(graph_walker_listener)¶
-
unregister_listener(graph_walker_listener)¶
-
walk_graph(source_nodes)¶
-
-
class
karbor.services.protection.graph.GraphWalkerListener¶ Bases:
objectInterface for listening to GraphWaler events
Classes that want to be able to use the graph walker to iterate over a graph should implement this interface.
-
on_node_enter(node, already_visited)¶
-
on_node_exit(node)¶
-
-
class
karbor.services.protection.graph.PackGraphWalker(adjacency_list, nodes_dict)¶ Bases:
karbor.services.protection.graph.GraphWalkerListenerPack a list of GraphNode
Allocate a serialized id (sid) for every node and build an adjacency list, suitable for graph unpacking.
-
on_node_enter(node, already_visited)¶
-
on_node_exit(node)¶
-
-
class
karbor.services.protection.graph.PackedGraph(nodes, adjacency)¶ Bases:
tuple-
adjacency¶ Alias for field number 1
-
nodes¶ Alias for field number 0
-
-
karbor.services.protection.graph.build_graph(start_nodes, get_child_nodes_func)¶
-
karbor.services.protection.graph.deserialize_resource_graph(serialized_resource_graph)¶
-
karbor.services.protection.graph.pack_graph(start_nodes)¶ Return a PackedGraph from a list of GraphNodes
Packs a graph into a flat PackedGraph (nodes dictionary, adjacency list).
-
karbor.services.protection.graph.serialize_resource_graph(resource_graph)¶
-
karbor.services.protection.graph.unpack_graph(packed_graph)¶ Return a list of GraphNodes from a PackedGraph
Unpacks a PackedGraph, which must have the property: each parent node in the adjacency list appears after its children.