K idZddlZgdZejdZejdZejdZy)z8 Functions for identifying isolate (degree zero) nodes. N) is_isolateisolatesnumber_of_isolatesc*|j|dk(S)a-Determines whether a node is an isolate. An *isolate* is a node with no neighbors (that is, with degree zero). For directed graphs, this means no in-neighbors and no out-neighbors. Parameters ---------- G : NetworkX graph n : node A node in `G`. Returns ------- is_isolate : bool True if and only if `n` has no neighbors. Examples -------- >>> G = nx.Graph() >>> G.add_edge(1, 2) >>> G.add_node(3) >>> nx.is_isolate(G, 2) False >>> nx.is_isolate(G, 3) True rdegree)Gns a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/networkx/algorithms/isolate.pyrr s< 88A;! c0d|jDS)aIterator over isolates in the graph. An *isolate* is a node with no neighbors (that is, with degree zero). For directed graphs, this means no in-neighbors and no out-neighbors. Parameters ---------- G : NetworkX graph Returns ------- iterator An iterator over the isolates of `G`. Examples -------- To get a list of all isolates of a graph, use the :class:`list` constructor:: >>> G = nx.Graph() >>> G.add_edge(1, 2) >>> G.add_node(3) >>> list(nx.isolates(G)) [3] To remove all isolates in the graph, first create a list of the isolates, then use :meth:`Graph.remove_nodes_from`:: >>> G.remove_nodes_from(list(nx.isolates(G))) >>> list(G) [1, 2] For digraphs, isolates have zero in-degree and zero out_degre:: >>> G = nx.DiGraph([(0, 1), (1, 2)]) >>> G.add_node(3) >>> list(nx.isolates(G)) [3] c32K|]\}}|dk(s |yw)rN).0r ds r zisolates..Vs /$!QQA /s rr s r rr+sV 0!((* //r c8tdt|DS)a\Returns the number of isolates in the graph. An *isolate* is a node with no neighbors (that is, with degree zero). For directed graphs, this means no in-neighbors and no out-neighbors. Parameters ---------- G : NetworkX graph Returns ------- int The number of degree zero nodes in the graph `G`. c3 K|]}dyw)Nr)rvs r rz%number_of_isolates..ks&Qq&s )sumrrs r rrYs$ &(1+& &&r )__doc__networkxnx__all__ _dispatchablerrrrr r rsd :@*0*0Z''r