????

Your IP : 3.138.123.118


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/__pycache__/http_writer.cpython-311.pyc

�

�M~������dZddlZddlZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
ddlmZddlmZdd	lmZd
ZGd�de��Zedd��Zedd��ZeeegedfZeed
gedfZGd�de
��Zdedefd�Zdedd
defd�ZeZ	ddl m!Z!e!jZ"ese"ZdSdS#e#$rYdSwxYw)z"Http related parsers and protocol.�N)�Any�	Awaitable�Callable�
NamedTuple�Optional�Union)�CIMultiDict�)�AbstractStreamWriter)�BaseProtocol)�ZLibCompressor)�
NO_EXTENSIONS)�StreamWriter�HttpVersion�
HttpVersion10�
HttpVersion11c�$�eZdZUeed<eed<dS)r�major�minorN)�__name__�
__module__�__qualname__�int�__annotations__���f/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/aiohttp/http_writer.pyrrs"��������J�J�J��J�J�J�J�Jrr�CIMultiDict[str]c��eZdZ		ddedejdededdf
d�Ze	de
ejfd���Ze	defd	���Z
dd
�Zdejfded
eddfd�Zdeddfd�Zddd�dedededdfd�Zdeddddfd�Zd deddfd�Zdd�ZdS)!rN�protocol�loop�
on_chunk_sent�on_headers_sent�returnc��||_||_d|_d|_d|_d|_d|_d|_d|_||_	||_
dS)NFr)�	_protocolr!�length�chunked�buffer_size�output_size�_eof�	_compress�
_drain_waiter�_on_chunk_sent�_on_headers_sent)�selfr r!r"r#s     r�__init__zStreamWriter.__init__s\��"�����	���������������	�37���!���.;���2A����rc��|jjS�N)r&�	transport�r0s rr4zStreamWriter.transport5s
���~�'�'rc��|jSr3)r&r5s rr zStreamWriter.protocol9s
���~�rc��d|_dS)NT)r(r5s r�enable_chunkingzStreamWriter.enable_chunking=s
������r�deflate�encoding�strategyc�2�t||���|_dS)N)r:r;)r
r,)r0r:r;s   r�enable_compressionzStreamWriter.enable_compression@s��(��H�M�M�M����r�chunkc��t|��}|xj|z
c_|xj|z
c_|j}|jjr|�|���rtd���|�|��dS)Nz!Cannot write to closing transport)	�lenr)r*r4r&�	connected�
is_closing�ConnectionResetError�write)r0r>�sizer4s    r�_writezStreamWriter._writeEs����5�z�z�����D� ������D� ����N�	��~�'�	L�9�+<�	�@T�@T�@V�@V�+<�&�'J�K�K�K���������rTi)�drain�LIMITrGrHc��K�|j�|�|���d{V��t|t��r-|jt	|��kr|�d��}|j�$|j�|���d{V��}|sdS|j�Dt	|��}|j|kr|j|z
|_n|d|j�}d|_|sdS|ry|j	r-dt	|��z�
d��}||zdz}|�|��|j|kr'|r'd|_|�
���d{V��dSdSdSdS)z�Writes chunk of data to a stream.

        write_eof() indicates end of stream.
        writer can't be used after write_eof() method being called.
        write() return drain future.
        N�cr�%x
