
    EEi                     R    d dl Z d dlmZ ddlmZ  G d d      Z G d d      Zd	 Zy)
    N)wraps   )isasyncgenfunctionc                       e Zd Zd Zd Zd Zy)aclosingc                     || _         y N_aiter)selfaiters     a/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/async_generator/_util.py__init__zaclosing.__init__   s	        c                 "   K   | j                   S wr	   r
   r   s    r   
__aenter__zaclosing.__aenter__
   s     {{s   c                 T   K   | j                   j                          d {    y 7 wr	   )r   aclose)r   argss     r   	__aexit__zaclosing.__aexit__   s     kk  """s   (&(N)__name__
__module____qualname__r   r   r    r   r   r   r      s    #r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)_AsyncGeneratorContextManagerc                 \    |j                   | _         ||i |j                         | _        y r	   )r   
_func_name	__aiter___agen)r   funcr   kwdss       r   r   z&_AsyncGeneratorContextManager.__init__   s'    --4(4(224
r   c                    K   t         j                  dk  r| j                   d {   | _        	 | j                  j                  d        d {   S 7 -7 # t        $ r t        d      d w xY ww)N)         zasync generator didn't yield)sysversion_infor!   asendStopAsyncIterationRuntimeErrorr   s    r   r   z(_AsyncGeneratorContextManager.__aenter__   sg     i'#zz)DJ	I))$/// */! 	I=>DH	Is8   #A0A	A0A AA A0A A--A0c                   K   t        | j                        4 d {    |/	 | j                  j                  d        d {    t        d      |J 	 | j                  j                  |||       d {    t        d      7 j7 F# t        $ r Y d d d       d {  7   yw xY w7 3# t        $ r }||ucY d }~cd d d       d {  7   S d }~wt        $ rZ}||u rY d }~d d d       d {  7   yt        |t        t        f      r$|j                  |u rY d }~d d d       d {  7   y d }~w t        j                         d   |u rY d d d       d {  7   y xY w# 1 d {  7  sw Y   y xY ww)Nzasync generator didn't stopFz*async generator didn't stop after athrow()r   )r   r!   r*   r,   r+   athrow
isinstanceStopIteration	__cause__r(   exc_info)r   typevalue	tracebackexcs        r   r   z'_AsyncGeneratorContextManager.__aexit__&   s    DJJ' -	 -	|F****4000 ''DEE
 ((( **++D%CCC&D -	 1) ! -	 -	 -	! D * .
  u,-/-	 -	 -	0 $ 
e|$7-	 -	 -	> #5=:L*MN # 6$C-	 -	 -	D 
 ||~a(E1$Y-	 -	 -	Z [-	 -	 -	s-  E<BE<E'BB	BE' B-7B+8B-E<	B	B(E'E< B#!E<'B((E'+B--	E$6C9E$:E'>E<
CE<E$D2!E'%E<0C31E<7$D2E'E<*D-+E<1D22E$E'E<EE<#E$$E''E9-E0.E95E<c                 L    t        dj                  | j                              )Nz>use 'async with {func_name}(...)', not 'with {func_name}(...)')	func_name)r,   formatr   r   s    r   	__enter__z'_AsyncGeneratorContextManager.__enter__V   s"    LFT__F-
 	
r   c                     J d       )Nz#Never called, but should be definedr   r   s    r   __exit__z&_AsyncGeneratorContextManager.__exit__\   s    ???ur   N)r   r   r   r   r   r   r:   r<   r   r   r   r   r      s    5I.`
@r   r   c                 h     t               st        d      t                fd       }d|_        |S )z Like @contextmanager, but async.z{must be an async generator (native or from async_generator; if using @async_generator then @acontextmanager must be on top.c                      t        | |      S r	   )r   )r   r#   r"   s     r   helperz#asynccontextmanager.<locals>.helperh   s    ,T4>>r   T)r   	TypeErrorr   __returns_acontextmanager__)r"   r?   s   ` r   asynccontextmanagerrB   `   sE    d#N
 	

 4[? ? *.F&Mr   )r(   	functoolsr   _implr   r   r   rB   r   r   r   <module>rE      s,    
  %# #&D@ D@Nr   