ó
    Þ jc  ã                   óŠ   • S SK r SSKJr   " S S\5      r " S S\R
                  5      r " S S	\5      r " S
 S\5      rS r	g)é    Né   )Úcollections_abcc                   ó`   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)ÚDirectedGraphé   z&A graph structure with directed edges.c                 ó>   • [        5       U l        0 U l        0 U l        g ©N)ÚsetÚ	_verticesÚ	_forwardsÚ
_backwards©Úselfs    ÚX/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/structs.pyÚ__init__ÚDirectedGraph.__init__	   s   € Ü›ˆŒØˆŒØˆ�ó    c                 ó,   • [        U R                  5      $ r	   )Úiterr   r   s    r   Ú__iter__ÚDirectedGraph.__iter__   ó   € Ü�D—N‘NÓ#Ð#r   c                 ó,   • [        U R                  5      $ r	   )Úlenr   r   s    r   Ú__len__ÚDirectedGraph.__len__   s   € Ü�4—>‘>Ó"Ð"r   c                 ó   • XR                   ;   $ r	   )r   ©r   Úkeys     r   Ú__contains__ÚDirectedGraph.__contains__   s   € Ø—n‘nÑ$Ð$r   c                 óZ  • [        5       n[        U R                  5      Ul        U R                  R	                  5        VVs0 sH  u  p#U[        U5      _M     snnUl        U R
                  R	                  5        VVs0 sH  u  p#U[        U5      _M     snnUl        U$ s  snnf s  snnf )z$Return a shallow copy of this graph.)r   r
   r   r   Úitemsr   )r   ÚotherÚkÚvs       r   ÚcopyÚDirectedGraph.copy   s†   € ä“ˆÜ˜dŸn™nÓ-ˆŒØ15·±×1EÑ1EÔ1GÔHÑ1G©¨˜1œc !›fš9Ñ1GÒHˆŒØ26·/±/×2GÑ2GÔ2IÔJÑ2I©$¨!˜Aœs 1›všIÑ2IÒJˆÔØˆùó IùÛJs   ÁB!Á?B'c                 óÊ   • XR                   ;   a  [        S5      eU R                   R                  U5        [        5       U R                  U'   [        5       U R
                  U'   g)zAdd a new vertex to the graph.zvertex existsN)r   Ú
ValueErrorÚaddr
   r   r   r   s     r   r+   ÚDirectedGraph.add   sI   € à—.‘.Ó Ü˜_Ó-Ð-Ø�‰×Ñ˜3ÔÜ!›eˆ�‰�sÑÜ"›uˆ�‰˜Òr   c                 ó:  • U R                   R                  U5        U R                  R                  U5       H!  nU R                  U   R                  U5        M#     U R                  R                  U5       H!  nU R                  U   R                  U5        M#     g)zCRemove a vertex from the graph, disconnecting all edges from/to it.N)r   Úremover   Úpopr   )r   r   ÚfÚts       r   r.   ÚDirectedGraph.remove'   st   € à�‰×Ñ˜cÔ"Ø—‘×#Ñ# CÖ(ˆAØ�O‰O˜AÑ×%Ñ% cÖ*ñ )à—‘×$Ñ$ SÖ)ˆAØ�N‰N˜1Ñ×$Ñ$ SÖ)ò *r   c                 óT   • XR                   U   ;   =(       a    X R                  U   ;   $ r	   )r   r   ©r   r0   r1   s      r   Ú	connectedÚDirectedGraph.connected/   s%   € Ø—O‘O AÑ&Ñ&×A¨1·±¸qÑ0AÑ+AÐAr   c                 ó°   • X R                   ;  a  [        U5      eU R                  U   R                  U5        U R                  U   R                  U5        g)zWConnect two existing vertices.

Nothing happens if the vertices are already connected.
N)r   ÚKeyErrorr   r+   r   r4   s      r   ÚconnectÚDirectedGraph.connect2   sF   € ð
 —N‘NÓ"Ü˜1“+ÐØ�‰�qÑ×Ñ˜aÔ Ø�‰˜Ñ×Ñ˜qÕ!r   c              #   ón   #   • U R                   R                  5        H  u  pU H  nX4v •  M
     M     g 7fr	   )r   r#   )r   r0   Úchildrenr1   s       r   Ú
iter_edgesÚDirectedGraph.iter_edges<   s/   é € ØŸ>™>×/Ñ/Ö1‰KˆAÛ�Ø�d”
ó ò 2ùs   ‚35c                 ó2   • [        U R                  U   5      $ r	   )r   r   r   s     r   Úiter_childrenÚDirectedGraph.iter_childrenA   s   € Ü�D—N‘N 3Ñ'Ó(Ð(r   c                 ó2   • [        U R                  U   5      $ r	   )r   r   r   s     r   Úiter_parentsÚDirectedGraph.iter_parentsD   s   € Ü�D—O‘O CÑ(Ó)Ð)r   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r    r'   r+   r.   r5   r9   r=   r@   rC   Ú__static_attributes__© r   r   r   r      sB   † Ù0òò
$ò#ò%òò%ò*òBò"òò
)õ*r   r   c                   óF   • \ rS rSrSS jrS rS r\rS rS r	S r
S	 rS
rg)ÚIteratorMappingéH   Nc                 ó<   • Xl         X l        U=(       d    0 U l        g r	   )Ú_mappingÚ	_accessorÚ_appends)r   ÚmappingÚaccessorÚappendss       r   r   ÚIteratorMapping.__init__I   s   € ØŒØ!ŒØŸ 2ˆ�r   c                 ód   • SR                  U R                  U R                  U R                  5      $ )Nz!IteratorMapping({!r}, {!r}, {!r}))ÚformatrP   rQ   rR   r   s    r   Ú__repr__ÚIteratorMapping.__repr__N   s*   € Ø2×9Ñ9Ø�M‰MØ�N‰NØ�M‰Mó
ð 	
r   c                 óR   • [        U R                  =(       d    U R                  5      $ r	   )ÚboolrP   rR   r   s    r   Ú__bool__ÚIteratorMapping.__bool__U   s   € Ü�D—M‘M×2 T§]¡]Ó3Ð3r   c                 óH   • XR                   ;   =(       d    XR                  ;   $ r	   )rP   rR   r   s     r   r    ÚIteratorMapping.__contains__Z   s   € Ø—m‘mÑ#×; s¯m©mÑ';Ð;r   c                 óò   •  U R                   U   n[        R
                  " U R                  U5      U R                  R                  US5      5      $ ! [         a    [        U R                  U   5      s $ f = f)NrK   )rP   r8   r   rR   Ú	itertoolsÚchainrQ   Úget)r   r%   r&   s      r   Ú__getitem__ÚIteratorMapping.__getitem__]   sg   € ð	*Ø—‘˜aÑ ˆAô �Š˜tŸ~™~¨aÓ0°$·-±-×2CÑ2CÀAÀrÓ2JÓKÐKøô ó 	*Ü˜Ÿ™ aÑ(Ó)Ò)ð	*ús   ‚A Á"A6Á5A6c                 ór   ^ • U 4S jT R                    5       n[        R                  " T R                  U5      $ )Nc              3   óH   >#   • U H  oTR                   ;  d  M  Uv •  M     g 7fr	   ©rP   ©Ú.0r%   r   s     €r   Ú	<genexpr>Ú+IteratorMapping.__iter__.<locals>.<genexpr>e   s   øé € ÐC™=�a°T·]±]Ñ,B—‘š=ùó   ƒ"™	")rR   rb   rc   rP   ©r   Úmores   ` r   r   ÚIteratorMapping.__iter__d   s&   ø€ ÜC˜4Ÿ=š=ÓCˆÜ�Š˜tŸ}™}¨dÓ3Ð3r   c                 ór   ^ • [        U 4S jT R                   5       5      n[        T R                  5      U-   $ )Nc              3   óH   >#   • U H  oTR                   ;  d  M  S v •  M     g7f)r   Nri   rj   s     €r   rl   Ú*IteratorMapping.__len__.<locals>.<genexpr>i   s   øé € ÐF™m˜¸¿¹Ñ/E—1‘1šmùrn   )ÚsumrR   r   rP   ro   s   ` r   r   ÚIteratorMapping.__len__h   s+   ø€ ÜÔF˜dŸmšmÓFÓFˆÜ�4—=‘=Ó! DÑ(Ð(r   )rQ   rR   rP   r	   )rE   rF   rG   rH   r   rY   r]   Ú__nonzero__r    re   r   r   rJ   rK   r   r   rM   rM   H   s-   † ô&ò

ò4ð €Kò<òLò4õ)r   rM   c                   ó4   • \ rS rSrSrS rS rS r\rS r	Sr
g)	Ú_FactoryIterableViewém   a&  Wrap an iterator factory returned by `find_matches()`.

