diff options
author | Jordan Cook <jordan.cook.git@proton.me> | 2023-01-01 12:57:26 -0600 |
---|---|---|
committer | Jordan Cook <jordan.cook.git@proton.me> | 2023-01-13 14:22:31 -0600 |
commit | d892c2237d28d86edd11004d119a8c94c2efc56d (patch) | |
tree | 911e03121980c25eafdd8dbd95a82a2308e85514 /requests_cache/backends/filesystem.py | |
parent | 87ccbd2a03297121aee5f86d007f929f49ca7a1a (diff) | |
parent | 9c4f76744a764f8898e5735d838f929c277821c0 (diff) | |
download | requests-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.py | 11 |
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) |