Upgrading itsdangerous 1 to 2
Breaking1.1.0 → 2.2.0Platform1Deprecated1New1Fixed1Other2
BreakingUpgrade verdict
A platform requirement change.
In plain terms
- This version no longer runs on Python 3.7; use a newer Python version.
- Reading the package version from itsdangerous.__version__ is deprecated; look up the installed version another way.
Must act 2 items need code or config changes
Python requirement changed in 2.2.0: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* → >=3.8.
What you must change
Platform1
Drops support for Python 3.7.
Deprecations to plan for
Deprecated1
Deprecates the __version__ attribute in favor of feature detection or importlib.metadata.version.
__version__importlib.metadata.version()API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- removed:
export JSONWebSignatureSerializer - removed:
export TimedJSONWebSignatureSerializer - removed:
export json
- changed:
function base64_decode(string) → function base64_decode(string: str | bytes) -> bytes - changed:
function base64_encode(string) → function base64_encode(string: str | bytes) -> bytes - changed:
function bytes_to_int(bytestr) → function bytes_to_int(bytestr: bytes) -> int - changed:
function int_to_bytes(num) → function int_to_bytes(num: int) -> bytes - changed:
function want_bytes(s, encoding=…, errors=…) → function want_bytes(s: str | bytes, encoding: str=…, errors: str=…) -> bytes
- removed:
field BadData.message - changed:
constructor BadData(message) → constructor BadData(message: str) - changed:
constructor BadHeader(message, payload=…, header=…, original_error=…) → constructor BadHeader(message: str, payload: t.Any | None=…, header: t.Any | None=…, original_error: Exception | None=…) - changed:
constructor BadPayload(message, original_error=…) → constructor BadPayload(message: str, original_error: Exception | None=…) - changed:
constructor BadSignature(message, payload=…) → constructor BadSignature(message: str, payload: t.Any | None=…) - changed:
constructor BadTimeSignature(message, payload=…, date_signed=…) → constructor BadTimeSignature(message: str, payload: t.Any | None=…, date_signed: datetime | None=…)
- removed:
class JSONWebSignatureSerializer(Serializer) - removed:
class TimedJSONWebSignatureSerializer(JSONWebSignatureSerializer) - removed:
constructor JSONWebSignatureSerializer(secret_key, salt=…, serializer=…, serializer_kwargs=…, signer=…, signer_kwargs=…, algorithm_name=…) - removed:
constructor TimedJSONWebSignatureSerializer(secret_key, expires_in=…, **kwargs) - removed:
field JSONWebSignatureSerializer.default_algorithm - removed:
field JSONWebSignatureSerializer.default_serializer - removed:
field JSONWebSignatureSerializer.jws_algorithms - removed:
field TimedJSONWebSignatureSerializer.DEFAULT_EXPIRES_IN - removed:
method JSONWebSignatureSerializer.dump_payload(header, obj) - removed:
method JSONWebSignatureSerializer.dumps(obj, salt=…, header_fields=…) - removed:
method JSONWebSignatureSerializer.load_payload(payload, serializer=…, return_header=…) - removed:
method JSONWebSignatureSerializer.loads(s, salt=…, return_header=…) - removed:
method JSONWebSignatureSerializer.loads_unsafe(s, salt=…, return_header=…) - removed:
method JSONWebSignatureSerializer.make_algorithm(algorithm_name) - removed:
method JSONWebSignatureSerializer.make_header(header_fields) - removed:
method JSONWebSignatureSerializer.make_signer(salt=…, algorithm=…) - removed:
method TimedJSONWebSignatureSerializer.get_issue_date(header) - removed:
method TimedJSONWebSignatureSerializer.loads(s, salt=…, return_header=…) - removed:
method TimedJSONWebSignatureSerializer.make_header(header_fields) - removed:
method TimedJSONWebSignatureSerializer.now()
- changed:
class Serializer(object) → class Serializer(t.Generic[_TSerialized]) - changed:
constructor Serializer(secret_key, salt=…, serializer=…, serializer_kwargs=…, signer=…, signer_kwargs=…, fallback_signers=…) → constructor Serializer(secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], salt: str | bytes | None=…, serializer: None | _PDataSerializer[str]=…, serializer_kwargs: dict[str, t.Any] | None=…, signer: type[Signer] | None=…, signer_kwargs: dict[str, t.Any] | None=…, fallback_signers: list[dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer]] | None=…) | (secret_… - changed:
field Serializer.default_fallback_signers → field Serializer.default_fallback_signers: list[dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer]] - changed:
field Serializer.default_serializer → field Serializer.default_serializer: _PDataSerializer[t.Any] - changed:
field Serializer.default_signer → field Serializer.default_signer: type[Signer] - changed:
function is_text_serializer(serializer) → function is_text_serializer(serializer: _PDataSerializer[t.Any]) -> te.TypeGuard[_PDataSerializer[str]] - changed:
method Serializer.dump(obj, f, salt=…) → method Serializer.dump(obj: t.Any, f: t.IO[t.Any], salt: str | bytes | None=…) -> None - changed:
method Serializer.dump_payload(obj) → method Serializer.dump_payload(obj: t.Any) -> bytes - changed:
method Serializer.dumps(obj, salt=…) → method Serializer.dumps(obj: t.Any, salt: str | bytes | None=…) -> _TSerialized - changed:
method Serializer.iter_unsigners(salt=…) → method Serializer.iter_unsigners(salt: str | bytes | None=…) -> cabc.Iterator[Signer] - changed:
method Serializer.load(f, salt=…) → method Serializer.load(f: t.IO[t.Any], salt: str | bytes | None=…) -> t.Any - changed:
method Serializer.load_payload(payload, serializer=…) → method Serializer.load_payload(payload: bytes, serializer: _PDataSerializer[t.Any] | None=…) -> t.Any - changed:
method Serializer.load_unsafe(f, *args, **kwargs) → method Serializer.load_unsafe(f: t.IO[t.Any], salt: str | bytes | None=…) -> tuple[bool, t.Any] - changed:
method Serializer.loads(s, salt=…) → method Serializer.loads(s: str | bytes, salt: str | bytes | None=…, **kwargs: t.Any) -> t.Any - changed:
method Serializer.loads_unsafe(s, salt=…) → method Serializer.loads_unsafe(s: str | bytes, salt: str | bytes | None=…) -> tuple[bool, t.Any] - changed:
method Serializer.make_signer(salt=…) → method Serializer.make_signer(salt: str | bytes | None=…) -> Signer - added:
property Serializer.secret_key -> bytes
- changed:
class Signer(object) → class Signer - changed:
class SigningAlgorithm(object) → class SigningAlgorithm - changed:
constructor HMACAlgorithm(digest_method=…) → constructor HMACAlgorithm(digest_method: t.Any=…) - changed:
constructor Signer(secret_key, salt=…, sep=…, key_derivation=…, digest_method=…, algorithm=…) → constructor Signer(secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], salt: str | bytes | None=…, sep: str | bytes=…, key_derivation: str | None=…, digest_method: t.Any | None=…, algorithm: SigningAlgorithm | None=…) - changed:
field HMACAlgorithm.default_digest_method → field HMACAlgorithm.default_digest_method: t.Any - changed:
field Signer.default_digest_method → field Signer.default_digest_method: t.Any - changed:
field Signer.default_key_derivation → field Signer.default_key_derivation: str - changed:
method HMACAlgorithm.get_signature(key, value) → method HMACAlgorithm.get_signature(key: bytes, value: bytes) -> bytes - changed:
method NoneAlgorithm.get_signature(key, value) → method NoneAlgorithm.get_signature(key: bytes, value: bytes) -> bytes - changed:
method Signer.derive_key() → method Signer.derive_key(secret_key: str | bytes | None=…) -> bytes - changed:
method Signer.get_signature(value) → method Signer.get_signature(value: str | bytes) -> bytes - changed:
method Signer.sign(value) → method Signer.sign(value: str | bytes) -> bytes - changed:
method Signer.unsign(signed_value) → method Signer.unsign(signed_value: str | bytes) -> bytes - changed:
method Signer.validate(signed_value) → method Signer.validate(signed_value: str | bytes) -> bool - changed:
method Signer.verify_signature(value, sig) → method Signer.verify_signature(value: str | bytes, sig: str | bytes) -> bool - changed:
method SigningAlgorithm.get_signature(key, value) → method SigningAlgorithm.get_signature(key: bytes, value: bytes) -> bytes - changed:
method SigningAlgorithm.verify_signature(key, value, sig) → method SigningAlgorithm.verify_signature(key: bytes, value: bytes, sig: bytes) -> bool - added:
property Signer.secret_key -> bytes
- changed:
class TimedSerializer(Serializer) → class TimedSerializer(Serializer[_TSerialized]) - changed:
field TimedSerializer.default_signer → field TimedSerializer.default_signer: type[TimestampSigner] - changed:
method TimedSerializer.loads(s, max_age=…, return_timestamp=…, salt=…) → method TimedSerializer.loads(s: str | bytes, max_age: int | None=…, return_timestamp: bool=…, salt: str | bytes | None=…) -> t.Any - changed:
method TimedSerializer.loads_unsafe(s, max_age=…, salt=…) → method TimedSerializer.loads_unsafe(s: str | bytes, max_age: int | None=…, salt: str | bytes | None=…) -> tuple[bool, t.Any] - changed:
method TimestampSigner.get_timestamp() → method TimestampSigner.get_timestamp() -> int - changed:
method TimestampSigner.sign(value) → method TimestampSigner.sign(value: str | bytes) -> bytes - changed:
method TimestampSigner.timestamp_to_datetime(ts) → method TimestampSigner.timestamp_to_datetime(ts: int) -> datetime - changed:
method TimestampSigner.unsign(value, max_age=…, return_timestamp=…) → method TimestampSigner.unsign(signed_value: str | bytes, max_age: int | None=…, return_timestamp: t.Literal[False]=…) -> bytes | (signed_value: str | bytes, max_age: int | None=…, return_timestamp: t.Literal[True]=…) -> tuple[bytes, datetime] - changed:
method TimestampSigner.validate(signed_value, max_age=…) → method TimestampSigner.validate(signed_value: str | bytes, max_age: int | None=…) -> bool - added:
method TimedSerializer.iter_unsigners(salt: str | bytes | None=…) -> cabc.Iterator[TimestampSigner]
- changed:
class URLSafeSerializer(URLSafeSerializerMixin, Serializer) → class URLSafeSerializer(URLSafeSerializerMixin, Serializer[str]) - changed:
class URLSafeSerializerMixin(object) → class URLSafeSerializerMixin(Serializer[str]) - changed:
class URLSafeTimedSerializer(URLSafeSerializerMixin, TimedSerializer) → class URLSafeTimedSerializer(URLSafeSerializerMixin, TimedSerializer[str]) - changed:
field URLSafeSerializerMixin.default_serializer → field URLSafeSerializerMixin.default_serializer: _PDataSerializer[str] - changed:
method URLSafeSerializerMixin.dump_payload(obj) → method URLSafeSerializerMixin.dump_payload(obj: t.Any) -> bytes - changed:
method URLSafeSerializerMixin.load_payload(payload, *args, **kwargs) → method URLSafeSerializerMixin.load_payload(payload: bytes, *args: t.Any, serializer: t.Any | None=…, **kwargs: t.Any) -> t.Any