
    q"h              	         S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJrJr  \" S5      r\" S5      r\" S5      r\\	\   \/ \	\   4   4   r\(       a*  SS	KJr   " S
 S\\\\4   5      r " S S\\\\\4   5      rO\" SSS/5      r\" S/ SQ5      r " S S\\   5      r " S S\\\
\   4   \\\\4   5      r " S S\	\   5      r " S S\	\   5      rSS jr\	rg)    )annotationsN)
namedtuple)
TYPE_CHECKINGCallableGenericIterableIteratorMapping
NamedTupleSequenceTypeVarUnionKTRTCT   )	Criterionc                  *    \ rS rSr% S\S'   S\S'   Srg)RequirementInformation   r   requirementz	CT | Noneparent N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       P/var/www/html/env/lib/python3.13/site-packages/pip/_vendor/resolvelib/structs.pyr   r      s    r    r   c                  8    \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)State   zResolution state in a round.zdict[KT, CT]mappingzdict[KT, Criterion[RT, CT]]criteriaz$list[RequirementInformation[RT, CT]]backtrack_causesr   N)r   r   r   r   __doc__r   r   r   r    r!   r#   r#      s    *-->>r    r#   r   r   )r%   r&   r'   c                      \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSS jrSS j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    r!   __init__DirectedGraph.__init__0   s    "%%,.-/r    c                ,    [        U R                  5      $ r-   )iterr/   r2   s    r!   __iter__DirectedGraph.__iter__5       DNN##r    c                ,    [        U R                  5      $ r-   )lenr/   r2   s    r!   __len__DirectedGraph.__len__8   s    4>>""r    c                    XR                   ;   $ r-   )r/   r3   keys     r!   __contains__DirectedGraph.__contains__;   s    nn$$r    c                j   [        U 5      " 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.)typer.   r/   r0   itemsr1   )r3   otherkvs       r!   copyDirectedGraph.copy>   s    T
dnn-151E1E1GH1G1c!f91GH26//2G2G2IJ2I$!As1vI2I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.   r0   r1   r@   s     r!   rN   DirectedGraph.addF   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/   remover0   popr1   )r3   rA   fts       r!   rQ   DirectedGraph.removeN   st    c"##C(AOOA%%c* )$$S)ANN1$$S) *r    c                T    XR                   U   ;   =(       a    X R                  U   ;   $ r-   )r1   r0   r3   rS   rT   s      r!   	connectedDirectedGraph.connectedV   s%    OOA&&A1q0A+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/   KeyErrorr0   rN   r1   rW   s      r!   connectDirectedGraph.connectY   sF    
 NN"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-   )r0   rF   )r3   rS   childrenrT   s       r!   
iter_edgesDirectedGraph.iter_edgesc   s/     >>//1KAd
  2s   35c                2    [        U R                  U   5      $ r-   )r7   r0   r@   s     r!   iter_childrenDirectedGraph.iter_childrenh   s    DNN3'((r    c                2    [        U R                  U   5      $ r-   )r7   r1   r@   s     r!   iter_parentsDirectedGraph.iter_parentsk   s    DOOC())r    )r1   r0   r/   N)returnNonerh   Iterator[KT]rh   int)rA   r   rh   bool)rh   zDirectedGraph[KT])rA   r   rh   ri   )rS   r   rT   r   rh   rn   )rS   r   rT   r   rh   ri   )rh   zIterator[tuple[KT, KT]])rA   r   rh   rk   )r   r   r   r   r(   r4   r8   r=   rB   rJ   rN   rQ   rX   r\   r`   rc   rf   r   r   r    r!   r*   r*   -   sB    00
$#%%*B"
)*r    r*   c                  n    \ rS rSr S       SS jjrSS jrSS jrSS jrSS jrSS jr	SS	 jr
S
rg)IteratorMappingo   Nc                <    Xl         X l        U=(       d    0 U l        g r-   )_mapping	_accessor_appends)r3   r%   accessorappendss       r!   r4   IteratorMapping.__init__p   s      !3:=br    c                d    SR                  U R                  U R                  U R                  5      $ )Nz!IteratorMapping({!r}, {!r}, {!r}))formatrs   rt   ru   r2   s    r!   __repr__IteratorMapping.__repr__z   s*    299MMNNMM
 	
