summaryrefslogtreecommitdiff
path: root/requests_cache/backends
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2021-03-03 19:47:40 -0600
committerJordan Cook <jordan.cook@pioneer.com>2021-03-04 22:17:21 -0600
commit0f03e68b9840caf4bf40321cd3110347034fddd5 (patch)
tree28b72bf7a4756e1f426ff9ab76bdb9e719573286 /requests_cache/backends
parentbfe214eedeb728b1e8899460a5bdde5590fc34ae (diff)
downloadrequests-cache-0f03e68b9840caf4bf40321cd3110347034fddd5.tar.gz
Refactor CachedSession to be usable as a mixin class
Diffstat (limited to 'requests_cache/backends')
-rw-r--r--requests_cache/backends/__init__.py2
-rw-r--r--requests_cache/backends/base.py20
-rw-r--r--requests_cache/backends/dynamodb.py2
-rw-r--r--requests_cache/backends/gridfs.py2
-rw-r--r--requests_cache/backends/mongo.py2
-rw-r--r--requests_cache/backends/redis.py2
-rw-r--r--requests_cache/backends/sqlite.py2
-rw-r--r--requests_cache/backends/storage/dbdict.py4
-rw-r--r--requests_cache/backends/storage/mongodict.py4
9 files changed, 28 insertions, 12 deletions
diff --git a/requests_cache/backends/__init__.py b/requests_cache/backends/__init__.py
index 82fb5e1..66df84f 100644
--- a/requests_cache/backends/__init__.py
+++ b/requests_cache/backends/__init__.py
@@ -7,7 +7,7 @@
"""
-from .base import BaseCache
+from .base import BACKEND_KWARGS, BaseCache
registry = {
'memory': BaseCache,
diff --git a/requests_cache/backends/base.py b/requests_cache/backends/base.py
index a14b884..7210a32 100644
--- a/requests_cache/backends/base.py
+++ b/requests_cache/backends/base.py
@@ -14,7 +14,23 @@ from urllib.parse import parse_qsl, urlencode, urlparse, urlunparse
import requests
-_DEFAULT_HEADERS = requests.utils.default_headers()
+# All backend-specific keyword arguments combined
+BACKEND_KWARGS = [
+ 'connection',
+ 'db_name',
+ 'endpont_url',
+ 'extension',
+ 'fast_save',
+ 'ignored_parameters',
+ 'include_get_headers',
+ 'location',
+ 'name',
+ 'namespace',
+ 'read_capacity_units',
+ 'region_name',
+ 'write_capacity_units',
+]
+DEFAULT_HEADERS = requests.utils.default_headers()
class BaseCache(object):
@@ -230,7 +246,7 @@ class BaseCache(object):
if request.body:
key.update(_to_bytes(body))
else:
- if self._include_get_headers and request.headers != _DEFAULT_HEADERS:
+ if self._include_get_headers and request.headers != DEFAULT_HEADERS:
for name, value in sorted(request.headers.items()):
key.update(_to_bytes(name))
key.update(_to_bytes(value))
diff --git a/requests_cache/backends/dynamodb.py b/requests_cache/backends/dynamodb.py
index 55eaf1b..d3813c1 100644
--- a/requests_cache/backends/dynamodb.py
+++ b/requests_cache/backends/dynamodb.py
@@ -17,7 +17,7 @@ class DynamoDbCache(BaseCache):
:param namespace: dynamodb table name (default: ``'requests-cache'``)
:param connection: (optional) ``boto3.resource('dynamodb')``
"""
- super(DynamoDbCache, self).__init__(**options)
+ super().__init__(**options)
self.responses = DynamoDbDict(
table_name,
'responses',
diff --git a/requests_cache/backends/gridfs.py b/requests_cache/backends/gridfs.py
index e999043..7e8d69d 100644
--- a/requests_cache/backends/gridfs.py
+++ b/requests_cache/backends/gridfs.py
@@ -27,6 +27,6 @@ class GridFSCache(BaseCache):
:param db_name: database name
:param connection: (optional) ``pymongo.Connection``
"""
- super(GridFSCache, self).__init__(**options)
+ super().__init__(**options)
self.responses = GridFSPickleDict(db_name, options.get('connection'))
self.keys_map = MongoDict(db_name, 'http_redirects', self.responses.connection)
diff --git a/requests_cache/backends/mongo.py b/requests_cache/backends/mongo.py
index 6f7b4ca..13ed774 100644
--- a/requests_cache/backends/mongo.py
+++ b/requests_cache/backends/mongo.py
@@ -17,6 +17,6 @@ class MongoCache(BaseCache):
:param db_name: database name (default: ``'requests-cache'``)
:param connection: (optional) ``pymongo.Connection``
"""
- super(MongoCache, self).__init__(**options)
+ super().__init__(**options)
self.responses = MongoPickleDict(db_name, 'responses', options.get('connection'))
self.keys_map = MongoDict(db_name, 'urls', self.responses.connection)
diff --git a/requests_cache/backends/redis.py b/requests_cache/backends/redis.py
index 14bb170..daad608 100644
--- a/requests_cache/backends/redis.py
+++ b/requests_cache/backends/redis.py
@@ -17,6 +17,6 @@ class RedisCache(BaseCache):
:param namespace: redis namespace (default: ``'requests-cache'``)
:param connection: (optional) ``redis.StrictRedis``
"""
- super(RedisCache, self).__init__(**options)
+ super().__init__(**options)
self.responses = RedisDict(namespace, 'responses', options.get('connection'))
self.keys_map = RedisDict(namespace, 'urls', self.responses.connection)
diff --git a/requests_cache/backends/sqlite.py b/requests_cache/backends/sqlite.py
index 5fef40d..543915d 100644
--- a/requests_cache/backends/sqlite.py
+++ b/requests_cache/backends/sqlite.py
@@ -23,6 +23,6 @@ class DbCache(BaseCache):
See :ref:`backends.DbDict <backends_dbdict>` for more info
:param extension: extension for filename (default: ``'.sqlite'``)
"""
- super(DbCache, self).__init__(**options)
+ super().__init__(**options)
self.responses = DbPickleDict(str(location) + extension, 'responses', fast_save=fast_save)
self.keys_map = DbDict(location + extension, 'urls')
diff --git a/requests_cache/backends/storage/dbdict.py b/requests_cache/backends/storage/dbdict.py
index 07251a3..cd0958f 100644
--- a/requests_cache/backends/storage/dbdict.py
+++ b/requests_cache/backends/storage/dbdict.py
@@ -144,7 +144,7 @@ class DbPickleDict(DbDict):
"""Same as :class:`DbDict`, but pickles values before saving"""
def __setitem__(self, key, item):
- super(DbPickleDict, self).__setitem__(key, sqlite3.Binary(pickle.dumps(item)))
+ super().__setitem__(key, sqlite3.Binary(pickle.dumps(item)))
def __getitem__(self, key):
- return pickle.loads(bytes(super(DbPickleDict, self).__getitem__(key)))
+ return pickle.loads(bytes(super().__getitem__(key)))
diff --git a/requests_cache/backends/storage/mongodict.py b/requests_cache/backends/storage/mongodict.py
index 2d85c0c..1511228 100644
--- a/requests_cache/backends/storage/mongodict.py
+++ b/requests_cache/backends/storage/mongodict.py
@@ -67,7 +67,7 @@ class MongoPickleDict(MongoDict):
"""Same as :class:`MongoDict`, but pickles values before saving"""
def __setitem__(self, key, item):
- super(MongoPickleDict, self).__setitem__(key, pickle.dumps(item))
+ super().__setitem__(key, pickle.dumps(item))
def __getitem__(self, key):
- return pickle.loads(bytes(super(MongoPickleDict, self).__getitem__(key)))
+ return pickle.loads(bytes(super().__getitem__(key)))