
    EEi>                        d dl Z d dlmZ d dlmZ d dlZd dlmZmZmZm	Z	 d dl
Z G d d      Zd Zd Zd	 Zed
        ZddZd Z G d d      Z e       Z	 d dl mZmZ  G d d      Z e ejB                  d      r%ejB                  j>                  jE                  e       d Z#d Z$d Z%y# e$ r? d dlZ ej4                  dd      Z G d dej8                        Z e       Zd ZeefdZY w xY w)    N)wraps)	coroutine)getcoroutinestateCORO_CREATEDCORO_CLOSEDCORO_SUSPENDEDc                       e Zd Zd Zy)YieldWrapperc                     || _         y Npayload)selfr   s     a/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/async_generator/_impl.py__init__zYieldWrapper.__init__   s	        N__name__
__module____qualname__r    r   r   r
   r
      s    r   r
   c                     t        |       S r   )r
   values    r   _wrapr      s    r   c                 "    t        | t              S r   )
isinstancer
   boxs    r   _is_wrappedr       s    c<((r   c                     | j                   S r   r   r   s    r   _unwrapr"      s    ;;r   c              #   $   K   t        |       S wr   )r   r   s    r   _yield_r$   a   s     ,s   c                 4   K   t        |        d {   S 7 wr   )r$   r   s    r   yield_r&   i   s     s   c                 X  K   d }t        |       j                  |       }t        |d      r
| d {   }	 t        |      j                  |       d {   }	 	 t	        |       d {   }	 |#t        |      j                  |       d {   }n|j                  |       d {   }T7 |7 [7 H7 %7 # t        $ r} ||      }Y d }~|S d }~ww xY w# t        $ r4}	 |j                  } |        d {  7   |# t        $ r Y |w xY wd }~wt        $ rm}t        j                         }	 |j                  }	  ||  d {  7  }n2# t        $ r} ||      }Y d }~Y d }~|S d }~ww xY w# t        $ r |w xY wY d }~d }~ww xY w# t        $ r} ||      }Y d }~|S d }~ww xY ww)Nc                 :    | j                   r| j                   d   S y )Nr   )args)es    r   unpack_StopAsyncIterationz.yield_from_.<locals>.unpack_StopAsyncIterationy   s    6666!9r   	__await__)type	__aiter__hasattr	__anext__r&   asendStopAsyncIterationGeneratorExitacloseAttributeErrorBaseExceptionsysexc_infoathrow)	delegater+   _i_y_s_e_r_m_xs	            r   yield_from_rB   m   s     
h	!	!(	+Br;X$8%%b)) !":%,z#'8#5#5b#99#%88B</9  ) &0 :/) 226BI5 ! B $JJ	 &  	
 ! \\^	B#%r7]]- 6r: I & H   +&r*D IG+sR  /F*B.F*F B0F F*C )B2*C /B8 B4B8 (B6)B8 -F*0F 2C 4B8 6B8 8	CC	F*CF*	F!C?-
D7C:8D?	DDDDFF0E/=EEEF	E,E'F!F*'E,,F/E;;F>F*FF*	F'F"F*"F''F*c                   2    e Zd Zd Zd Zd Zd ZddZd Zy)		ANextIterc                 .    || _         || _        || _        y r   )_it	_first_fn_first_args)r   itfirst_fn
first_argss       r   r   zANextIter.__init__   s    !%r   c                     | S r   r   r   s    r   r,   zANextIter.__await__   s    r   c                     | j                   9| j                   }| j                  }d x| _         | _         | j                  |g| S | j                  | j                  j                        S r   )rG   rH   _invokerF   __next__)r   rJ   rK   s      r   rP   zANextIter.__next__   s^    >>%~~H))J044DNT-4<<6:66<< 1 122r   c                 N    | j                  | j                  j                  |      S r   )rO   rF   sendr   r   s     r   rR   zANextIter.send   s    ||DHHMM511r   Nc                 R    | j                  | j                  j                  |||      S r   )rO   rF   throwr   r-   r   	tracebacks       r   rU   zANextIter.throw   s    ||DHHNND%CCr   c                     	  || }t	        |      rt        t        |            |S # t         $ r}t        |j                        d }~wt        $ r}t        d      |d }~ww xY w)Nz(async_generator raise StopAsyncIteration)StopIterationr2   r   RuntimeErrorr    r"   )r   fnr)   resultr*   s        r   rO   zANextIter._invoke   so    	YF v00M  	. %QWW--! 	
 :	s    ( 	A#AA#AA#NN)	r   r   r   r   r,   rP   rR   rU   rO   r   r   r   rD   rD      s!    &
32Dr   rD   )get_asyncgen_hooksset_asyncgen_hooksasyncgen_hooks	firstiter	finalizerc                       e Zd Zd Zy)_hooks_storagec                      d | _         d | _        y r   ra   rM   s    r   r   z_hooks_storage.__init__   s    !DN!DNr   Nr   r   r   r   re   re      s    	"r   re   c                  T    t        t        j                  t        j                        S )Nra   )r`   _hooksrb   rc   r   r   r   r^   r^      s     &&&2B2B
 	
