diff options
author | Jordan Cook <jordan.cook@pioneer.com> | 2022-04-15 19:16:30 -0500 |
---|---|---|
committer | Jordan Cook <jordan.cook@pioneer.com> | 2022-04-15 19:18:33 -0500 |
commit | 3c51ea2595f6557940a7a941fb572218e42bb528 (patch) | |
tree | a9f23b338c112ca60f02a762a884ed71f3f86f52 /requests_cache/backends | |
parent | ced880cc3421e9bb1d3c759e73ae24d4baa26e0d (diff) | |
download | requests-cache-3c51ea2595f6557940a7a941fb572218e42bb528.tar.gz |
Add serializer name to cache key to avoid errors due to switching serializers
Diffstat (limited to 'requests_cache/backends')
-rw-r--r-- | requests_cache/backends/base.py | 2 | ||||
-rw-r--r-- | requests_cache/backends/mongodb.py | 8 |
2 files changed, 4 insertions, 6 deletions
diff --git a/requests_cache/backends/base.py b/requests_cache/backends/base.py index 7f44af4..a8b1be3 100644 --- a/requests_cache/backends/base.py +++ b/requests_cache/backends/base.py @@ -109,6 +109,7 @@ class BaseCache: request=request, ignored_parameters=self._settings.ignored_parameters, match_headers=self._settings.match_headers, + serializer=self.responses.serializer, **kwargs, ) @@ -290,6 +291,7 @@ class DictStorage(UserDict, BaseStorage): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._serializer = None + self.serializer = None def __getitem__(self, key): """An additional step is needed here for response data. Since the original response object diff --git a/requests_cache/backends/mongodb.py b/requests_cache/backends/mongodb.py index cd39f49..12d11d9 100644 --- a/requests_cache/backends/mongodb.py +++ b/requests_cache/backends/mongodb.py @@ -104,16 +104,12 @@ from pymongo.errors import OperationFailure from .._utils import get_valid_kwargs from ..expiration import NEVER_EXPIRE, get_expiration_seconds -from ..serializers import SerializerPipeline -from ..serializers.preconf import bson_preconf_stage +from ..serializers import bson_document_serializer from . import BaseCache, BaseStorage -document_serializer = SerializerPipeline([bson_preconf_stage], is_binary=False) logger = getLogger(__name__) -# TODO: Is there any reason to support custom serializers here? -# TODO: Save items with different cache keys to avoid conflicts with old serialization format? class MongoCache(BaseCache): """MongoDB cache backend @@ -239,7 +235,7 @@ class MongoPickleDict(MongoDict): """ def __init__(self, *args, serializer=None, **kwargs): - super().__init__(*args, serializer=serializer or document_serializer, **kwargs) + super().__init__(*args, serializer=serializer or bson_document_serializer, **kwargs) def __getitem__(self, key): return self.serializer.loads(super().__getitem__(key)) |