Calling `iter()` on this class would invoke the underlying iterator
factory, making it a "collection with ordering" that can be iterated
through multiple times, but lacks random access methods presented in
built-in Python sequence types.
c                 ó   • Xl         S U l        g r	   ©Ú_factoryÚ	_iterable)r   Úfactorys     r   r   Ú_FactoryIterableView.__init__v   s   € ØŒØˆ�r   c                 ó^   • SR                  [        U 5      R                  [        U 5      5      $ ©Nz{}({}))rX   ÚtyperE   Úlistr   s    r   rY   Ú_FactoryIterableView.__repr__z   s!   € Ø�‰œt D›z×2Ñ2´D¸³JÓ?Ð?r   c                 óN   •  [        [        U 5      5        g! [         a     gf = f)NFT)Únextr   ÚStopIterationr   s    r   r]   Ú_FactoryIterableView.__bool__}   s,   € ð	Ü”�d“Ôð øô ó 	Ùð	ús   ‚ —
$£$c                 ó”   • U R                   c  U R                  5       OU R                   n[        R                  " U5      u  U l         nU$ r	   )r~   r}   rb   Útee)r   ÚiterableÚcurrents      r   r   Ú_FactoryIterableView.__iter__†   s;   € à#Ÿ~™~Ñ5ˆD�M‰MŒO¸4¿>¹>ð 	ô #,§-¢-°Ó"9ÑˆŒ˜Øˆr   r|   N©rE   rF   rG   rH   rI   r   rY   r]   rw   r   rJ   rK   r   r   ry   ry   m   s#   † ñòò@òð €Kõr   ry   c                   ó4   • \ rS rSrSrS rS rS r\rS r	Sr
g)	Ú_SequenceIterableViewéŽ   z¦Wrap an iterable returned by find_matches().

