
    Ng                         d Z ddlmZ ddlmZ ddlmZ  G d d          Z G d de          Z G d	 d
ee          Z	dS )zVarious base classes.    )	Awaitable)AbstractAsyncContextManager)get_running_loopc                   F     e Zd Zd Zed             Zd Z fdZd Z xZ	S )	AsyncBasec                 0    || _         || _        || _        d S N)_file	_executor	_ref_loop)selffileloopexecutors       I/var/www/html/ai-engine/env/lib/python3.11/site-packages/aiofiles/base.py__init__zAsyncBase.__init__   s    
!    c                 ,    | j         pt                      S r	   )r   r   r   s    r   _loopzAsyncBase._loop   s    ~3!1!3!33r   c                     | S )zWe are our own iterator. r   s    r   	__aiter__zAsyncBase.__aiter__   s    r   c                 t    t                                                      dz   t          | j                  z   S )Nz
 wrapping )super__repr__reprr
   )r   	__class__s    r   r   zAsyncBase.__repr__   s-    ww!!L04
3C3CCCr   c                 P   K   |                                   d{V }|r|S t          )zSimulate normal file iteration.N)readlineStopAsyncIteration)r   lines     r   	__anext__zAsyncBase.__anext__   s8      ]]__$$$$$$ 	%K$$r   )
__name__
__module____qualname__r   propertyr   r   r   r#   __classcell__r   s   @r   r   r      s          
 4 4 X4  D D D D D% % % % % % %r   r   c                   T     e Zd Z fdZed             Zej        d             Z xZS )AsyncIndirectBasec                 j    || _         || _        t                                          d ||           d S r	   )	_indirect_namer   r   )r   namer   r   indirectr   s        r   r   zAsyncIndirectBase.__init__"   s3    !
tX.....r   c                 *    |                                  S r	   )r-   r   s    r   r
   zAsyncIndirectBase._file'   s    ~~r   c                     d S r	   r   )r   vs     r   r
   zAsyncIndirectBase._file+   s    r   )r$   r%   r&   r   r'   r
   setterr(   r)   s   @r   r+   r+   !   sp        / / / / /
     X  \  \    r   r+   c                   .    e Zd ZdZdZd Zd Zd Zd ZdS )AiofilesContextManagerz/An adjusted async context manager for aiofiles._coro_objc                 "    || _         d | _        d S r	   r7   )r   coros     r   r   zAiofilesContextManager.__init__5   s    
			r   c              #   j   K   | j         $| j                                        E d {V | _         | j         S r	   )r9   r8   	__await__r   s    r   r=   z AiofilesContextManager.__await__9   s=      9#':#7#7#9#9999999DIyr   c                    K   |  d {V S r	   r   r   s    r   
__aenter__z!AiofilesContextManager.__aenter__>   s      zzzzzzr   c                    K   t                                          d | j        j        j        |||           d {V  d | _        d S r	   )r   run_in_executorr9   r
   __exit__)r   exc_typeexc_valexc_tbs       r   	__aexit__z AiofilesContextManager.__aexit__A   sa        00$)/*Hgv
 
 	
 	
 	
 	
 	
 	
 	
 			r   N)	r$   r%   r&   __doc__	__slots__r   r=   r?   rF   r   r   r   r6   r6   0   s[        99!I    
      r   r6   N)
rG   collections.abcr   
contextlibr   asyncior   r   r+   r6   r   r   r   <module>rL      s      % % % % % % 2 2 2 2 2 2 $ $ $ $ $ $% % % % % % % %4    	       Y(C     r   