You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import typing as _t from datetime import datetime
_t_opt_any = _t.Optional[_t.Any] _t_opt_exc = _t.Optional[Exception]
class BadData(Exception): """Raised if bad data of any sort was encountered. This is the base
for all exceptions that ItsDangerous defines.
.. versionadded:: 0.15 """
def __init__(self, message: str): super().__init__(message) self.message = message
def __str__(self) -> str: return self.message
class BadSignature(BadData): """Raised if a signature does not match."""
def __init__(self, message: str, payload: _t_opt_any = None): super().__init__(message)
#: The payload that failed the signature test. In some #: situations you might still want to inspect this, even if #: you know it was tampered with. #: #: .. versionadded:: 0.14 self.payload: _t_opt_any = payload
class BadTimeSignature(BadSignature): """Raised if a time-based signature is invalid. This is a subclass
of :class:`BadSignature`. """
def __init__( self, message: str, payload: _t_opt_any = None, date_signed: _t.Optional[datetime] = None, ): super().__init__(message, payload)
#: If the signature expired this exposes the date of when the #: signature was created. This can be helpful in order to #: tell the user how long a link has been gone stale. #: #: .. versionchanged:: 2.0 #: The datetime value is timezone-aware rather than naive. #: #: .. versionadded:: 0.14 self.date_signed = date_signed
class SignatureExpired(BadTimeSignature): """Raised if a signature timestamp is older than ``max_age``. This
is a subclass of :exc:`BadTimeSignature`. """
class BadHeader(BadSignature): """Raised if a signed header is invalid in some form. This only
happens for serializers that have a header that goes with the signature.
.. versionadded:: 0.24 """
def __init__( self, message: str, payload: _t_opt_any = None, header: _t_opt_any = None, original_error: _t_opt_exc = None, ): super().__init__(message, payload)
#: If the header is actually available but just malformed it #: might be stored here. self.header: _t_opt_any = header
#: If available, the error that indicates why the payload was #: not valid. This might be ``None``. self.original_error: _t_opt_exc = original_error
class BadPayload(BadData): """Raised if a payload is invalid. This could happen if the payload
is loaded despite an invalid signature, or if there is a mismatch between the serializer and deserializer. The original exception that occurred during loading is stored on as :attr:`original_error`.
.. versionadded:: 0.15 """
def __init__(self, message: str, original_error: _t_opt_exc = None): super().__init__(message)
#: If available, the error that indicates why the payload was #: not valid. This might be ``None``. self.original_error: _t_opt_exc = original_error
|