ó
    …~iA  ã                   óx   • S r SSKrSSKrSS/r\R
                  " SS9S	S j5       r\R
                  S
S j5       rg)zT
Provides functions for finding and testing for locally `(k, l)`-connected
graphs.

é    NÚkl_connected_subgraphÚis_kl_connectedT)Úreturns_graphc                 ó  • [         R                  " U 5      nSnSnU(       Ga9  Sn[        UR                  5       5       GH  nUu  pšU(       a_  Xš1n[	        U5       H-  nUR                  5        H  nUR                  X   5        M     M/     U R                  U5      R                  5       nO[         R                  " U 5      nXš/nSnSnU(       aV  US-  nUU:¼  a  SnOHU	nU H  nUU:w  d  M  UR                  UU5        UnM!      [        R                  " XéU
5      nU(       a  MV  US:X  d  Mð  UR                  Xš5        SnU(       d  GM  SnGM     U(       a  GM9  U(       a  XV4$ U$ ! [        R                   a    Sn Ncf = f)aµ  Returns the maximum locally `(k, l)`-connected subgraph of `G`.

A graph is locally `(k, l)`-connected if for each edge `(u, v)` in the
graph there are at least `l` edge-disjoint paths of length at most `k`
joining `u` to `v`.

Parameters
----------
G : NetworkX graph
    The graph in which to find a maximum locally `(k, l)`-connected
    subgraph.

k : integer
    The maximum length of paths to consider. A higher number means a looser
    connectivity requirement.

l : integer
    The number of edge-disjoint paths. A higher number means a stricter
    connectivity requirement.

low_memory : bool
    If this is True, this function uses an algorithm that uses slightly
    more time but less memory.

same_as_graph : bool
    If True then return a tuple of the form `(H, is_same)`,
    where `H` is the maximum locally `(k, l)`-connected subgraph and
    `is_same` is a Boolean representing whether `G` is locally `(k,
    l)`-connected (and hence, whether `H` is simply a copy of the input
    graph `G`).

Returns
-------
NetworkX graph or two-tuple
    If `same_as_graph` is True, then this function returns a
    two-tuple as described above. Otherwise, it returns only the maximum
    locally `(k, l)`-connected subgraph.

See also
--------
is_kl_connected

References
----------
.. [1] Chung, Fan and Linyuan Lu. "The Small World Phenomenon in Hybrid
       Power Law Graphs." *Complex Networks*. Springer Berlin Heidelberg,
       2004. 89--104.

TFr   é   )ÚcopyÚdeepcopyÚlistÚedgesÚrangeÚupdateÚsubgraphÚremove_edgeÚnxÚshortest_pathÚNetworkXNoPath)ÚGÚkÚlÚ
low_memoryÚsame_as_graphÚHÚgraphOKÚdeleted_someÚedgeÚuÚvÚvertsÚiÚwÚG2ÚpathÚcntÚacceptÚprevs                      ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/networkx/algorithms/hybrid.pyr   r      sm  € ôf 	�Š�aÓ€Aà€GØ€Lß
Øˆô
 ˜Ÿ™›—OˆDØ‰FˆQæØ˜�Ü˜qž�AØ"ŸZ™Zž\˜ØŸ™ Q¡TÖ*ó *ñ "ð —Z‘Z Ó&×+Ñ+Ó-‘ä—]’] 1Ó%�à�6ˆDØˆCØˆFÞØ�q‘�Ø˜!“8Ø�FØà�Û�AØ˜q•yØŸ™ t¨QÔ/Ø šñ ð
!Ü×+Ò+¨B°1Ó5�D÷ �$ð" ˜�{Ø—‘˜aÔ#Ø#�ß‘7Ø#“GñI $÷ ‰,öZ Øˆ|ÐØ€Høô ×(Ñ(ó !Ø ’Dð!ús   ÄE(Å(FÆ Fc           
      ó\  • SnU R                  5        Hô  nUu  pgU(       ad  Xg1n[        U5       H@  n	UR                  5        V
s/ s H"  o¨R                  U R	                  U
5      5      PM$       n
MB     U R                  U5      nO[        R                  " U 5      nXg/nSnSnU(       aS  US-  nXÒ:¼  a  SnOFUnU H  n
X¯:w  d  M
  UR                  Xú5        U
nM      [        R                  " X¶U5      nU(       a  MS  US:X  d  Mñ  Sn  U$    U$ s  sn
f ! [        R                   a    Sn N7f = f)aå  Returns True if and only if `G` is locally `(k, l)`-connected.

A graph is locally `(k, l)`-connected if for each edge `(u, v)` in the
graph there are at least `l` edge-disjoint paths of length at most `k`
joining `u` to `v`.

Parameters
----------
G : NetworkX graph
    The graph to test for local `(k, l)`-connectedness.

k : integer
    The maximum length of paths to consider. A higher number means a looser
    connectivity requirement.

l : integer
    The number of edge-disjoint paths. A higher number means a stricter
    connectivity requirement.

low_memory : bool
    If this is True, this function uses an algorithm that uses slightly
    more time but less memory.

Returns
-------
bool
    Whether the graph is locally `(k, l)`-connected subgraph.

See also
--------
kl_connected_subgraph

References
----------
.. [1] Chung, Fan and Linyuan Lu. "The Small World Phenomenon in Hybrid
       Power Law Graphs." *Complex Networks*. Springer Berlin Heidelberg,
       2004. 89--104.

Tr   r   F)r   r   r   r   Ú	neighborsr   r	   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   s                   r&   r   r   w   s*  € ðR €GØ—‘–	ˆØ‰ˆæØ�FˆEÜ˜1–X�Ø7<·z±z´|ÓD²|°!—‘˜aŸk™k¨!›nÖ-±|ÓDñ à—‘˜EÓ"‰Bä—’˜qÓ!ˆBàˆvˆØˆØˆÞØ�1‰HˆCØ‹xØ�ØàˆDÛ�Ø•9Ø—N‘N 4Ô+Ø’Dñ ð
Ü×'Ò'¨¨qÓ1�÷ ˆdð" �Q�;ØˆGØà€NñG ðF €Nùò; Eøô, ×$Ñ$ó Ø’ðús   Á)DÃDÄD+Ä*D+)FF)F)Ú__doc__r   Únetworkxr   Ú__all__Ú_dispatchabler   r   © ó    r&   Ú<module>r/      s[   ðñó ã à"Ð$5Ð
6€ð ×Ò Ñ%óeó &ðeðP ×ÑóLó ñLr.   