
    g                     j    d dl Z d dlmZmZ ddlmZ ddlmZ ddlm	Z	  G d de j                        Zy)	    N)Optionalcast   )ClientConnectionResetError)set_exception)tcp_nodelayc                       e Zd ZdZdej
                  ddfdZedefd       Z	edefd       Z
ddZdd	Zdd
ZddZdej                  ddfdZdee   ddfdZddZy)BaseProtocol)_loop_paused_drain_waiter_connection_lost_reading_paused	transportloopreturnNc                 J    || _         d| _        d | _        d| _        d | _        y NF)r   r   r   r   r   )selfr   s     J/var/www/openai/venv/lib/python3.12/site-packages/aiohttp/base_protocol.py__init__zBaseProtocol.__init__   s'    04
=A$6:    c                     | j                   duS )z&Return True if the connection is open.N)r   r   s    r   	connectedzBaseProtocol.connected   s     ~~T))r   c                     | j                   S )Nr   r   s    r   writing_pausedzBaseProtocol.writing_paused    s    ||r   c                 .    | j                   rJ d| _         y NTr   r   s    r   pause_writingzBaseProtocol.pause_writing$   s    <<r   c                     | j                   sJ d| _         | j                  }|*d | _        |j                         s|j                  d        y y y r   )r   r   done
set_resultr   waiters     r   resume_writingzBaseProtocol.resume_writing(   sO    |||##!%D;;=!!$' ! r   c                     | j                   s0| j                  #	 | j                  j                          d| _         y y y # t        t        t
        f$ r Y  w xY wr    )r   r   pause_readingAttributeErrorNotImplementedErrorRuntimeErrorr   s    r   r)   zBaseProtocol.pause_reading2   sX    ##(B,,. $(D  )C# #$7F    > AAc                     | j                   r0| j                  #	 | j                  j                          d| _         y y y # t        t        t
        f$ r Y  w xY wr   )r   r   resume_readingr*   r+   r,   r   s    r   r/   zBaseProtocol.resume_reading:   sW    DNN$>--/ $)D  %? #$7F r-   r   c                 ^    t        t        j                  |      }t        |d       || _        y r    )r   asyncio	Transportr   r   )r   r   trs      r   connection_madezBaseProtocol.connection_madeB   s%    '##Y/Br   excc                     d | _         | j                  sy | j                  }|y d | _        |j                         ry ||j	                  d        y t        |t        d      |       y NzConnection lost)r   r   r   r#   r$   r   ConnectionError)r   r5   r&   s      r   connection_lostzBaseProtocol.connection_lostG   sd    ||##>!;;=;d# 12r   c                    K   | j                   t        d      | j                  sy | j                  }|!| j                  j                         }|| _        t        j                  |       d {    y 7 wr7   )r   r   r   r   r   create_futurer1   shieldr%   s     r   _drain_helperzBaseProtocol._drain_helper[   sb     >>!,->??||##>ZZ--/F!'DnnV$$$s   A,A6.A4/A6)r   N)__name__
__module____qualname__	__slots__r1   AbstractEventLoopr   propertyboolr   r   r!   r'   r)   r/   BaseTransportr4   r   BaseExceptionr9   r=    r   r   r
   r
   	   s    I;W66 ;4 ; *4 * *   (())>)> 4 
8M#: t (	%r   r
   )r1   typingr   r   client_exceptionsr   helpersr   tcp_helpersr   Protocolr
   rG   r   r   <module>rM      s(     ! 9 " $[%7## [%r   