summaryrefslogtreecommitdiff
path: root/requests_cache/backends/mongodb.py
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2023-01-01 12:57:26 -0600
committerJordan Cook <jordan.cook.git@proton.me>2023-01-13 14:22:31 -0600
commitd892c2237d28d86edd11004d119a8c94c2efc56d (patch)
tree911e03121980c25eafdd8dbd95a82a2308e85514 /requests_cache/backends/mongodb.py
parent87ccbd2a03297121aee5f86d007f929f49ca7a1a (diff)
parent9c4f76744a764f8898e5735d838f929c277821c0 (diff)
downloadrequests-cache-d892c2237d28d86edd11004d119a8c94c2efc56d.tar.gz
Merge pull request #755 from requests-cache/serializer-params
Set default serializers for each backend using param defaults instead of 'default_serializer' class attributes
Diffstat (limited to 'requests_cache/backends/mongodb.py')
-rw-r--r--requests_cache/backends/mongodb.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/requests_cache/backends/mongodb.py b/requests_cache/backends/mongodb.py
index 90f8feb..07671e7 100644
--- a/requests_cache/backends/mongodb.py
+++ b/requests_cache/backends/mongodb.py
@@ -13,7 +13,7 @@ from pymongo.errors import OperationFailure
from .._utils import get_valid_kwargs
from ..policy.expiration import NEVER_EXPIRE, get_expiration_seconds
-from ..serializers import bson_document_serializer
+from ..serializers import SerializerType, bson_document_serializer
from . import BaseCache, BaseStorage
logger = getLogger(__name__)
@@ -34,21 +34,23 @@ class MongoCache(BaseCache):
db_name: str = 'http_cache',
connection: MongoClient = None,
decode_content: bool = True,
+ serializer: Optional[SerializerType] = None,
**kwargs,
):
super().__init__(cache_name=db_name, **kwargs)
+ skwargs = {'serializer': serializer, **kwargs} if serializer else kwargs
self.responses: MongoDict = MongoDict(
db_name,
collection_name='responses',
connection=connection,
decode_content=decode_content,
- **kwargs,
+ **skwargs,
)
self.redirects: MongoDict = MongoDict(
db_name,
collection_name='redirects',
connection=self.responses.connection,
- no_serializer=True,
+ serialzier=None,
**kwargs,
)
@@ -77,16 +79,15 @@ class MongoDict(BaseStorage):
kwargs: Additional keyword arguments for :py:class:`pymongo.MongoClient`
"""
- default_serializer = bson_document_serializer
-
def __init__(
self,
db_name: str,
collection_name: str = 'http_cache',
connection: Optional[MongoClient] = None,
+ serializer: Optional[SerializerType] = bson_document_serializer,
**kwargs,
):
- super().__init__(**kwargs)
+ super().__init__(serializer=serializer, **kwargs)
connection_kwargs = get_valid_kwargs(MongoClient.__init__, kwargs)
self.connection = connection or MongoClient(**connection_kwargs)
self.collection = self.connection[db_name][collection_name]