
     i|
                         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          Z	 G d de	          Z
dS )zVarious base classes.    )	coroutine)	Coroutine)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       U/root/.openclaw/workspace/.venvs/songid/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dZd Zed             Z	ed             Z
ed	             Zd
 Zed             Zd Zd Zd Zd ZdS )_ContextManager_coro_objc                 "    || _         d | _        d S r	   r7   )r   coros     r   r   z_ContextManager.__init__3   s    
			r   c                 6    | j                             |          S r	   )r8   send)r   values     r   r=   z_ContextManager.send7   s    zu%%%r   Nc                     || j                             |          S || j                             ||          S | j                             |||          S r	   )r8   throw)r   typvaltbs       r   r@   z_ContextManager.throw:   sT    ;:##C(((Z:##C---:##Cb111r   c                 4    | j                                         S r	   )r8   closer   s    r   rE   z_ContextManager.closeB   s    z!!!r   c                     | j         j        S r	   )r8   gi_framer   s    r   rG   z_ContextManager.gi_frameE   s    z""r   c                     | j         j        S r	   )r8   
gi_runningr   s    r   rI   z_ContextManager.gi_runningI   s    z$$r   c                     | j         j        S r	   )r8   gi_coder   s    r   rK   z_ContextManager.gi_codeM   s    z!!r   c                 ,    |                      d           S r	   )r=   r   s    r   __next__z_ContextManager.__next__Q   s    yyr   c              #   $   K   | j         E d {V }|S r	   r8   r   resps     r   __iter__z_ContextManager.__iter__T   s$      *$$$$$$r   c              #   $   K   | j         E d {V }|S r	   rO   rP   s     r   	__await__z_ContextManager.__await__Y   s$      *$$$$$$r   c                 $   K   | j          d {V }|S r	   rO   rP   s     r   r#   z_ContextManager.__anext__]   s$      Zr   c                 8   K   | j          d {V | _        | j        S r	   r7   r   s    r   
__aenter__z_ContextManager.__aenter__a   s)      *$$$$$$	yr   c                 J   K   | j                                          d | _         d S r	   )r9   rE   )r   exc_typeexcrC   s       r   	__aexit__z_ContextManager.__aexit__e   s#      				r   )NN)r$   r%   r&   	__slots__r   r=   r@   rE   r'   rG   rI   rK   rM   r   rR   rT   r#   rW   r[   r   r   r   r6   r6   0   s       !I  & & &2 2 2 2" " " # # X# % % X% " " X"     Y          r   r6   c                       e Zd ZdZd ZdS )AiofilesContextManagerz/An adjusted async context manager for aiofiles.c                    K   t                                          d | j        j        j        |||           d {V  d | _        d S r	   )r   run_in_executorr9   r
   __exit__)r   rY   exc_valexc_tbs       r   r[   z AiofilesContextManager.__aexit__m   sa        00$)/*Hgv
 
 	
 	
 	
 	
 	
 	
 	
 			r   N)r$   r%   r&   __doc__r[   r   r   r   r^   r^   j   s)        99    r   r^   N)rd   typesr   collections.abcr   asyncior   r   r+   r6   r^   r   r   r   <module>rh      s            % % % % % % $ $ $ $ $ $% % % % % % % %4    	   7 7 7 7 7i 7 7 7t    _     r   