See the post at:
http://groups.google.com/group/sage-support/browse_thread/thread/64b76550609c1019
One way to handle setting display options for different vertices/edges is to have the following conventions:
- If edge_style is the dictionary **edge_style, pass **edge_style into the arrow() commands
- If edge_style is a list, then we want to create (possibly different) edge_style dictionaries for each edge. For each item in the list:
- if the item is a dictionary d, then update all edge_style dictionaries with the dictionary d.
- if the item is a list L with L[0]=list of edges, L[1]=dictionary d, then for each edge in L[0], update its edge_style with d.
Optimize this so that we create a dictionary for an edge iff it has a different edge style than other edges. In other words, first have only one edge_style dictionary. If a list is edges is then specified, then take those out of the default edge_list and update their dictionary, etc. is there a data structure which efficiently partitions objects (maybe Sage partitions!?)