summaryrefslogtreecommitdiff
path: root/requests_cache/backends/filesystem.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/filesystem.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/filesystem.py')
-rw-r--r--requests_cache/backends/filesystem.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/requests_cache/backends/filesystem.py b/requests_cache/backends/filesystem.py
index b68e2ee..ccda6c8 100644
--- a/requests_cache/backends/filesystem.py
+++ b/requests_cache/backends/filesystem.py
@@ -12,7 +12,7 @@ from shutil import rmtree
from threading import RLock
from typing import Iterator, Optional
-from ..serializers import SERIALIZERS, json_serializer
+from ..serializers import SERIALIZERS, SerializerType, json_serializer
from . import BaseCache, BaseStorage
from .sqlite import AnyPath, SQLiteDict, get_cache_path
@@ -35,11 +35,13 @@ class FileCache(BaseCache):
cache_name: AnyPath = 'http_cache',
use_temp: bool = False,
decode_content: bool = True,
+ serializer: Optional[SerializerType] = None,
**kwargs,
):
super().__init__(cache_name=str(cache_name), **kwargs)
+ skwargs = {'serializer': serializer, **kwargs} if serializer else kwargs
self.responses: FileDict = FileDict(
- cache_name, use_temp=use_temp, decode_content=decode_content, **kwargs
+ cache_name, use_temp=use_temp, decode_content=decode_content, **skwargs
)
self.redirects: SQLiteDict = SQLiteDict(
self.cache_dir / 'redirects.sqlite', 'redirects', no_serializer=True, **kwargs
@@ -68,17 +70,16 @@ class FileCache(BaseCache):
class FileDict(BaseStorage):
"""A dictionary-like interface to files on the local filesystem"""
- default_serializer = json_serializer
-
def __init__(
self,
cache_name: AnyPath,
use_temp: bool = False,
use_cache_dir: bool = False,
extension: Optional[str] = None,
+ serializer: Optional[SerializerType] = json_serializer,
**kwargs,
):
- super().__init__(**kwargs)
+ super().__init__(serializer=serializer, **kwargs)
self.cache_dir = get_cache_path(cache_name, use_cache_dir=use_cache_dir, use_temp=use_temp)
self.extension = _get_extension(extension, self.serializer)
self.is_binary = getattr(self.serializer, 'is_binary', False)