r   c                 <   | t         urF| t        |       r| t        _        n-t	        dj                  t        |       j                              |t         urF|t        |      r|t        _        y t	        dj                  t        |      j                              y )Nz#callable firstiter expected, got {}z#callable finalizer expected, got {})	UNSPECIFIEDcallablerh   rb   	TypeErrorformatr-   r   rc   ra   s     r   r_   r_      s    K' HY$7#, 9@@Y00  K' HY$7#, 9@@Y00 	 (r   c                       e Zd Z e       Zd Zej                  dk  rd Znd Ze	d        Z
e	d        Zd Zd Zdd
Zd Zd Zd Zy	)AsyncGeneratorc                 v    || _          |j                         | _        d| _        d | _        d| _        d| _        y )NF)
_coroutiner,   rF   
ag_running
_finalizer_closed_hooks_inited)r   r   s     r   r   zAsyncGenerator.__init__#  s8    #&9&&("r   )         c                    K   | S wr   r   rM   s    r   r.   zAsyncGenerator.__aiter__4  s     Ks   c                     | S r   r   rM   s    r   r.   zAsyncGenerator.__aiter__8  s    Kr   c                 .    | j                   j                  S r   )rq   cr_coderM   s    r   ag_codezAsyncGenerator.ag_code?  s    &&&r   c                 .    | j                   j                  S r   )rq   cr_framerM   s    r   ag_framezAsyncGenerator.ag_frameC  s    '''r   c                 L    | j                  | j                  j                        S r   )_do_itrF   rP   rM   s    r   r0   zAsyncGenerator.__anext__P  s    {{488,,--r   c                 N    | j                  | j                  j                  |      S r   )r   rF   rR   rS   s     r   r1   zAsyncGenerator.asendS  s    {{488==%00r   Nc                 R    | j                  | j                  j                  |||      S r   )r   rF   rU   rV   s       r   r9   zAsyncGenerator.athrowV  s    {{488>>4	BBr   c                 P     j                   sed _         t               \  } _        | |        t        j                  j
                  dk(  r% j                  j                   j                         t         j                        t        u r
t                fd} |       S )NTpypyc                    K   j                   rt        d      	 d_         t        j                  g   d {   d_         S 7 # t        $ r' j
                  j                  j                          w xY w# d_         w xY ww)Nz!async generator already executingTF)rr   
ValueErrorrD   rF   r2   _pypy_issue2786_workarounddiscardrq   )r)   r   start_fns   r   stepz#AsyncGenerator._do_it.<locals>.stepi  s~      !DEE("&&txxADAA
 #( B% //77H #(s8   B
!A A	A B
	A 0A;;A> >	BB
)ru   r^   rs   r7   implementationnamer   addrq   r   r   r2   )r   r   r)   rb   r   s   ```  r   r   zAsyncGenerator._do_itY  s    !!!%D+=+?(Y$$!!&&&0//33DOOD T__-<$&&
	( vr   c                 |  K   t        | j                        }|t        u s| j                  ry d| _        |t        u r| j
                  j                          y 	 | j                  t               d {    t        d      7 # t        t        f$ r( | j                  j                  | j                         Y y w xY ww)NT%async_generator ignored GeneratorExit)r   rq   r   rt   r   rF   closer9   r3   rZ   r2   r   r   )r   states     r   r4   zAsyncGenerator.aclose{  s     !$//2K4<< L  HHNN	H++m,,, FGG	 -12 	E++33DOOD	Es<   AB<B 0B 1B 5B< B 4B96B<8B99B<c                    | j                   j                  | j                         t        | j                        t        u r| j                  j                          t        | j                        t        u r| j                  ss| j                  | j                  |        y | j                  t              }	 |j                  d        t        dj                  | j                  j                              y y # t        t         f$ r Y nt"        $ r t        d      w xY w	 |j                          y # |j                          w xY w)Nzasync_generator {!r} awaited during finalization; install a finalization hook to support this, or wrap it in 'async with aclosing(...):'r   )r   r   rq   r   r   r   r   rt   rs   r9   r3   rR   rZ   rm   r}   co_namer2   rY   )r   throwers     r   __del__zAsyncGenerator.__del__  s   ''//@T__-= OO!!#T__ "019=*%
 ++m4$LL& '6   4 45	  :F1 &'9: $ P&'NOOP  MMOGMMOs*   6C7 .D1 7DD1 DD1 1Er]   )r   r   r   setr   r   r7   version_infor.   propertyr}   r   r0   r1   r9   r   r4   r   r   r   r   ro   ro     st      "%# )#		 ' ' ( (.1CDH($r   ro   c                 N     t                fd       }t        |      |_        |S )Nc                  &    t         | i |      S r   )ro   )r)   kwargscoroutine_makers     r   async_generator_makerz.async_generator.<locals>.async_generator_maker  s    ot>v>??r   )r   id_async_gen_function)r   r   s   ` r   async_generatorr     s3    
?@ @ 133H0I-  r   c                 n    t        t        d      rt        j                  |       ryt        | t              S )N
isasyncgenT)r/   inspectr   r   ro   objs    r   r   r     s*    w%c"c>**r   c                     t        t        d      rt        j                  |       ryt        | dd      t	        |       k(  S )NisasyncgenfunctionTr   )r/   r   r   getattrr   r   s    r   r   r     s7    w,-%%c*3-r2bg==r   r   )&r7   	functoolsr   typesr   r   r   r   r   r   collections.abccollectionsr
   r   r    r"   r$   r&   rB   rD   objectrj   r^   r_   ImportError	threading
namedtupler`   localre   rh   ro   r/   abcregisterr   r   r   r   r   r   <module>r      s   
      
)R     :T* *Z h):V[$ [$| ;??,-OO""++N;!+>w  &+[++4N" "
 F

 &1K '&s   B- -AC10C1