ó
    …~iË  ã                   ó„   • S r SSKr/ SQr\R                  S 5       r\R                  S 5       r\R                  S 5       rg)z8
Functions for identifying isolate (degree zero) nodes.
é    N)Ú
is_isolateÚisolatesÚnumber_of_isolatesc                 ó*   • U R                  U5      S:H  $ )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
r   ©Údegree)ÚGÚns     ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/networkx/algorithms/isolate.pyr   r   
   s   € ð< �8‰8�A‹;˜!ÑÐó    c                 ó0   • S U R                  5        5       $ )a&  Iterator 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_degree:

>>> G = nx.DiGraph([(0, 1), (1, 2)])
>>> G.add_node(3)
>>> list(nx.isolates(G))
[3]

c              3   ó:   #   • U  H  u  pUS :X  d  M  Uv •  M     g7f)r   N© )Ú.0r
   Úds      r   Ú	<genexpr>Úisolates.<locals>.<genexpr>V   s   é € Ð/š*‘$�!¨¨Q©�A‰Aš*ùs   ‚’	r   ©r	   s    r   r   r   +   s   € ñV 0˜!Ÿ(™(œ*Ó/Ð/r   c                 ó8   • [        S [        U 5       5       5      $ )a0  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`.

c              3   ó&   #   • U  H  nS v •  M	     g7f)é   Nr   )r   Úvs     r   r   Ú%number_of_isolates.<locals>.<genexpr>k   s   é € Ð&š+�Q�qš+ùs   ‚)Úsumr   r   s    r   r   r   Y   s   € ô$ Ñ&œ( 1œ+Ó&Ó&Ð&r   )Ú__doc__ÚnetworkxÚnxÚ__all__Ú_dispatchabler   r   r   r   r   r   Ú<module>r       sd   ðñó â
:€ð ×Ññó ðð@ ×Ññ*0ó ð*0ðZ ×Ññ'ó ñ'r   