�asciis
)r.�
isinstance�
memoryview�nbytesr@�castr,�compressr'r(�encoderFr)rG)r0r>rGrH�	chunk_len�
chunk_len_pres      rrDzStreamWriter.writeNs�������*��%�%�e�,�,�,�,�,�,�,�,�,��e�Z�(�(�	(��|�s�5�z�z�)�)��
�
�3�����>�%��.�1�1�%�8�8�8�8�8�8�8�8�E��
����;�"��E�
�
�I��{�i�'�'�"�k�I�5�����m���m�,��������F��		#��|�
8�!)�C��J�J�!6� >� >�w� G� G�
�%��-��7���K�K�������%�'�'�E�'�#$�� ��j�j�l�l�"�"�"�"�"�"�"�"�"�		#�		#�(�'�'�'r�status_line�headersrc��K�|j�|�|���d{V��t||��}|�|��dS)z*Write request/response status and headers.N)r/�_serialize_headersrF)r0rUrV�bufs    r�
write_headerszStreamWriter.write_headersys`����� �,��'�'��0�0�0�0�0�0�0�0�0�!��g�6�6�����C�����rrc��>K�|jrdS|r"|j�|�|���d{V��|jru|r |j�|���d{V��}||j���z
}|r4|jr-dt
|��z�d��}||zdz}n9|jr2|r.dt
|��z�d��}||zdz}nd}|r|�|��|�	���d{V��d|_dS)NrKrLs
0

s0

T)
r+r.r,rQ�flushr(r@rRrFrG)r0r>rSs   r�	write_eofzStreamWriter.write_eof�sh�����9�	��F��	-�T�(�4��%�%�e�,�,�,�,�,�,�,�,�,��>�	)��
=�"�n�5�5�e�<�<�<�<�<�<�<�<���T�^�)�)�+�+�+�E��
=���
=�%��E�
�
�2�:�:�7�C�C�	�!�E�)�,<�<����|�
)��)�!)�C��J�J�!6� >� >�w� G� G�I�%��-�0@�@�E�E�(�E��	��K�K������j�j�l�l����������	�	�	rc��dK�|jj�!|j����d{V��dSdS)zFlush the write buffer.

        The intended use is to write

          await w.write(data)
          await w.drain()
        N)r&r4�
_drain_helperr5s rrGzStreamWriter.drain�sG�����>�#�/��.�.�.�0�0�0�0�0�0�0�0�0�0�0�0�/r)NN)r$N)r)rrrr�asyncio�AbstractEventLoop�_T_OnChunkSent�_T_OnHeadersSentr1�propertyr�	Transportr4r r8�zlib�Z_DEFAULT_STRATEGY�strrr=�bytesrF�boolrDrZr]rGrrrrrs�������
)-�,0�B�B��B��'�B�&�	B�
*�B�
�
B�B�B�B�,�(�8�G�$5�6�(�(�(��X�(���,�����X������(��9P�N�N��N�36�N�	
�N�N�N�N�
�E��d�����.2��)#�)#�)#��)#�&*�)#�:=�)#�	
�)#�)#�)#�)#�V	��	�);�	�	
�	�	�	�	���U��T�����<	1�	1�	1�	1�	1�	1rr�stringr$c�4�d|vsd|vrtd���|S)N�
�
zRNewline or carriage return detected in headers. Potential header injection attack.)�
ValueError)rks r�_safe_headerrp�s1���v�~�~������
1�
�
�	
��MrrUrVc��d�|���D��}|dzd�|��zdz}|�d��S)Nc3�`K�|])\}}t|��dzt|��zV��*dS)z: N)rp)�.0�k�vs   r�	<genexpr>z(_py_serialize_headers.<locals>.<genexpr>�s<����X�X���1�<��?�?�T�)�L��O�O�;�X�X�X�X�X�Xrz
z

zutf-8)�items�joinrR)rUrV�headers_gen�lines    r�_py_serialize_headersr{�sO��X�X��
�
���X�X�X�K����&�+�+�k�":�":�:�Z�G�D��;�;�w���r)$�__doc__r`rf�typingrrrrrr�	multidictr	�abcr�
base_protocolr�compression_utilsr
�helpersr�__all__rrrrirbrcrrhrpr{rX�aiohttp._http_writer�_http_writer�_c_serialize_headers�ImportErrorrrr�<module>r�s��(�(���������H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�!�!�!�!�!�!�%�%�%�%�%�%�'�'�'�'�'�'�-�-�-�-�-�-�"�"�"�"�"�"�
K�������*����
��A�q�!�!�
���A�q�!�!�
��(�E�7�I�d�O�#;�<�=���H�&8�%9�9�T�?�%J�K�L��M1�M1�M1�M1�M1�'�M1�M1�M1�`�������� �s� �5G� �E� � � � �+��	�/�/�/�/�/�/�'�:���2�1����2�2���	�	�	��D�D�	���s�2C�C�C