r    c                R    [        U R                  =(       d    U R                  5      $ r-   )rn   rs   ru   r2   s    r!   __bool__IteratorMapping.__bool__   s    DMM2T]]33r    c                H    XR                   ;   =(       d    XR                  ;   $ r-   )rs   ru   r@   s     r!   rB   IteratorMapping.__contains__   s    mm#;smm';;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)Nr   )rs   r[   r7   ru   	itertoolschainrt   get)r3   rH   rI   s      r!   __getitem__IteratorMapping.__getitem__   sg    	*a A t~~a0$--2C2CAr2J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  J   >#    U  H  oTR                   ;  d  M  Uv   M     g 7fr-   rs   .0rH   r3   s     r!   	<genexpr>+IteratorMapping.__iter__.<locals>.<genexpr>   s     C=aT]],B=   #	#)ru   r   r   rs   r3   mores   ` r!   r8   IteratorMapping.__iter__   s&    C4==Ct}}d33r    c                r   ^  [        U 4S jT R                   5       5      n[        T R                  5      U-   $ )Nc              3  J   >#    U  H  oTR                   ;  d  M  S v   M     g7f)r   Nr   r   s     r!   r   *IteratorMapping.__len__.<locals>.<genexpr>   s     Fm/E11mr   )sumru   r<   rs   r   s   ` r!   r=   IteratorMapping.__len__   s+    FdmmFF4==!D((r    )rt   ru   rs   r-   )r%   zMapping[KT, RT]rv   zCallable[[RT], Iterable[CT]]rw   z Mapping[KT, Iterable[CT]] | Nonerh   ri   rh   strrh   rn   )rA   objectrh   rn   )rH   r   rh   zIterator[CT]rj   rl   )r   r   r   r   r4   r{   r~   rB   r   r8   r=   r   r   r    r!   rp   rp   o   sV    
 59	A A /A 2	A
 
A
4<L4)r    rp   c                  @    \ rS rSrSrS	S jrS
S jrSS jrSS jrSr	g)_FactoryIterableView   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)r3   factorys     r!   r4   _FactoryIterableView.__init__   s    .2r    c                J    [        U 5      R                   S[        U 5       S3$ N())rE   r   listr2   s    r!   r{   _FactoryIterableView.__repr__   s$    t*%%&aT
|155r    c                N     [        [        U 5      5        g! [         a     gf = f)NFT)nextr7   StopIterationr2   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   r   tee)r3   iterablecurrents      r!   r8   _FactoryIterableView.__iter__   s6    &*nn&<4==?$.."+--"9r    r   N)r   zCallable[[], Iterable[RT]]rh   ri   r   r   rh   zIterator[RT]
r   r   r   r   r(   r4   r{   r~   r8   r   r   r    r!   r   r      s    36r    r   c                  @    \ rS rSrSrS	S jrS
S jrSS jrSS jrSr	g)_SequenceIterableView   zWrap 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)r3   sequences     r!   r4   _SequenceIterableView.__init__   s    !r    c                L    [        U 5      R                   SU R                   S3$ r   )rE   r   r   r2   s    r!   r{   _SequenceIterableView.__repr__   s%    t*%%&a'7q99r    c                ,    [        U R                  5      $ r-   )rn   r   r2   s    r!   r~   _SequenceIterableView.__bool__   r:   r    c                ,    [        U R                  5      $ r-   )r7   r   r2   s    r!   r8   _SequenceIterableView.__iter__   r:   r    r   N)r   zSequence[RT]r   r   r   r   r   r    r!   r   r      s    ":$$r    r   c                    [        U 5      (       a  [        U 5      $ [        U [        5      (       d  [	        U 5      n [        U 5      $ )zCBuild an iterable view from the value returned by `find_matches()`.)callabler   
isinstancer   r   r   )matchess    r!   build_iter_viewr      s9    #G,,gx((w- ))r    )r   zMatches[CT]rh   zIterable[CT])
__future__r   r   collectionsr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   Matchesresolvers.criterionr   r   r#   r*   rp   r   r   r   IterableViewr   r    r!   <module>r      s   "  "   T]T]T]
hr8B<'788
9.WRV_ ?
GBBJ/ ? ( =("; w KLE?*GBK ?*D%)gb(2,./R1D %)P8B< :$HRL $(* r    