ó
    %Äãg¼  ã                  ól  • S r SSKJr  SSKJr   " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r	 " S S\5      r
 " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\\5      r " S S\5      r " S S\5      r " S S \5      r " S! S"\5      rg#)$z@
h2/exceptions
~~~~~~~~~~~~~

Exceptions for the HTTP/2 module.
é    )Úannotationsé   )Ú
ErrorCodesc                  ó   • \ rS rSrSrSrg)ÚH2Erroré   z:
The base class for all exceptions for the HTTP/2 module.
© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r	   ó    Ú//usr/lib/python3/dist-packages/h2/exceptions.pyr   r      s   † ôr   r   c                  ó0   • \ rS rSrSr\R                  rSrg)ÚProtocolErroré   z>
An action was attempted in violation of the HTTP/2 protocol.
r	   N)	r   r   r   r   r   r   ÚPROTOCOL_ERRORÚ
error_coder   r	   r   r   r   r      s   † ñð
 ×*Ñ*ƒJr   r   c                  ó0   • \ rS rSrSr\R                  rSrg)ÚFrameTooLargeErroré   zD
The frame that we tried to send or that we received was too large.
r	   N©	r   r   r   r   r   r   ÚFRAME_SIZE_ERRORr   r   r	   r   r   r   r      s   † ñð
 ×,Ñ,ƒJr   r   c                  ó0   • \ rS rSrSr\R                  rSrg)ÚFrameDataMissingErroré$   zK
The frame that we received is missing some data.

.. versionadded:: 2.0.0
r	   Nr   r	   r   r   r   r   $   s   † ñð ×,Ñ,ƒJr   r   c                  ó   • \ rS rSrSrSrg)ÚTooManyStreamsErroré/   zV
An attempt was made to open a stream that would lead to too many concurrent
streams.
r	   Nr
   r	   r   r   r!   r!   /   s   † ôr   r!   c                  ó0   • \ rS rSrSr\R                  rSrg)ÚFlowControlErroré7   z8
An attempted action violates flow control constraints.
r	   N)	r   r   r   r   r   r   ÚFLOW_CONTROL_ERRORr   r   r	   r   r   r$   r$   7   s   † ñð
 ×.Ñ.ƒJr   r$   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚStreamIDTooLowErroré@   zx
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                ó   • Xl         X l        g ©N©Ú	stream_idÚmax_stream_id)Úselfr-   r.   s      r   Ú__init__ÚStreamIDTooLowError.__init__F   s   € à"Œð +Õr   c                ó:   • SU R                    SU R                   3$ )NzStreamIDTooLowError: z is lower than r,   ©r/   s    r   Ú__str__ÚStreamIDTooLowError.__str__M   s!   € Ø& t§~¡~Ð&6°oÀd×FXÑFXÐEYÐZÐZr   )r.   r-   N)r-   Úintr.   r6   ÚreturnÚNone©r7   Ústr©r   r   r   r   r   r0   r4   r   r	   r   r   r(   r(   @   s   † ñô
+÷[r   r(   c                  ó   • \ rS rSrSrSrg)ÚNoAvailableStreamIDErroréQ   zx
There are no available stream IDs left to the connection. All stream IDs
have been exhausted.

.. versionadded:: 2.0.0
r	   Nr
   r	   r   r   r=   r=   Q   s   † ôr   r=   c                  ó"   • \ rS rSrSrSS jrSrg)ÚNoSuchStreamErroré[   z®
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                ó   • Xl         g r+   ©r-   ©r/   r-   s     r   r0   ÚNoSuchStreamError.__init__d   s   € à"�r   rC   N©r-   r6   r7   r8   ©r   r   r   r   r   r0   r   r	   r   r   r@   r@   [   s   † ñ÷#r   r@   c                  ó"   • \ rS rSrSrSS jrSrg)ÚStreamClosedErroréi   zÅ
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                óH   • Xl         [        R                  U l        / U l        g r+   )r-   r   ÚSTREAM_CLOSEDr   Ú_eventsrD   s     r   r0   ÚStreamClosedError.__init__q   s   € à"Œô %×2Ñ2ˆŒð ˆ�r   )rM   r   r-   NrF   rG   r	   r   r   rI   rI   i   s   † ñ÷	r   rI   c                  ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚInvalidSettingsValueErroré}   zP
An attempt was made to set an invalid Settings value.

.. versionadded:: 2.0.0
c                ó0   >• [         TU ]  U5        X l        g r+   )Úsuperr0   r   )r/   Úmsgr   Ú	__class__s      €r   r0   Ú"InvalidSettingsValueError.__init__„   s   ø€ Ü‰Ñ˜ÔØ$�r   )r   )rT   r:   r   r   r7   r8   )r   r   r   r   r   r0   r   Ú__classcell__)rU   s   @r   rP   rP   }   s   ø† ñ÷%õ %r   rP   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚInvalidBodyLengthErroré‰   zk
The remote peer sent more or less data that the Content-Length header
indicated.

.. versionadded:: 2.0.0
c                ó   • Xl         X l        g r+   ©Úexpected_lengthÚactual_length)r/   ÚexpectedÚactuals      r   r0   ÚInvalidBodyLengthError.__init__‘   s   € Ø'ÔØ#Õr   c                ó:   • SU R                    SU R                   3$ )Nz!InvalidBodyLengthError: Expected z bytes, received r\   r3   s    r   r4   ÚInvalidBodyLengthError.__str__•   s%   € Ø2°4×3GÑ3GÐ2HÐHYÐZ^×ZlÑZlÐYmÐnÐnr   )r^   r]   N)r_   r6   r`   r6   r7   r8   r9   r;   r	   r   r   rY   rY   ‰   s   † ñô$÷or   rY   c                  ó   • \ rS rSrSrSrg)ÚUnsupportedFrameErroré™   z¤
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.
r	   Nr
   r	   r   r   re   re   ™   s   † ôr   re   c                  ó   • \ rS rSrSrSrg)ÚRFC1122Erroré¥   aw  
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
r	   Nr
   r	   r   r   rh   rh   ¥   s   † ô
r   rh   c                  ó0   • \ rS rSrSr\R                  rSrg)ÚDenialOfServiceErroré¶   a(  
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
r	   N)	r   r   r   r   r   r   ÚENHANCE_YOUR_CALMr   r   r	   r   r   rk   rk   ¶   s   † ñð ×-Ñ-ƒJr   rk   N)r   Ú
__future__r   Úerrorsr   Ú	Exceptionr   r   r   r   r!   r$   r(   r=   r@   rI   Ú
ValueErrorrP   rY   re   rh   rk   r	   r   r   Ú<module>rr      sÍ   ðñõ #å ôˆiô ô+�Gô +ô-˜ô -ô-˜Mô -ô˜-ô ô/�}ô /ô[˜-ô [ô"˜}ô ô#˜ô #ôÐ)ô ô(	% ¨zô 	%ôo˜]ô oô ˜Mô ô�7ô ô".˜=õ .r   