summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Schult <dschult@colgate.edu>2015-07-03 21:57:18 -0400
committerDan Schult <dschult@colgate.edu>2015-07-03 21:57:18 -0400
commit7e10758a6ed94b7ad96eacc31dbb4e8c8ca1c71a (patch)
treec2d4f5409cc3c39f4e26a458aa91901e6c6ddbfa
parent0adb41890827b629b2ebf76c52f22ab8a7b77e1c (diff)
parent3028cf31caa04becdf657869419dfd9a3f56b832 (diff)
downloadnetworkx-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.py27
-rw-r--r--networkx/classes/graph.py3
-rw-r--r--networkx/classes/multidigraph.py26
-rw-r--r--networkx/classes/multigraph.py3
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: