
    Ej(?                    h   U d dl mZ dZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZ d dlmZmZ d dlmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZmZmZ  ed          Z ed          Z  e!            Z" ed           G d de	e                               Z#dfdZ$ ed           G d dee                               Z% ed           G d dee                               Z& G d de	e                   Z'dgdZ(e(fdddhd%Z)dd&did,Z* G d- d.          Z+ e+            Z,d.e-d/<   djd1Z.djd2Z/dkd6Z0dldmd:Z1dnd;Z2dod>Z3dod?Z4edpdA            Z5edqdE            Z5	 drdsdHZ5edtdK            Z6e	 dudvdL            Z6dwdNZ6dxdPZ7	 drdydQZ8ddRdzdUZ9drd{dXZ:d|d\Z;	 d}d~d_Z<dod`Z=ddaddeZ>dS )    )annotations)
accumulatebatchedChaincombinationscombinations_with_replacementcompresscountcycle	dropwhilefilterfalsegroupbyislicepairwisepermutationsproductrepeatstarmaptee	takewhilezip_longestN)AsyncGeneratorAsyncIterableAsyncIterator	AwaitableCallableIterableIterator)	dataclassfield)AnyGenericTypeVarcastoverload   )Lock)CancelScope)cancel_shielded_checkpoint
checkpointcheckpoint_if_cancelledTRF)eqc                  "    e Zd ZU ded<   ddZdS )_IterableAsyncIteratorzIterator[T]iteratorreturnr,   c                   K   t                       d {V  	 t          | j                  }n*# t          $ r t	                       d {V  t
          d w xY wt	                       d {V  |S N)r+   nextr1   StopIterationr)   StopAsyncIteration)selfresults     I/wd/license_services/venv/lib/python3.11/site-packages/anyio/itertools.py	__anext__z _IterableAsyncIterator.__anext__6   s      %'''''''''	/$-((FF 	/ 	/ 	/,.........$$.	/ )*********s	   - 'ANr2   r,   )__name__
__module____qualname____annotations__r;        r:   r0   r0   2   s6         	 	 	 	 	 	rB   r0   iterableIterable[T] | AsyncIterable[T]r2   AsyncIterator[T]c                    t          | t                    r| S t          | t                    r|                                 S t	          t          |                     S r4   )
isinstancer   r   	__aiter__r0   iterrC   s    r:   _iteraterK   B   sQ    (M** (M** $!!###!$x..111rB   c                  :    e Zd ZU dZded<   dZded<   dZded<   dS )	_TeeLinkNzobject | Nonevaluez_TeeLink[T] | Noner5   Fboolfilled)r=   r>   r?   rN   r@   r5   rP   rA   rB   r:   rM   rM   L   sE         E#D####FrB   rM   c                  D    e Zd ZU ded<    ee          Zded<   dd
ZdS )	_TeeStaterE   r1   )default_factoryr'   locklink_TeeLink[T]r2   rO   c                R  K   |j         rdS | j        4 d {V  |j         r	 d d d           d {V  dS t          | j        t                     d {V |_        |j        t          urt                      |_        d|_         	 d d d           d {V  dS # 1 d {V swxY w Y   d S NFT)rP   rT   anextr1   _tee_endrN   rM   r5   )r8   rU   s     r:   fillz_TeeState.fillX   sw     ; 	59 		 		 		 		 		 		 		 		{ 		 		 		 		 		 		 		 		 		 		 		 		 		 		  %T]H========DJz))$JJ	DK		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   	BAB
B #B N)rU   rV   r2   rO   )r=   r>   r?   r@   r    r'   rT   r[   rA   rB   r:   rR   rR   S   sT         t,,,D,,,,     rB   rR   c                  >    e Zd ZU ded<   ded<   ded<   ddZddZdS )_TeeAsyncIteratorz_TeeState[T]_staterV   _linkrO   _element_yieldedrC   5Iterable[T] | AsyncIterable[T] | _TeeAsyncIterator[T]r2   Nonec                    t          |t                    r|j        | _        |j        | _        n4t	          t          |                    | _        t                      | _        d| _        d S )NF)rG   r]   r^   r_   rR   rK   rM   r`   )r8   rC   s     r:   __init__z_TeeAsyncIterator.__init__m   s[     h 122 	$"/DK!DJJ#HX$6$677DK!DJ %rB   r,   c                  K   | j                             | j                   d {V }| j        j        t          u r"| j        st                       d {V  t          |st                       d {V  d| _        t          t          | j        j                  }| j        j        }|J || _        |st                       d {V  |S )NT)r^   r[   r_   rN   rZ   r`   r*   r7   r+   r$   r,   r5   r)   )r8   had_yieldpointrN   	next_links       r:   r;   z_TeeAsyncIterator.__anext__y   s      #{//
;;;;;;;;:x''( # ll"""""""$$ 	,)+++++++++ $Q
())JO	$$$
 	/,.........rB   N)rC   ra   r2   rb   r<   )r=   r>   r?   r@   rd   r;   rA   rB   r:   r]   r]   h   sb         
& 
& 
& 
&     rB   r]   xyc                0   K   t          j        | |          S r4   )operatoradd)rh   ri   s     r:   _operator_addrm      s      <1rB   )initialfunctionCallable[[T, T], Awaitable[T]]rn   T | NoneAsyncGenerator[T, None]c              F  K   t          |           }|<	 t          |           d {V }nO# t          $ r t                       d {V  Y d S w xY wt	                       d {V  |}t                       d {V  |W V  |2 3 d {V } |||           d {V }|W V  6 d S r4   )rK   rY   r7   r*   r+   r)   )rC   ro   rn   r1   totalelements         r:   r   r      s+      !!H	//))))))EE! 	 	 	,,FF	 &'''''''''(*********
KKKK!       ghug........ "s   + AAB )strictnintrv   rO   #AsyncGenerator[tuple[T, ...], None]c                K   |dk     rt          d          t          |           }	 g }t          |          D ]{}	 |                    t	          |           d {V            ,# t
          $ rC |st                       d {V  Y  d S |rt          d          d t          |          W V  Y  d S w xY wt          |          W V  )Nr&   zn must be at least oneTzbatched(): incomplete batch)
ValueErrorrK   rangeappendrY   r7   r*   tuple)rC   rw   rv   r1   batch_s         r:   r   r      s      	1uu1222!!Hq 	 	A
5??2222223333%    $,,&&&&&&&FFF N$%BCCMEll"""" Ells   (A%% B2	$B21B2c                      e Zd Zd	dZd
dZdS )r   	iterablesrD   r2   rr   c                ,    |                      |          S r4   )from_iterable)r8   r   s     r:   __call__zChain.__call__   s     !!),,,rB   XIterable[Iterable[T] | AsyncIterable[T]] | AsyncIterable[Iterable[T] | AsyncIterable[T]]c                 K   d}t          |          }	 |2 3 d {V }t          |          2 3 d {V }d}|W V  6 '6 	 t          |dd           }|8t          d          5   |             d {V  d d d            n# 1 swxY w Y   nQ# t          |dd           }|9t          d          5   |             d {V  d d d            w # 1 swxY w Y   w w xY w|st                       d {V  d S d S )NFTaclose)shield)rK   getattrr(   r*   )r8   r   element_yielded
outer_iterrC   ru   r   s          r:   r   zChain.from_iterable   s	       i((
		#", " " " " " " "h%-h%7%7 " " " " " " "'&*O!MMMMM &8%7 #-*
 Z488F! --- # # &((NNNNNNN# # # # # # # # # # # # # # # Z488F! --- # # &((NNNNNNN# # # # # # # # # # # # # # # # "  	,,	 	sS   B >B <B #B  BB$C0CCCCCCN)r   rD   r2   rr   )r   r   r2   rr   )r=   r>   r?   r   r   rA   rB   r:   r   r      s<        - - - -
     rB   r   chainrc                  K   d t          |           2              d {V }t          t          j        ||                    2 3 d {V }|W V  6 d S )Nc                "   K   g | 3 d {V }|
6 S r4   rA   .0ru   s     r:   
<listcomp>z combinations.<locals>.<listcomp>   .      EEEEEEEEwWEEEE   )rK   	itertoolsr   rC   r   poolcombinations       r:   r   r      s       FE(82D2DEEEEEEEEED%i&<T1&E&EFF       k GFF   Ac                  K   d t          |           2              d {V }t          t          j        ||                    2 3 d {V }|W V  6 d S )Nc                "   K   g | 3 d {V }|
6 S r4   rA   r   s     r:   r   z1combinations_with_replacement.<locals>.<listcomp>   r   r   )rK   r   r   r   s       r:   r   r      s       FE(82D2DEEEEEEEEED%i&MdTU&V&VWW       k XWWr   data	selectors(Iterable[object] | AsyncIterable[object]c                 K   t          |           }t          |          }d}	 	 t          |           d {V }t          |           d {V }n'# t          $ r |st                       d {V  Y d S w xY w|rd}|W V  ]rX   rK   rY   r7   r*   )r   r   data_iteratorselector_iteratorr   datumselectors          r:   r	   r	      s       TNNM ++O	........E"#455555555HH! 	 	 	" # ll"""""""FF		  	"OKKKKs   *A  A43A4startstepAsyncGenerator[int, None]c               v   K   | }	 t                       d {V  |}||z  }t                       d {V  |W V  5r4   )r+   r)   )r   r   rw   rN   s       r:   r
   r
     sj      A%'''''''''	T	(*********rB   c                  K   g }t          |           2 3 d {V }|                    |           |W V  "6 |st                       d {V  d S 	 |D ]}t                       d {V  |W V  r4   )rK   r}   r*   )rC   savedru   s      r:   r   r     s       E!(++       gW ,  ll 	 	G,,MMMMMs   6	predicate Callable[[T], Awaitable[object]]c                  K   d}d}t          |          2 3 d {V }|r | |           d {V rd}d}|W V  %6 |st                       d {V  d S d S rX   rK   r*   )r   rC   r   droppingru   s        r:   r   r   +  s       OH!(++       g 	ii00000000 	 ,  ll s   ;c                  K   d}t          |          2 3 d {V } | |           d {V sd}|W V   6 |st                       d {V  d S d S rX   r   r   rC   r   ru   s       r:   r   r   >  s       O!(++       gYw'''''''' 	"OMMMM ,
  ll s   4'AsyncGenerator[tuple[T, list[T]], None]c                    d S r4   rA   rJ   s    r:   r   r   M  s	     /2crB   keyCallable[[T], Awaitable[R]]'AsyncGenerator[tuple[R, list[T]], None]c                    d S r4   rA   )rC   r   s     r:   r   r   S  s	     /2crB   'Callable[[T], Awaitable[object]] | None,AsyncGenerator[tuple[object, list[T]], None]c               r  K   t          |           }	 t          |           d {V }n%# t          $ r t                       d {V  Y d S w xY w||n ||           d {V }|g}|2 3 d {V }||n ||           d {V }||k    r||f}|}|g}|W V  1|                    |           G6 ||fW V  d S r4   )rK   rY   r7   r*   r}   )rC   r   r1   ru   	group_keyvaluesnext_keycompleted_groups           r:   r   r   Z  s_      !!Hh''''''   ll ;##g,,,>,>,>,>,>,>IYF! # # # # # # #g!k77SS\\/A/A/A/A/A/Ay  '/O IYF!!!!!!MM'"""" " V
s   ) A
A(B/stop
int | Nonec                   d S r4   rA   )rC   r   s     r:   r   r   u  s	    
 "crB   c                   d S r4   rA   )rC   r   r   r   s       r:   r   r   }  s	     "crB   argsc                  K   |st          d          t          |          dk    r"t          dt          |          dz              t          | }d}d}d}dd}|j        dn ||j        |          }|j        d n ||j        |          }|j        dn ||j        |          }	|	dk    rt          |          |dk    s||k    rt                       d {V  d S t          |           }
d}d}|||k     rj	 t          |
           d {V }n'# t          $ r |st                       d {V  Y d S w xY w||k    r||z
  |	z  dk    r|dz  }d}|W V  n|dz  }|d||k     j|st                       d {V  d S d S )Nz+islice expected at least 2 arguments, got 1   z)islice expected at most 4 arguments, got r&   zGIndices for islice() must be None or an integer: 0 <= x <= sys.maxsize.zMStop argument for islice() must be None or an integer: 0 <= x <= sys.maxsize.z5Step for islice() must be a positive integer or None.rN   objectmessagestrr2   rx   c                    	 t          j        t          t          |                     }n# t          $ r t          |          d w xY w|dk     s|t          j        k    rt          |          |S )Nr   )rk   indexr$   r!   	TypeErrorr{   sysmaxsize)rN   r   r   s      r:   normalize_indexzislice.<locals>.normalize_index  sw    	0N4U#3#344EE 	0 	0 	0W%%4/	0 199++W%%%s	   '* Ar   FT)rN   r   r   r   r2   rx   )r   lenslicer   r   r   r{   r*   rK   rY   r7   )rC   r   
