diff --git a/cachecontrol/serialize.py b/cachecontrol/serialize.py index 55ea3fe2..ace07f8e 100644 --- a/cachecontrol/serialize.py +++ b/cachecontrol/serialize.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 import io -from typing import IO, TYPE_CHECKING, Any, Mapping, Optional +from typing import IO, TYPE_CHECKING, Any, Dict, Mapping, Optional, cast import msgpack from requests.structures import CaseInsensitiveDict @@ -14,6 +14,8 @@ class Serializer(object): + serde_version = "4" + def dumps( self, request: "PreparedRequest", @@ -54,7 +56,10 @@ def dumps( header_value = str(header_value) data["vary"][header] = header_value - return b",".join([b"cc=4", msgpack.dumps(data, use_bin_type=True)]) + return b",".join([f"cc={self.serde_version}".encode(), self.serialize(data)]) + + def serialize(self, data: Dict[str, Any]) -> bytes: + return cast(bytes, msgpack.dumps(data, use_bin_type=True)) def loads( self, diff --git a/docs/release_notes.rst b/docs/release_notes.rst index a1dbb36a..a5a9c9b8 100644 --- a/docs/release_notes.rst +++ b/docs/release_notes.rst @@ -11,6 +11,7 @@ Unreleased ========== * Support for old serialization formats has been removed. +* Move the serialization implementation into own method. 0.13.0 ======