summaryrefslogtreecommitdiff
path: root/networkx/classes/function.py
diff options
context:
space:
mode:
Diffstat (limited to 'networkx/classes/function.py')
-rw-r--r--networkx/classes/function.py59
1 files changed, 23 insertions, 36 deletions
diff --git a/networkx/classes/function.py b/networkx/classes/function.py
index 5997642c..06c0f278 100644
--- a/networkx/classes/function.py
+++ b/networkx/classes/function.py
@@ -183,6 +183,7 @@ def freeze(G):
G.remove_nodes_from = frozen
G.add_edge = frozen
G.add_edges_from = frozen
+ G.add_weighted_edges_from = frozen
G.remove_edge = frozen
G.remove_edges_from = frozen
G.clear = frozen
@@ -362,13 +363,7 @@ def induced_subgraph(G, nbunch):
[(0, 1), (1, 2)]
"""
induced_nodes = nx.filters.show_nodes(G.nbunch_iter(nbunch))
- if G.is_multigraph():
- if G.is_directed():
- return nx.graphviews.SubMultiDiGraph(G, induced_nodes)
- return nx.graphviews.SubMultiGraph(G, induced_nodes)
- if G.is_directed():
- return nx.graphviews.SubDiGraph(G, induced_nodes)
- return nx.graphviews.SubGraph(G, induced_nodes)
+ return nx.graphviews.subgraph_view(G, induced_nodes)
def edge_subgraph(G, edges):
@@ -413,7 +408,6 @@ def edge_subgraph(G, edges):
[(0, 1), (3, 4)]
"""
nxf = nx.filters
- nxg = nx.graphviews
edges = set(edges)
nodes = set()
for e in edges:
@@ -422,14 +416,14 @@ def edge_subgraph(G, edges):
if G.is_multigraph():
if G.is_directed():
induced_edges = nxf.show_multidiedges(edges)
- return nxg.SubMultiDiGraph(G, induced_nodes, induced_edges)
- induced_edges = nxf.show_multiedges(edges)
- return nxg.SubMultiGraph(G, induced_nodes, induced_edges)
- if G.is_directed():
- induced_edges = nxf.show_diedges(edges)
- return nxg.SubDiGraph(G, induced_nodes, induced_edges)
- induced_edges = nxf.show_edges(edges)
- return nxg.SubGraph(G, induced_nodes, induced_edges)
+ else:
+ induced_edges = nxf.show_multiedges(edges)
+ else:
+ if G.is_directed():
+ induced_edges = nxf.show_diedges(edges)
+ else:
+ induced_edges = nxf.show_edges(edges)
+ return nx.graphviews.subgraph_view(G, induced_nodes, induced_edges)
def restricted_view(G, nodes, edges):
@@ -475,19 +469,18 @@ def restricted_view(G, nodes, edges):
[(2, 3)]
"""
nxf = nx.filters
- nxg = nx.graphviews
- h_nodes = nxf.hide_nodes(nodes)
+ hide_nodes = nxf.hide_nodes(nodes)
if G.is_multigraph():
if G.is_directed():
- h_edges = nxf.hide_multidiedges(edges)
- return nxg.SubMultiDiGraph(G, h_nodes, h_edges)
- h_edges = nxf.hide_multiedges(edges)
- return nxg.SubMultiGraph(G, h_nodes, h_edges)
- if G.is_directed():
- h_edges = nxf.hide_diedges(edges)
- return nxg.SubDiGraph(G, h_nodes, h_edges)
- h_edges = nxf.hide_edges(edges)
- return nxg.SubGraph(G, h_nodes, h_edges)
+ hide_edges = nxf.hide_multidiedges(edges)
+ else:
+ hide_edges = nxf.hide_multiedges(edges)
+ else:
+ if G.is_directed():
+ hide_edges = nxf.hide_diedges(edges)
+ else:
+ hide_edges = nxf.hide_edges(edges)
+ return nx.graphviews.subgraph_view(G, hide_nodes, hide_edges)
@not_implemented_for('undirected')
@@ -496,9 +489,7 @@ def reverse_view(digraph):
Identical to digraph.reverse(copy=False)
"""
- if digraph.is_multigraph():
- return nx.graphviews.MultiReverseView(digraph)
- return nx.graphviews.ReverseView(digraph)
+ return nx.graphviews.reverse_view(digraph)
def to_directed(graph):
@@ -508,9 +499,7 @@ def to_directed(graph):
Note that graph.to_directed defaults to `as_view=False`
while this function always provides a view.
"""
- if graph.is_multigraph():
- return nx.graphviews.MultiDiGraphView(graph)
- return nx.graphviews.DiGraphView(graph)
+ return graph.to_directed()
def to_undirected(graph):
@@ -520,9 +509,7 @@ def to_undirected(graph):
Note that graph.to_undirected defaults to `as_view=False`
while this function always provides a view.
"""
- if graph.is_multigraph():
- return nx.graphviews.MultiGraphView(graph)
- return nx.graphviews.GraphView(graph)
+ return graph.to_undirected(as_view=True)
def create_empty_copy(G, with_data=True):