
    8Cf|
                         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
y)zVarious base classes.    )	coroutine)	Coroutine)get_running_loopc                   @     e Zd Zd Zed        Zd Z fdZd Z xZ	S )	AsyncBasec                 .    || _         || _        || _        y N)_file	_executor	_ref_loop)selffileloopexecutors       M/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/aiofiles/base.py__init__zAsyncBase.__init__   s    
!    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{   }|r|S t        7 w)zSimulate normal file iteration.N)readlineStopAsyncIteration)r   lines     r   	__anext__zAsyncBase.__anext__   s'     ]]_$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	   )r-   r   s    r   r
   zAsyncIndirectBase._file'   s    ~~r   c                      y r	   r   )r   vs     r   r
   zAsyncIndirectBase._file+   s    r   )r$   r%   r&   r   r'   r
   setterr(   r)   s   @r   r+   r+   !   s4    /
     \\ 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y)_ContextManager_coro_objc                      || _         d | _        y r	   r7   )r   coros     r   r   z_ContextManager.__init__3   s    
	r   c                 8    | j                   j                  |      S r	   )r8   send)r   values     r   r=   z_ContextManager.send7   s    zzu%%r   Nc                     || j                   j                  |      S || j                   j                  ||      S | j                   j                  |||      S r	   )r8   throw)r   typvaltbs       r   r@   z_ContextManager.throw:   sQ    ;::##C((Z::##C--::##Cb11r   c                 6    | j                   j                         S r	   )r8   closer   s    r   rE   z_ContextManager.closeB   s    zz!!r   c                 .    | j                   j                  S r	   )r8   gi_framer   s    r   rG   z_ContextManager.gi_frameE   s    zz"""r   c                 .    | j                   j                  S r	   )r8   
gi_runningr   s    r   rI   z_ContextManager.gi_runningI   s    zz$$$r   c                 .    | j                   j                  S r	   )r8   gi_coder   s    r   rK   z_ContextManager.gi_codeM   s    zz!!!r   c                 $    | j                  d       S r	   )r=   r   s    r   __next__z_ContextManager.__next__Q   s    yyr   c              #   :   K   | j                   E d {   }|S 7 wr	   r8   r   resps     r   __iter__z_ContextManager.__iter__T   s     **$ %   c              #   :   K   | j                   E d {   }|S 7 wr	   rO   rP   s     r   	__await__z_ContextManager.__await__Y   s     **$ %rS   c                 :   K   | j                    d {   }|S 7 wr	   rO   rP   s     r   r#   z_ContextManager.__anext__]   s     ZZ  rS   c                 X   K   | j                    d {   | _        | j                  S 7 wr	   r7   r   s    r   
__aenter__z_ContextManager.__aenter__a   s#     **$	yy %s   *(*c                 N   K   | j                   j                          d | _         y wr	   )r9   rE   )r   exc_typeexcrC   s       r   	__aexit__z_ContextManager.__aexit__e   s     			s   #%)NN)r$   r%   r&   	__slots__r   r=   r@   rE   r'   rG   rI   rK   rM   r   rR   rU   r#   rX   r\   r   r   r   r6   r6   0   s    !I&2" # # % % " "  r   r6   c                       e Zd ZdZd Zy)AiofilesContextManagerz/An adjusted async context manager for aiofiles.c                    K   t               j                  d | j                  j                  j                  |||       d {    d | _        y 7 wr	   )r   run_in_executorr9   r
   __exit__)r   rZ   exc_valexc_tbs       r   r\   z AiofilesContextManager.__aexit__m   sH      00$))//**Hgv
 	
 	
 		
s   ?AAAN)r$   r%   r&   __doc__r\   r   r   r   r_   r_   j   s
    9r   r_   N)re   typesr   collections.abcr   asyncior   r   r+   r6   r_   r   r   r   <module>ri      s@      % $% %4	 7i 7t_ r   