Skip to content

Instantly share code, notes, and snippets.

@harleyholt
Created September 19, 2014 22:25
Show Gist options
  • Save harleyholt/a2f98d548f22732a8f82 to your computer and use it in GitHub Desktop.
Save harleyholt/a2f98d548f22732a8f82 to your computer and use it in GitHub Desktop.
bulk-task-graph.py
import json
from bigdoor.task.worker.bulk import add_resource_identifier, get_tasks, order_tasks
import networkx as nx
colors = ['red', 'blue', 'green', 'yellow', 'violet']
task_type_colors = {}
def run():
data = json.loads(open('reward.json').read())
print '%s objects read' % len(data)
tasks = order_tasks(get_tasks(map(add_resource_identifier, data)))
print '%s tasks to do' % len(tasks)
g = nx.DiGraph()
for task in tasks:
if task['task_type'] not in task_type_colors:
task_type_colors[task['task_type']] = colors.pop()
g.add_node(task['task_id'],
resource_name=task['resource_name'],
task_type=task['task_type'],
task_sequence=task['task_sequence'],
color=task_type_colors[task['task_type']],
label=task['task_sequence'])
for dependency in task['task_dependencies']:
g.add_edge(task['task_id'], dependency)
vis = nx.to_agraph(g)
vis.graph_attr['size'] = '100.25,100.25'
vis.layout(prog='dot')
vis.draw('site.png')
print task_type_colors
return tasks
if __name__ == '__main__':
run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment