from datetime import datetime from itertools import izip from typing import Any, Callable, IO, MutableMapping, Optional, Text, Tuple, Union PY2 = ... # type: bool text_type = unicode int_to_byte = chr number_types = (int, long, float) _serializer = Any # must be an object that has "dumps" and "loads" attributes (e.g. the json module) bytes_like = Union[bytearray, str] class _CompactJSON: def loads(self, payload: Text) -> Any: ... def dumps(self, obj: Any) -> Text: ... compact_json = _CompactJSON EPOCH = ... # type: int def want_bytes(s: str, encoding: str = ..., errors: str = ...) -> bytes: ... def is_text_serializer(serializer: Any) -> bool: ... def constant_time_compare(val1: bytes_like, val2: bytes_like) -> bool: ... class BadData(Exception): message = ... # type: str def __init__(self, message: str) -> None: ... class BadPayload(BadData): original_error = ... # type: Optional[Exception] def __init__(self, message: str, original_error: Optional[Exception] = ...) -> None: ... class BadSignature(BadData): payload = ... # type: Optional[Any] def __init__(self, message: str, payload: Optional[Any] = ...) -> None: ... class BadTimeSignature(BadSignature): date_signed = ... # type: Optional[int] def __init__(self, message, payload: Optional[Any] = ..., date_signed: Optional[int] = ...) -> None: ... class BadHeader(BadSignature): header = ... # type: Any original_error = ... # type: Any def __init__(self, message, payload=None, header=None, original_error=None) -> None: ... class SignatureExpired(BadTimeSignature): ... def base64_encode(string: bytes_like) -> bytes: ... def base64_decode(string: bytes_like) -> bytes: ... def int_to_bytes(num: int) -> bytes: ... def bytes_to_int(bytestr: bytes_like) -> bytes: ... class SigningAlgorithm: def get_signature(self, key: bytes_like, value: bytes_like) -> bytes: ... def verify_signature(self, key: bytes_like, value: bytes_like, sig: bytes_like) -> bool: ... class NoneAlgorithm(SigningAlgorithm): def get_signature(self, key: bytes_like, value: bytes_like) -> str: ... class HMACAlgorithm(SigningAlgorithm): default_digest_method = ... # type: Callable digest_method = ... # type: Callable def __init__(self, digest_method: Optional[Callable] = ...) -> None: ... def get_signature(self, key: bytes_like, value: bytes_like) -> bytes: ... class Signer: default_digest_method = ... # type: Callable default_key_derivation = ... # type: str secret_key = ... # type: bytes_like sep = ... # type: str salt = ... # type: bytes_like key_derivation = ... # type: str digest_method = ... # type: Callable algorithm = ... # type: SigningAlgorithm def __init__(self, secret_key: bytes_like, salt: Optional[bytes_like] = ..., sep: Optional[str] = ..., key_derivation: Optional[str] = ..., digest_method: Optional[Callable] = ..., algorithm: Optional[SigningAlgorithm] = ...) -> None: ... def derive_key(self) -> bytes: ... def get_signature(self, value: bytes_like) -> bytes: ... def sign(self, value: bytes_like) -> bytes: ... def verify_signature(self, value: bytes_like, sig: bytes_like) -> bool: ... def unsign(self, signed_value: str) -> str: ... def validate(self, signed_value: str) -> bool: ... class TimestampSigner(Signer): def get_timestamp(self) -> int: ... def timestamp_to_datetime(self, ts: int) -> datetime: ... def sign(self, value: bytes_like) -> bytes: ... def unsign(self, value: str, max_age: Optional[int] = ..., return_timestamp: bool = ...) -> Any: ... def validate(self, signed_value: str, max_age: Optional[int] = ...) -> bool: ... class Serializer: default_serializer = ... # type: _serializer default_signer = ... # type: Callable[..., Signer] secret_key = ... # type: Any salt = ... # type: bytes_like serializer = ... # type: _serializer is_text_serializer = ... # type: bool signer = ... # type: Signer signer_kwargs = ... # type: MutableMapping def __init__(self, secret_key: bytes_like, salt: Optional[bytes_like] = ..., serializer: Optional[_serializer] = ..., signer: Optional[Callable[..., Signer]] = ..., signer_kwargs: Optional[MutableMapping] = ...) -> None: ... def load_payload(self, payload: Any, serializer: Optional[_serializer] = ...) -> Any: ... def dump_payload(self, *args, **kwargs) -> str: ... def make_signer(self, salt: Optional[bytes_like] = ...) -> Signer: ... def dumps(self, obj: Any, salt: Optional[bytes_like] = ...) -> str: ... def dump(self, obj: Any, f: IO[str], salt: Optional[bytes_like] = ...) -> None: ... def loads(self, s: str, salt: Optional[bytes_like] = ...) -> Any: ... def load(self, f: IO[str], salt: Optional[bytes_like] = ...): ... def loads_unsafe(self, s, salt: Optional[bytes_like] = ...) -> Tuple[bool, Any]: ... def load_unsafe(self, f: IO[str], *args, **kwargs) -> Tuple[bool, Any]: ... class TimedSerializer(Serializer): default_signer = ... # type: Callable[..., TimestampSigner] def loads(self, s: str, salt: Optional[bytes_like] = ..., max_age: Optional[int] = ..., return_timestamp: bool = ...) -> Any: ... def loads_unsafe(self, s: str, salt: Optional[bytes_like] = ..., max_age: Optional[int] = ...) -> Tuple[bool, Any]: ... class JSONWebSignatureSerializer(Serializer): jws_algorithms = ... # type: MutableMapping[str, SigningAlgorithm] default_algorithm = ... # type: str default_serializer = ... # type: Any algorithm_name = ... # type: str algorithm = ... # type: Any def __init__(self, secret_key: bytes_like, salt: Optional[bytes_like] = ..., serializer: Optional[_serializer] = ..., signer: Optional[Callable[..., Signer]] = ..., signer_kwargs: Optional[MutableMapping] = ..., algorithm_name: Optional[str] = ...) -> None: ... def load_payload(self, payload: Any, serializer: Optional[_serializer] = ..., return_header: bool = ...) -> Any: ... def dump_payload(self, *args, **kwargs) -> bytes: ... def make_algorithm(self, algorithm_name: str) -> SigningAlgorithm: ... def make_signer(self, salt: Optional[bytes_like] = ..., algorithm_name: Optional[str] = ...) -> Signer: ... def make_header(self, header_fields: Optional[MutableMapping] = ...) -> MutableMapping: ... def dumps(self, obj: Any, salt: Optional[bytes_like] = ..., header_fields: Optional[MutableMapping] = ...) -> str: ... def loads(self, s: str, salt: Optional[bytes_like] = ..., return_header: bool = ...) -> Any: ... def loads_unsafe(self, s, salt: Optional[bytes_like] = ..., return_header: bool = ...) -> Tuple[bool, Any]: ... class TimedJSONWebSignatureSerializer(JSONWebSignatureSerializer): DEFAULT_EXPIRES_IN = ... # type: int expires_in = ... # type: int def __init__(self, secret_key: bytes_like, expires_in: Optional[int] = ..., **kwargs) -> None: ... def make_header(self, header_fields=Optional[MutableMapping]) -> MutableMapping: ... def loads(self, s: str, salt: Optional[bytes_like] = ..., return_header: bool = ...) -> Any: ... def get_issue_date(self, header: MutableMapping) -> Optional[datetime]: ... def now(self) -> int: ... class URLSafeSerializerMixin: def load_payload(self, payload: Any, serializer=None, return_header=False, **kwargs) -> Any: ... # FIXME: This is invalid but works around https://github.com/pallets/itsdangerous/issues/74 def dump_payload(self, *args, **kwargs) -> str: ... class URLSafeSerializer(URLSafeSerializerMixin, Serializer): default_serializer = ... # type: Any class URLSafeTimedSerializer(URLSafeSerializerMixin, TimedSerializer): default_serializer = ... # type: Any