summaryrefslogtreecommitdiff
path: root/requests_cache/backends
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2022-04-15 19:16:30 -0500
committerJordan Cook <jordan.cook@pioneer.com>2022-04-15 19:18:33 -0500
commit3c51ea2595f6557940a7a941fb572218e42bb528 (patch)
treea9f23b338c112ca60f02a762a884ed71f3f86f52 /requests_cache/backends
parentced880cc3421e9bb1d3c759e73ae24d4baa26e0d (diff)
downloadrequests-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.py2
-rw-r--r--requests_cache/backends/mongodb.py8
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))