diff options
author | Dan Schult <dschult@colgate.edu> | 2015-07-03 21:57:18 -0400 |
---|---|---|
committer | Dan Schult <dschult@colgate.edu> | 2015-07-03 21:57:18 -0400 |
commit | 7e10758a6ed94b7ad96eacc31dbb4e8c8ca1c71a (patch) | |
tree | c2d4f5409cc3c39f4e26a458aa91901e6c6ddbfa | |
parent | 0adb41890827b629b2ebf76c52f22ab8a7b77e1c (diff) | |
parent | 3028cf31caa04becdf657869419dfd9a3f56b832 (diff) | |
download | networkx-7e10758a6ed94b7ad96eacc31dbb4e8c8ca1c71a.tar.gz |
Merge pull request #1636 from MridulS/degreeupdate
Add comment about single node test in degree method
-rw-r--r-- | networkx/classes/digraph.py | 27 | ||||
-rw-r--r-- | networkx/classes/graph.py | 3 | ||||
-rw-r--r-- | networkx/classes/multidigraph.py | 26 | ||||
-rw-r--r-- | networkx/classes/multigraph.py | 3 |
4 files changed, 45 insertions, 14 deletions
diff --git a/networkx/classes/digraph.py b/networkx/classes/digraph.py index b1fbe6f3..7bd0f19c 100644 --- a/networkx/classes/digraph.py +++ b/networkx/classes/digraph.py @@ -902,13 +902,16 @@ class DiGraph(Graph): [(0, 1), (1, 2)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: succ = self.succ[nbunch] pred = self.pred[nbunch] if weight is None: return len(succ) + len(pred) - return sum(succ[nbr].get(weight, 1) for nbr in succ) + \ - sum(pred[nbr].get(weight, 1) for nbr in pred) + return sum(data.get(weight, 1) for data in succ.values()) + \ + sum(data.get(weight, 1) for data in pred.values()) if nbunch is None: nodes_nbrs=( (n,succs,self.pred[n]) for n,succs in self.succ.items()) @@ -922,8 +925,8 @@ class DiGraph(Graph): def d_iter(): for n,succ,pred in nodes_nbrs: yield (n, - sum((succ[nbr].get(weight,1) for nbr in succ))+ - sum((pred[nbr].get(weight,1) for nbr in pred))) + sum((data.get(weight,1) for data in succ.values()))+ + sum((data.get(weight,1) for data in pred.values()))) return d_iter() @@ -966,10 +969,14 @@ class DiGraph(Graph): [(0, 0), (1, 1)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: + pred = self.pred[nbunch] if weight is None: - return len(self.pred[nbunch]) - return sum(self.pred[nbunch][nbr].get(weight, 1) for nbr in self.pred[nbunch]) + return len(pred) + return sum(data.get(weight, 1) for data in pred.values()) if nbunch is None: nodes_nbrs=self.pred.items() @@ -1027,10 +1034,14 @@ class DiGraph(Graph): [(0, 1), (1, 1)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: + succ = self.succ[nbunch] if weight is None: - return len(self.succ[nbunch]) - return sum(self.succ[nbunch][nbr].get(weight, 1) for nbr in self.succ[nbunch]) + return len(succ) + return sum(data.get(weight, 1) for data in succ.values()) if nbunch is None: nodes_nbrs=self.succ.items() diff --git a/networkx/classes/graph.py b/networkx/classes/graph.py index 9967953e..442cb95a 100644 --- a/networkx/classes/graph.py +++ b/networkx/classes/graph.py @@ -1257,6 +1257,9 @@ class Graph(object): >>> list(G.degree([0,1])) [(0, 1), (1, 2)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: nbrs = self.adj[nbunch] if weight is None: diff --git a/networkx/classes/multidigraph.py b/networkx/classes/multidigraph.py index 4a0eb9f7..d871b33a 100644 --- a/networkx/classes/multidigraph.py +++ b/networkx/classes/multidigraph.py @@ -564,6 +564,9 @@ class MultiDiGraph(MultiGraph,DiGraph): [(0, 1), (1, 2)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: succ = self.succ[nbunch] pred = self.pred[nbunch] @@ -571,8 +574,9 @@ class MultiDiGraph(MultiGraph,DiGraph): indeg = sum([len(data) for data in pred.values()]) outdeg = sum([len(data) for data in succ.values()]) return indeg + outdeg - s = (sum(sum(succ[nbr][node].get(weight, 1) for node in succ[nbr]) for nbr in succ)) + \ - (sum(sum(pred[nbr][node].get(weight, 1) for node in pred[nbr]) for nbr in pred)) + s = (sum(sum(data.get(weight, 1) for data in keydict.values()) + for keydict in succ.values())) + (sum(sum(data.get(weight, 1) + for data in keydict.values()) for keydict in pred.values())) return s if nbunch is None: @@ -640,10 +644,15 @@ class MultiDiGraph(MultiGraph,DiGraph): [(0, 0), (1, 1)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: + pred = self.pred[nbunch] if weight is None: - return sum(len(self.pred[nbunch][node]) for node in self.pred[nbunch]) - return (sum(sum(self.pred[nbunch][nbr][node].get(weight, 1) for node in self.pred[nbunch][nbr]) for nbr in self.pred[nbunch])) + return sum(len(data) for data in pred.values()) + return (sum(sum(data.get(weight,1) for data in keydict.values()) + for keydict in pred.values())) if nbunch is None: nodes_nbrs = self.pred.items() else: @@ -702,10 +711,15 @@ class MultiDiGraph(MultiGraph,DiGraph): [(0, 1), (1, 1)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: + succ = self.succ[nbunch] if weight is None: - return sum(len(self.succ[nbunch][node]) for node in self.succ[nbunch]) - return (sum(sum(self.succ[nbunch][nbr][node].get(weight, 1) for node in self.succ[nbunch][nbr]) for nbr in self.succ[nbunch])) + return sum(len(data) for data in succ.values()) + return (sum(sum(data.get(weight,1) for data in keydict.values()) + for keydict in succ.values())) if nbunch is None: nodes_nbrs = self.succ.items() else: diff --git a/networkx/classes/multigraph.py b/networkx/classes/multigraph.py index 85d53a62..8337643d 100644 --- a/networkx/classes/multigraph.py +++ b/networkx/classes/multigraph.py @@ -755,6 +755,9 @@ class MultiGraph(Graph): [(0, 1), (1, 2)] """ + # Test to see if nbunch is a single node, an iterator of nodes or + # None(indicating all nodes). (nbunch in self) is True when nbunch + # is a single node. if nbunch in self: nbrs = self.adj[nbunch] if weight is None: |