aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/networkx/generators/ego.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/networkx/generators/ego.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/networkx/generators/ego.py')
-rw-r--r--.venv/lib/python3.12/site-packages/networkx/generators/ego.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/networkx/generators/ego.py b/.venv/lib/python3.12/site-packages/networkx/generators/ego.py
new file mode 100644
index 00000000..1c705430
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/networkx/generators/ego.py
@@ -0,0 +1,66 @@
+"""
+Ego graph.
+"""
+
+__all__ = ["ego_graph"]
+
+import networkx as nx
+
+
+@nx._dispatchable(preserve_all_attrs=True, returns_graph=True)
+def ego_graph(G, n, radius=1, center=True, undirected=False, distance=None):
+ """Returns induced subgraph of neighbors centered at node n within
+ a given radius.
+
+ Parameters
+ ----------
+ G : graph
+ A NetworkX Graph or DiGraph
+
+ n : node
+ A single node
+
+ radius : number, optional
+ Include all neighbors of distance<=radius from n.
+
+ center : bool, optional
+ If False, do not include center node in graph
+
+ undirected : bool, optional
+ If True use both in- and out-neighbors of directed graphs.
+
+ distance : key, optional
+ Use specified edge data key as distance. For example, setting
+ distance='weight' will use the edge weight to measure the
+ distance from the node n.
+
+ Notes
+ -----
+ For directed graphs D this produces the "out" neighborhood
+ or successors. If you want the neighborhood of predecessors
+ first reverse the graph with D.reverse(). If you want both
+ directions use the keyword argument undirected=True.
+
+ Node, edge, and graph attributes are copied to the returned subgraph.
+ """
+ if undirected:
+ if distance is not None:
+ sp, _ = nx.single_source_dijkstra(
+ G.to_undirected(), n, cutoff=radius, weight=distance
+ )
+ else:
+ sp = dict(
+ nx.single_source_shortest_path_length(
+ G.to_undirected(), n, cutoff=radius
+ )
+ )
+ else:
+ if distance is not None:
+ sp, _ = nx.single_source_dijkstra(G, n, cutoff=radius, weight=distance)
+ else:
+ sp = dict(nx.single_source_shortest_path_length(G, n, cutoff=radius))
+
+ H = G.subgraph(sp).copy()
+ if not center:
+ H.remove_node(n)
+ return H