This is essentially just a proxy to the underlying sequence that provides
the same interface as `_FactoryIterableView`.
c                 ó   • Xl         g r	   ©Ú	_sequence)r   Úsequences     r   r   Ú_SequenceIterableView.__init__•   s   € Ø!�r   c                 ó`   • SR                  [        U 5      R                  U R                  5      $ r‚   )rX   rƒ   rE   r•   r   s    r   rY   Ú_SequenceIterableView.__repr__˜   s!   € Ø�‰œt D›z×2Ñ2°D·N±NÓCÐCr   c                 ó,   • [        U R                  5      $ r	   )r\   r•   r   s    r   r]   Ú_SequenceIterableView.__bool__›   r   r   c                 ó,   • [        U R                  5      $ r	   )r   r•   r   s    r   r   Ú_SequenceIterableView.__iter__    r   r   r”   Nr�   rK   r   r   r‘   r‘   Ž   s#   † ñò"òDò$ð €Kõ$r   r‘   c                 ó¢   • [        U 5      (       a  [        U 5      $ [        U [        R                  5      (       d  [        U 5      n [        U 5      $ )zCBuild an iterable view from the value returned by `find_matches()`.)Úcallablery   Ú
isinstancer   ÚSequencer„   r‘   )Úmatchess    r   Úbuild_iter_viewr£   ¤   s?   € ä�×ÑÜ# GÓ,Ð,Ü�gœ×7Ñ7×8Ñ8Ü�w“-ˆÜ  Ó)Ð)r   )
rb   Úcompatr   Úobjectr   ÚMappingrM   ry   r‘   r£   rK   r   r   Ú<module>r§      sI   ðÛ å #ô?*�Fô ?*ôD")�o×-Ñ-ô ")ôJ˜6ô ôB$˜Fô $ó,*r   