
    X\dB                     t    d 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d
S )zVarious base classes.    )	coroutine)	Coroutinec                   0     e Zd Zd Zd Z fdZd Z xZS )	AsyncBasec                 0    || _         || _        || _        d S N)_file_loop	_executor)selffileloopexecutors       -lib/python3.11/site-packages/aiofiles/base.py__init__zAsyncBase.__init__   s    

!    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   r   r   r    __classcell__)r   s   @r   r   r      sj        " " "
  D D D D D% % % % % % %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   r'   )r   coros     r   r   z_ContextManager.__init__   s    
			r   c                 6    | j                             |          S r   )r(   send)r   values     r   r-   z_ContextManager.send#   s    zu%%%r   Nc                     || j                             |          S || j                             ||          S | j                             |||          S r   )r(   throw)r   typvaltbs       r   r0   z_ContextManager.throw&   sT    ;:##C(((Z:##C---:##Cb111r   c                 4    | j                                         S r   )r(   closer   s    r   r5   z_ContextManager.close.   s    z!!!r   c                     | j         j        S r   )r(   gi_framer   s    r   r7   z_ContextManager.gi_frame1   s    z""r   c                     | j         j        S r   )r(   
gi_runningr   s    r   r9   z_ContextManager.gi_running5   s    z$$r   c                     | j         j        S r   )r(   gi_coder   s    r   r;   z_ContextManager.gi_code9   s    z!!r   c                 ,    |                      d           S r   )r-   r   s    r   __next__z_ContextManager.__next__=   s    yyr   c              #   $   K   | j         E d {V }|S r   r(   r   resps     r   __iter__z_ContextManager.__iter__@   s$      *$$$$$$r   c              #   $   K   | j         E d {V }|S r   r?   r@   s     r   	__await__z_ContextManager.__await__E   s$      *$$$$$$r   c                 $   K   | j          d {V }|S r   r?   r@   s     r   r    z_ContextManager.__anext__I   s$      Zr   c                 8   K   | j          d {V | _        | j        S r   r'   r   s    r   
__aenter__z_ContextManager.__aenter__M   s)      *$$$$$$	yr   c                 J   K   | j                                          d | _         d S r   r)   r5   )r   exc_typeexcr3   s       r   	__aexit__z_ContextManager.__aexit__Q   s#      				r   )NN)r!   r"   r#   	__slots__r   r-   r0   r5   propertyr7   r9   r;   r=   r   rB   rD   r    rG   rL   r   r   r   r&   r&      s       !I  & & &2 2 2 2" " " # # X# % % X% " " X"     Y          r   r&   c                       e Zd ZdZd ZdS )AiofilesContextManagerz/An adjusted async context manager for aiofiles.c                 V   K   | j                                          d {V  d | _         d S r   rI   )r   rJ   exc_valexc_tbs       r   rL   z AiofilesContextManager.__aexit__Y   s5      ioo			r   N)r!   r"   r#   __doc__rL   r   r   r   rP   rP   V   s)        99    r   rP   N)rT   typesr   collections.abcr   r   r&   rP   r   r   r   <module>rW      s            % % % % % %% % % % % % % %,7 7 7 7 7i 7 7 7t    _     r   