← back to Atmos Game

assets/gen/.venv/lib/python3.12/site-packages/h11/__pycache__/_events.cpython-312.pyc

174 lines

�

c�bj.��`�ddlZddlmZddlmZddlmZmZmZddl	m
Z
mZddlm
Z
mZddlmZmZmZgd	�Zej(e
j*d
��Zej(ej*d
��ZGd�de�Zed
d��Gd�de��Zed
d��Gd�de��Zed
d��Gd�de��Zed
d��Gd�de��Zed
d��Gd�de��Zed
d��Gd�de��Zed��Gd�de��Zy)�N)�ABC)�	dataclass)�List�Tuple�Union�)�method�request_target)�Headers�normalize_and_validate)�bytesify�LocalProtocolError�validate)�Event�Request�InformationalResponse�Response�Data�EndOfMessage�ConnectionClosed�asciic��eZdZdZdZy)rz$
    Base class for h11 events.
    �N)�__name__�
__module__�__qualname__�__doc__�	__slots__r��b/Users/macstudio3/Projects/atmos-game/assets/gen/.venv/lib/python3.12/site-packages/h11/_events.pyrr s����IrrFT)�init�frozenc
����eZdZUdZdZeed<eed<eed<eed<ddd	�deee	fdeee
eeefe
ee	e	ffdeee	fdeee	fd
eddf�fd
�Z
dZ�xZS)ranThe beginning of an HTTP request.

    Fields:

    .. attribute:: method

       An HTTP method, e.g. ``b"GET"`` or ``b"POST"``. Always a byte
       string. :term:`Bytes-like objects <bytes-like object>` and native
       strings containing only ascii characters will be automatically
       converted to byte strings.

    .. attribute:: target

       The target of an HTTP request, e.g. ``b"/index.html"``, or one of the
       more exotic formats described in `RFC 7320, section 5.3
       <https://tools.ietf.org/html/rfc7230#section-5.3>`_. Always a byte
       string. :term:`Bytes-like objects <bytes-like object>` and native
       strings containing only ascii characters will be automatically
       converted to byte strings.

    .. attribute:: headers

       Request headers, represented as a list of (name, value) pairs. See
       :ref:`the header normalization rules <headers-format>` for details.

    .. attribute:: http_version

       The HTTP protocol version, represented as a byte string like
       ``b"1.1"``. See :ref:`the HTTP version normalization rules
       <http_version-format>` for details.

    )r	�headers�target�http_versionr	r$r%r&�1.1F)r&�_parsedr(�returnNc���t�	|��t|t�rtj|d|�n"tj|dt
||���|satj|dt|��tj|dt|��tj|dt|��nEtj|d|�tj|d|�tj|d|�d}|jD]\}}|dk(s�|dz
}�|jd	k(r|dk(rtd
��|dkDrtd��tt|jd�tt|jd
�y)Nr$�r(r	r%r&rshostrr'zMissing mandatory Host: headerzFound multiple Host: headerszIllegal method characterszIllegal target characters)�super�__init__�
isinstancer�object�__setattr__rr
r$r&rr�	method_rer	�request_target_rer%)
�selfr	r$r%r&r(�
host_count�name�value�	__class__s
         �r r-zRequest.__init__RsJ���	�����g�w�'����t�Y��8�����i�!7���!Q�
�����t�X�x��/?�@����t�X�x��/?�@����t�^�X�l�5K�L����t�X�v�6����t�X�v�6����t�^�\�B��
��<�<�K�D�%��w���a��
�(�����&�:��?�$�%E�F�F���>�$�%C�D�D���D�K�K�)D�E��"�D�K�K�1L�Mr)rrrrr�bytes�__annotations__rr�strrr�boolr-�__hash__�
__classcell__�r7s@r rr(s�����B@�I��M�
���M���+1��(N��e�S�j�!�(N��w��U�5�%�<�%8� 9�4��c�3�h��;P�P�Q�	(N�
�e�S�j�!�(N��E�3�J�'�
(N��(N�
�(N�V�Hrrc
���eZdZUdZeed<eed<eed<eed<dddd	�deee	e
eefe	e
eeffdedeeefdeeefd
eddf�fd
�Z
dd�ZdZ�xZS)�
_ResponseBase)r$r&�reason�status_coder$r&rArBr'rF)r&rAr(r(r)Nc�\��t�|��t|t�rtj|d|�n"tj|dt
||���|s|tj|dt|��tj|dt|��t|t�std��tj|dt|��nEtj|d|�tj|d|�tj|d|�|j�y)Nr$r+rAr&zstatus code must be integerrB)r,r-r.rr/r0rr
�intr�
__post_init__)r3r$rBr&rAr(r7s      �r r-z_ResponseBase.__init__�s����	�����g�w�'����t�Y��8�����i�!7���!Q�
�����t�X�x��/?�@����t�^�X�l�5K�L��k�3�/�(�)F�G�G�
���t�]�C��4D�E����t�X�v�6����t�^�\�B����t�]�K�@����rc��y)Nr�r3s r rEz_ResponseBase.__post_init__�s��r�r)N)rrrrrr9r8rDrrrr:r;r-rEr<r=r>s@r r@r@�s����D�I�
�����M���+1�$'����w��U�5�%�<�%8� 9�4��c�3�h��;P�P�Q���	�
�E�3�J�'���e�S�j�!�
���
��>
��Hrr@c��eZdZdZdd�ZdZy)raAn HTTP informational response.

    Fields:

    .. attribute:: status_code

       The status code of this response, as an integer. For an
       :class:`InformationalResponse`, this is always in the range [100,
       200).

    .. attribute:: headers

       Request headers, represented as a list of (name, value) pairs. See
       :ref:`the header normalization rules <headers-format>` for
       details.

    .. attribute:: http_version

       The HTTP protocol version, represented as a byte string like
       ``b"1.1"``. See :ref:`the HTTP version normalization rules
       <http_version-format>` for details.

    .. attribute:: reason

       The reason phrase of this response, as a byte string. For example:
       ``b"OK"``, or ``b"Not Found"``.

    Nc�z�d|jcxkrdks&ntdj|j���y)N�d��zGInformationalResponse status_code should be in range [100, 200), not {}�rBr�formatrGs r rEz#InformationalResponse.__post_init__�s<���t�'�'�-�#�-�$�%�%+�V�D�,<�,<�%=��
