diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/hyperframe/exceptions.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/hyperframe/exceptions.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/hyperframe/exceptions.py b/.venv/lib/python3.12/site-packages/hyperframe/exceptions.py new file mode 100644 index 00000000..7a40f4ab --- /dev/null +++ b/.venv/lib/python3.12/site-packages/hyperframe/exceptions.py @@ -0,0 +1,61 @@ +""" +Exceptions that can be thrown by hyperframe. +""" +from __future__ import annotations + + +class HyperframeError(Exception): + """ + The base class for all exceptions for the hyperframe module. + + .. versionadded:: 6.0.0 + """ + + +class UnknownFrameError(HyperframeError): + """ + A frame of unknown type was received. + + .. versionchanged:: 6.0.0 + Changed base class from `ValueError` to :class:`HyperframeError` + """ + + def __init__(self, frame_type: int, length: int) -> None: + #: The type byte of the unknown frame that was received. + self.frame_type = frame_type + + #: The length of the data portion of the unknown frame. + self.length = length + + def __str__(self) -> str: + return ( + f"UnknownFrameError: Unknown frame type 0x{self.frame_type:X} received, length {self.length} bytes" + ) + + +class InvalidPaddingError(HyperframeError): + """ + A frame with invalid padding was received. + + .. versionchanged:: 6.0.0 + Changed base class from `ValueError` to :class:`HyperframeError` + """ + + +class InvalidFrameError(HyperframeError): + """ + Parsing a frame failed because the data was not laid out appropriately. + + .. versionadded:: 3.0.2 + + .. versionchanged:: 6.0.0 + Changed base class from `ValueError` to :class:`HyperframeError` + """ + + +class InvalidDataError(HyperframeError): + """ + Content or data of a frame was is invalid or violates the specification. + + .. versionadded:: 6.0.0 + """ |