o
    `g                     @   s  d Z ddlZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deeZG dd deZG dd deZG dd deZG dd  d eZdS )!z@
h2/exceptions
~~~~~~~~~~~~~

Exceptions for the HTTP/2 module.
    Nc                   @      e Zd ZdZdS )H2ErrorzB
    The base class for all exceptions for the HTTP/2 module.
    N__name__
__module____qualname____doc__ r	   r	   H/var/www/html/propose/venv/lib/python3.10/site-packages/h2/exceptions.pyr      s    r   c                   @      e Zd ZdZejjjZdS )ProtocolErrorzF
    An action was attempted in violation of the HTTP/2 protocol.
    N)	r   r   r   r   h2errors
ErrorCodesPROTOCOL_ERROR
error_coder	   r	   r	   r
   r          r   c                   @   r   )FrameTooLargeErrorzL
    The frame that we tried to send or that we received was too large.
    N	r   r   r   r   r   r   r   FRAME_SIZE_ERRORr   r	   r	   r	   r
   r      r   r   c                   @   r   )FrameDataMissingErrorzW
    The frame that we received is missing some data.

    .. versionadded:: 2.0.0
    Nr   r	   r	   r	   r
   r   !   s    r   c                   @   r   )TooManyStreamsErrorzb
    An attempt was made to open a stream that would lead to too many concurrent
    streams.
    Nr   r	   r	   r	   r
   r   +   s    r   c                   @   r   )FlowControlErrorz@
    An attempted action violates flow control constraints.
    N)	r   r   r   r   r   r   r   FLOW_CONTROL_ERRORr   r	   r	   r	   r
   r   3   r   r   c                   @       e Zd ZdZdd Zdd ZdS )StreamIDTooLowErrorz
    An attempt was made to open a stream that had an ID that is lower than the
    highest ID we have seen on this connection.
    c                 C      || _ || _d S N	stream_idmax_stream_id)selfr   r    r	   r	   r
   __init__@   s   
zStreamIDTooLowError.__init__c                 C      d| j | jf S )Nz(StreamIDTooLowError: %d is lower than %dr   r!   r	   r	   r
   __str__G      zStreamIDTooLowError.__str__Nr   r   r   r   r"   r%   r	   r	   r	   r
   r   ;   s    r   c                   @   r   )NoAvailableStreamIDErrorz
    There are no available stream IDs left to the connection. All stream IDs
    have been exhausted.

    .. versionadded:: 2.0.0
    Nr   r	   r	   r	   r
   r(   M   s    r(   c                   @      e Zd ZdZdd ZdS )NoSuchStreamErrorz
    A stream-specific action referenced a stream that does not exist.

    .. versionchanged:: 2.0.0
       Became a subclass of :class:`ProtocolError
       <h2.exceptions.ProtocolError>`
    c                 C   s
   || _ d S r   )r   r!   r   r	   r	   r
   r"   _   s   
zNoSuchStreamError.__init__Nr   r   r   r   r"   r	   r	   r	   r
   r*   W   s    r*   c                   @   r)   )StreamClosedErrorz
    A more specific form of
    :class:`NoSuchStreamError <h2.exceptions.NoSuchStreamError>`. Indicates
    that the stream has since been closed, and that all state relating to that
    stream has been removed.
    c                 C   s   || _ tjjj| _g | _d S r   )r   r   r   r   STREAM_CLOSEDr   _eventsr+   r	   r	   r
   r"   k   s   
zStreamClosedError.__init__Nr,   r	   r	   r	   r
   r-   d   s    r-   c                       s    e Zd ZdZ fddZ  ZS )InvalidSettingsValueErrorz\
    An attempt was made to set an invalid Settings value.

    .. versionadded:: 2.0.0
    c                    s   t t| | || _d S r   )superr0   r"   r   )r!   msgr   	__class__r	   r
   r"   }   s   
z"InvalidSettingsValueError.__init__)r   r   r   r   r"   __classcell__r	   r	   r3   r
   r0   w   s    r0   c                   @   r   )InvalidBodyLengthErrorz{
    The remote peer sent more or less data that the Content-Length header
    indicated.

    .. versionadded:: 2.0.0
    c                 C   r   r   expected_lengthactual_length)r!   expectedactualr	   r	   r
   r"      s   
zInvalidBodyLengthError.__init__c                 C   r#   )Nz6InvalidBodyLengthError: Expected %d bytes, received %dr7   r$   r	   r	   r
   r%      r&   zInvalidBodyLengthError.__str__Nr'   r	   r	   r	   r
   r6      s    r6   c                   @   r   )UnsupportedFrameErrorz
    The remote peer sent a frame that is unsupported in this context.

    .. versionadded:: 2.1.0

    .. versionchanged:: 4.0.0
       Removed deprecated KeyError parent class.
    Nr   r	   r	   r	   r
   r<      s    r<   c                   @   r   )RFC1122Errora  
    Emitted when users attempt to do something that is literally allowed by the
    relevant RFC, but is sufficiently ill-defined that it's unwise to allow
    users to actually do it.

    While there is some disagreement about whether or not we should be liberal
    in what accept, it is a truth universally acknowledged that we should be
    conservative in what emit.

    .. versionadded:: 2.4.0
    Nr   r	   r	   r	   r
   r=      s    r=   c                   @   r   )DenialOfServiceErrora@  
    Emitted when the remote peer exhibits a behaviour that is likely to be an
    attempt to perform a Denial of Service attack on the implementation. This
    is a form of ProtocolError that carries a different error code, and allows
    more easy detection of this kind of behaviour.

    .. versionadded:: 2.5.0
    N)	r   r   r   r   r   r   r   ENHANCE_YOUR_CALMr   r	   r	   r	   r
   r>      s    
r>   )r   	h2.errorsr   	Exceptionr   r   r   r   r   r   r   r(   r*   r-   
ValueErrorr0   r6   r<   r=   r>   r	   r	   r	   r
   <module>   s"   

