
    D˝i                         d dl mZ d dlmZ d dlmZ d dlmZmZ d Z	 G d d      Z
 G d d	e
      Z G d
 dee      Zy)    )get_running_loop)	Awaitable)AbstractAsyncContextManager)partialwrapsc                 6     t               d d d fd
       }|S )N)loopexecutorc                 z   K   | 
t               } t        g|i |}| j                  ||       d {   S 7 wN)r   r   run_in_executor)r	   r
   argskwargspfuncfuncs        F/home/leshdev/mybot/venv/lib/python3.12/site-packages/aiofiles/base.pyrunzwrap.<locals>.run   sA     <#%D.t.v.))(E::::s   1;9;)r   )r   r   s   ` r   wrapr      s%    
4["T ; ; J    c                   @     e Zd Zd Zed        Zd Z fdZd Z xZ	S )	AsyncBasec                 .    || _         || _        || _        y r   )_file	_executor	_ref_loop)selffiler	   r
   s       r   __init__zAsyncBase.__init__   s    
!r   c                 2    | j                   xs
 t               S r   )r   r   r   s    r   _loopzAsyncBase._loop   s    ~~3!1!33r   c                     | S )zWe are our own iterator. r    s    r   	__aiter__zAsyncBase.__aiter__   s    r   c                 R    t         |          dz   t        | j                        z   S )Nz
 wrapping )super__repr__reprr   )r   	__class__s    r   r'   zAsyncBase.__repr__    s$    w!L04

3CCCr   c                 R   K   | j                          d{   x}r|S t        7 w)zSimulate normal file iteration.N)readlineStopAsyncIteration)r   lines     r   	__anext__zAsyncBase.__anext__#   s,      ((4(K   )s   '%')
__name__
__module____qualname__r   propertyr!   r$   r'   r.   __classcell__r)   s   @r   r   r      s,    
 4 4D!r   r   c                   R     e Zd Z fdZed        Zej                  d        Z xZS )AsyncIndirectBasec                 D    || _         || _        t        |   d ||       y r   )	_indirect_namer&   r   )r   namer	   r
   indirectr)   s        r   r   zAsyncIndirectBase.__init__,   s"    !
tX.r   c                 "    | j                         S r   )r8   r    s    r   r   zAsyncIndirectBase._file1   s    ~~r   c                      y r   r#   )r   vs     r   r   zAsyncIndirectBase._file5   s    r   )r/   r0   r1   r   r2   r   setterr3   r4   s   @r   r6   r6   +   s4    /
     \\ r   r6   c                   ,    e Zd ZdZdZd Zd Zd Zd Zy)AiofilesContextManagerz/An adjusted async context manager for aiofiles._coro_objc                      || _         d | _        y r   rB   )r   coros     r   r   zAiofilesContextManager.__init__?   s    
	r   c              #      K   | j                   '| j                  j                         E d {   | _         | j                   S 7 wr   )rD   rC   	__await__r    s    r   rH   z AiofilesContextManager.__await__C   s6     99#'::#7#7#99DIyy :s   *AAAc                 "   K   |  d {   S 7 wr   r#   r    s    r   
__aenter__z!AiofilesContextManager.__aenter__H   s     zzs   c                    K   t               j                  d | j                  j                  j                  |||       d {    d | _        y 7 wr   )r   r   rD   r   __exit__)r   exc_typeexc_valexc_tbs       r   	__aexit__z AiofilesContextManager.__aexit__K   sH      00$))//**Hgv
 	
 	
 		
s   ?AAAN)	r/   r0   r1   __doc__	__slots__r   rH   rJ   rP   r#   r   r   rA   rA   :   s    9!I
r   rA   N)asyncior   collections.abcr   
contextlibr   	functoolsr   r   r   r   r6   rA   r#   r   r   <module>rW      s;    $ % 2 $! !2	 Y(C r   