celery.utils.graph

Dependency graph implementation.

exception celery.utils.graph.CycleError[源代码]

A cycle was detected in an acyclic graph.

class celery.utils.graph.DOT[源代码]

Constants related to the dot format.

ATTR = '{name}={value}'
ATTRSEP = ', '
DIRS = {'digraph': '->', 'graph': '--'}
EDGE = '{INp}"{0}" {dir} "{1}" [{attrs}]'
HEAD = '\n{IN}{type} {id} {{\n{INp}graph [{attrs}]\n'
NODE = '{INp}"{0}" [{attrs}]'
TAIL = '{IN}}}'
class celery.utils.graph.DependencyGraph(it=None, formatter=None)[源代码]

A directed acyclic graph of objects and their dependencies.

Supports a robust topological sort to detect the order in which they must be handled.

Takes an optional iterator of (obj, dependencies) tuples to build the graph from.

警告

Does not support cycle detection.

add_arc(obj)[源代码]

Add an object to the graph.

add_edge(A, B)[源代码]

Add an edge from object A to object B.

I.e. A depends on B.

connect(graph)[源代码]

Add nodes from another graph.

edges()[源代码]

Return generator that yields for all edges in the graph.

format(obj)[源代码]
items()
iteritems()
repr_node(obj, level=1, fmt='{0}({1})')[源代码]
to_dot(fh, formatter=None)[源代码]

Convert the graph to DOT format.

参数:
topsort()[源代码]

Sort the graph topologically.

返回:

of objects in the order in which they must be handled.

返回类型:

List

update(it)[源代码]

Update graph with data from a list of (obj, deps) tuples.

valency_of(obj)[源代码]

Return the valency (degree) of a vertex in the graph.

class celery.utils.graph.GraphFormatter(root=None, type=None, id=None, indent=0, inw='    ', **scheme)[源代码]

Format dependency graphs.

FMT(fmt, *args, **kwargs)[源代码]
attr(name, value)[源代码]
attrs(d, scheme=None)[源代码]
draw_edge(a, b, scheme=None, attrs=None)[源代码]
draw_node(obj, scheme=None, attrs=None)[源代码]
edge(a, b, **attrs)[源代码]
edge_scheme = {'arrowcolor': 'black', 'arrowsize': 0.7, 'color': 'darkseagreen4'}
graph_scheme = {'bgcolor': 'mintcream'}
head(**attrs)[源代码]
label(obj)[源代码]
node(obj, **attrs)[源代码]
node_scheme = {'color': 'palegreen4', 'fillcolor': 'palegreen3'}
scheme = {'arrowhead': 'vee', 'fontname': 'HelveticaNeue', 'shape': 'box', 'style': 'filled'}
tail()[源代码]
term_scheme = {'color': 'palegreen2', 'fillcolor': 'palegreen1'}
terminal_node(obj, **attrs)[源代码]