slice_argsstart_messagestop_messagestep_messager   r   r   r   r1   r   r   ru   s                 r:   r   r     s_       GEFFF
4yy1}}SCIIPQMSSTTTJ 	R  	X  KL	 	 	 	 # 	
_Z-}== 
 ?" 	_Z_l;; 	 _$//*/<*X*X 	 qyy&&&qyyETMMll!!HEO
,%$,,	!(OO++++++GG! 	 	 	" # ll"""""""FF		 E>>uu}499QJE"OMMMMMQJE ,%$,,   ll s   =D  D76D7!AsyncGenerator[tuple[T, T], None]c                 K   t          |           }	 t          |           d {V }n%# t          $ r t                       d {V  Y d S w xY wd}|2 3 d {V }d}||f}|}|W V  6 |st                       d {V  d S d S rX   r   )rC   r1   previousr   ru   pairs         r:   r   r     s      !!Hx((((((   ll O!       g'"




	 "  ll s   ) A
AA'c               B  K   d t          |           2              d {V }t          |          }||}n9t          |t                    st	          d          |dk     rt          d          t          t          j        ||                    2 3 d {V }|W V  6 d S )Nc                "   K   g | 3 d {V }|
6 S r4   rA   r   s     r:   r   z permutations.<locals>.<listcomp>  r   r   zExpected int as rr   zr must be non-negative)rK   r   rG   rx   r   r{   r   r   )rC   r   r   rw   permutations        r:   r   r     s       FE(82D2DEEEEEEEEEDD		Ay3 3+,,,	
Q1222%i&<T1&E&EFF       k GFFs   B)r   r   r   c               D  K   t          j        |           } | dk     rt          d          g }|D ]C}d t          |          2              d {V }|                    t          |                     Dt          t          j        |d| i          2 3 d {V }|W V  6 d S )Nr   z"repeat argument cannot be negativec                "   K   g | 3 d {V }|
6 S r4   rA   r   s     r:   r   zproduct.<locals>.<listcomp>   s.      IIIIIIII7IIIIr   r   )rk   r   r{   rK   r}   r~   r   r   )r   r   poolsrC   r   rN   s         r:   r   r     s       ^F##Fzz=>>>!#E " "IIhx6H6HIIIIIIIIIU4[[!!!!	 15 H H HII       e JIIs   Bru   timesc               J  K   |	 t                       d {V  | W V  t          j        t          t          |                    }|dk    rt                       d {V  d S |dk    r:t                       d {V  |dz  }t                       d {V  | W V  |dk    8d S d S )NTr   r&   )r*   rk   r   r$   r!   r+   r)   )ru   r   	remainings      r:   r   r     s      }	,,MMMM	 tC//00IA~~ll
a--%'''''''''Q	(*********	 a------rB   Callable[..., Awaitable[R]]lIterable[Iterable[object] | AsyncIterable[object]] | AsyncIterable[Iterable[object] | AsyncIterable[object]]AsyncGenerator[R, None]c                  K   d}t          |          2 3 d {V }d t          |          2              d {V }d} | |  d {V W V  76 |st                       d {V  d S d S )NFc                "   K   g | 3 d {V }|
6 S r4   rA   r   s     r:   r   zstarmap.<locals>.<listcomp>#  s.      EEEEEEEE'EEEEr   Tr   )ro   rC   result_yieldedargs_iterabler   s        r:   r   r     s       N'11 $ $ $ $ $ $ $mEEXm-D-DEEEEEEEEEHdO###########  2
  ll s   A   tuple[AsyncIterator[T], ...]c                0   t          j        t          t          |                    }|dk     rt	          d          |dk    rdS t          |           g}|                    fdt          |dz
            D                        t          |          S )Nr   zn must be >= 0rA   c              3  6   K   | ]}t                    V  d S r4   )r]   )r   r   r1   s     r:   	<genexpr>ztee.<locals>.<genexpr>6  s,      GGQ&x00GGGGGGrB   r&   )	rk   r   r$   r!   r{   r]   extendr|   r~   )rC   rw   	iteratorsr1   s      @r:   r   r   +  s     	tC||$$A1uu)***Avvr **H)1
IGGGG%A,,GGGGGGrB   c                  K   d}t          |          2 3 d {V } | |           d {V s|st                       d {V   d S d}|W V  96 |st                       d {V  d S d S rX   r   r   s       r:   r   r   :  s       O!(++       gYw'''''''' 	" # ll"""""""FF ,  ll s   A)	fillvaluer   r   (AsyncGenerator[tuple[object, ...], None]c                 K   d |D             }t          |          }|st                       d {V  d S dg|z  }d}	 g }t          |          D ]\  }}||         s|                    |            #	 t	          |           d {V }	n8# t
          $ r+ d||<   |dz  }|s|st                       d {V  Y  d S | }	Y nw xY w|                    |	           d}t          |          W V  )Nc                ,    g | ]}t          |          S rA   )rK   )r   rC   s     r:   r   zzip_longest.<locals>.<listcomp>R  s     >>>(##>>>rB   TFr&   )r   r*   	enumerater}   rY   r7   r~   )
r   r   r   
num_activeactivetuple_yieldedr   r   r1   rN   s
             r:   r   r   N  sk      ?>I>>>IYJ llVj FM!(33 	! 	!OE8%= i((("#Hoo------% 	" 	" 	" %ua
! ( +(ll*******FFF!	" MM%    Fmm/s   4B

,B?:B?>B?)rC   rD   r2   rE   )rh   r,   ri   r,   r2   r,   )rC   rD   ro   rp   rn   rq   r2   rr   )rC   rD   rw   rx   rv   rO   r2   ry   )rC   rD   r   rx   r2   ry   )r   rD   r   r   r2   rr   )r   r&   )r   rx   r   rx   r2   r   )rC   rD   r2   rr   )r   r   rC   rD   r2   rr   )rC   rD   r2   r   )rC   rD   r   r   r2   r   r4   )rC   rD   r   r   r2   r   )rC   rD   r   r   r2   rr   )r&   )
rC   rD   r   r   r   r   r   r   r2   rr   )rC   rD   r   r   r2   rr   )rC   rD   r2   r   )rC   rD   r   r   r2   ry   )r   rD   r   rx   r2   ry   )ru   r,   r   r   r2   rr   )ro   r   rC   r   r2   r   )r   )rC   rD   rw   rx   r2   r   )r   r   r   r   r2   r   )?
__future__r   __all__r   rk   r   collections.abcr   r   r   r   r   r   r   dataclassesr   r    typingr!   r"   r#   r$   r%   _core._synchronizationr'   _core._tasksr(   lowlevelr)   r*   r+   r,   r-   r   rZ   r0   rK   rM   rR   r]   rm   r   r   r   r   r@   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   rA   rB   r:   <module>r     s?   " " " " " " ".      



                  ) ( ( ( ( ( ( ( 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ( ( ( ( ( ( % % % % % % U U U U U U U U U UGCLLGCLL688 e    ]1-   2 2 2 2 e    wqz    e    
   ($ $ $ $ $a( $ $ $N    0= 	     4 IN     4       > uww             .       $   &    
2 2 2 
2
 
2 2 2 
2 48    6 
" " " 
" 

 	" " " " 
"H H H HV   , ?C    " ?@          $   & 89       , $ $ $ $ $ $ $ $rB   