forked from networkx/networkx
-
Notifications
You must be signed in to change notification settings - Fork 0
Design Specification
Dan Schult edited this page Aug 17, 2014
·
4 revisions
Proposed API for Reporting from Di/Multi/Graph
- nodes() - iterator over nodes
- neighbors(n, data=None) - iterator over neighbors of n.
- If data is True: iterator over (nbr, eattr_dict)
- if data not in (None,True): iterator over (nbr, eattr_dict[data])
- degree(nbunch=None, weight=None) - iterator over (n, deg(n))
- if nbunch is not None: only iterate over nodes in nbunch… single node->single value
- if weight is not None: deg(n) is sum of weights on edges instead of number of edges
- edges(nbunch=None, data=None, keys=None) - iterator of 2-tuples (undirected only once)
- if nbunch is not None: iterator of edges from nodes in nbunch (undirected only once)
- if data is True: iterator of edge info (n,nbr,eattr_dict)
- if data not in (None,True): 3-tuple (n,nbr,eattr_dict[data]
- MultiGraph
- if data/key is True/None: iterator of edge info (n,nbr,keydict)
- if data/key is None/True: iterator of 3-tuple edge (n,nbr,key)
- if data/key is True/True: iterator of 4-tuple edge (n,nbr,key,eattr_dict)
- if data not in (True,None): 4-tuple (n,nbr,key,eattr[data])
- get_edge_data(u, v, data=None, key=None) eattr_dict for edge between u,v
- if data is not None: eattr[data] for edge between u,v
- MultiGraph
- if key is None, return eattr_keydict, otherwise look at edge u,v,key
- adjacency_iter(data=None) - iterator of (n, {nbr:eattr, ...}) This is dict-of-dict... better way??
- if data is not None: eattr replaced by eattr[data]