�.rrH�rrrrrEr<rrr rr�s���:��Hrrc��eZdZdZdd�ZdZy)ra�The beginning of an HTTP response.

    Fields:

    .. attribute:: status_code

       The status code of this response, as an integer. For an
       :class:`Response`, this is always in the range [200,
       1000).

    .. attribute:: headers

       Request headers, represented as a list of (name, value) pairs. See
       :ref:`the header normalization rules <headers-format>` for details.

    .. attribute:: http_version

       The HTTP protocol version, represented as a byte string like
       ``b"1.1"``. See :ref:`the HTTP version normalization rules
       <http_version-format>` for details.

    .. attribute:: reason

       The reason phrase of this response, as a byte string. For example:
       ``b"OK"``, or ``b"Not Found"``.

    Nc�z�d|jcxkrdks&ntdj|j���y)NrLi�z;Response status_code should be in range [200, 1000), not {}rMrGs r rEzResponse.__post_init__�s>���t�'�'�.�$�.�$�M�T�T��$�$���
�/rrHrOrrr rr�s���8��Hrrc	�T�eZdZUdZdZeed<eed<eed<	d	dedededdfd�ZdZ	y)
raPart of an HTTP message body.

    Fields:

    .. attribute:: data

       A :term:`bytes-like object` containing part of a message body. Or, if
       using the ``combine=False`` argument to :meth:`Connection.send`, then
       any object that your socket writing code knows what to do with, and for
       which calling :func:`len` returns the number of bytes that will be
       written -- see :ref:`sendfile` for details.

    .. attribute:: chunk_start

       A marker that indicates whether this data object is from the start of a
       chunked transfer encoding chunk. This field is ignored when when a Data
       event is provided to :meth:`Connection.send`: it is only valid on
       events emitted from :meth:`Connection.next_event`. You probably
       shouldn't use this attribute at all; see
       :ref:`chunk-delimiters-are-bad` for details.

    .. attribute:: chunk_end

       A marker that indicates whether this data object is the last for a
       given chunked transfer encoding chunk. This field is ignored when when
       a Data event is provided to :meth:`Connection.send`: it is only valid
       on events emitted from :meth:`Connection.next_event`. You probably
       shouldn't use this attribute at all; see
       :ref:`chunk-delimiters-are-bad` for details.

    )�data�chunk_start�	chunk_endrSrTrUr)Nc��tj|d|�tj|d|�tj|d|�y)NrSrTrU)r/r0)r3rSrTrUs    r r-z
Data.__init__+s:��	���4���.����4���<����4��i�8r)FF)
rrrrrr8r9r;r-r<rrr rrsR���@5�I�
�K����O�IN�9��9�(,�9�AE�9�	
�9��Hrrc	�z��eZdZUdZdZeed<ddd�deeee	e
e
fee	eefdfdeddf�fd	�Z
dZ�xZS)
rajThe end of an HTTP message.

    Fields:

    .. attribute:: headers

       Default value: ``[]``

       Any trailing headers attached to this message, represented as a list of
       (name, value) pairs. See :ref:`the header normalization rules
       <headers-format>` for details.

       Must be empty unless ``Transfer-Encoding: chunked`` is in use.

    )r$r$NF)r$r(r(r)c���t�|��|�tg�}nt|t�s
t	||��}t
j
|d|�y)Nr+r$)r,r-rr.rr/r0)r3r$r(r7s   �r r-zEndOfMessage.__init__QsF���	�����?��b�k�G��G�W�-�,�W�g�F�G����4��G�4r)rrrrrrr9rrrr8r:r;r-r<r=r>s@r rr;ss���� �I�
��
��
5���T�%��u��-�.��U�3��8�_�0E�t�K�
�5��
5�
�5�"�Hrr)r"c��eZdZdZy)raAThis event indicates that the sender has closed their outgoing
    connection.

    Note that this does not necessarily mean that they can't *receive* further
    data, because TCP connections are composed to two one-way channels which
    can be closed independently. See :ref:`closing` for details.

    No fields.
    N)rrrrrrr rres���	rr) �re�abcr�dataclassesr�typingrrr�_abnfr	r
�_headersrr�_utilr
rr�__all__�compile�encoder1r2rrr@rrrrrrrr �<module>rdsf��
��!�%�%�)�5�9�9���
�B�J�J�}�v�}�}�W�-�.�	��B�J�J�4�~�4�4�W�=�>���C����d�#�T�e�T�$�T�n��d�#�+�E�+�$�+�\��d�#�&�M�&�$�&�R��d�#�&�}�&�$�&�R��d�#�/�5�/�$�/�n��d�#�&�5�&�$�&�R�$��	�u�	��	r