summaryrefslogtreecommitdiff
path: root/requests_cache
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2022-10-28 12:18:14 -0500
committerJordan Cook <jordan.cook.git@proton.me>2022-10-28 15:05:13 -0500
commit03a97079839a5683b202e3ea3f66e8ce54eedab4 (patch)
tree33540bb5443d9667b1b82df52e561e0f5437adb9 /requests_cache
parenteae13531f0d2806068229d04621b6ec7e1fc406e (diff)
downloadrequests-cache-03a97079839a5683b202e3ea3f66e8ce54eedab4.tar.gz
Omit invalid responses and set response.cache_key in SQLiteCache.sorted()
Diffstat (limited to 'requests_cache')
-rw-r--r--requests_cache/backends/sqlite.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/requests_cache/backends/sqlite.py b/requests_cache/backends/sqlite.py
index 87b581b..87a09e0 100644
--- a/requests_cache/backends/sqlite.py
+++ b/requests_cache/backends/sqlite.py
@@ -327,11 +327,19 @@ class SQLiteDict(BaseStorage):
with self.connection(commit=True) as con:
for row in con.execute(
- f'SELECT value FROM {self.table_name} {filter_expr}'
+ f'SELECT key, value FROM {self.table_name} {filter_expr}'
f' ORDER BY {key} {direction} {limit_expr}',
params,
):
- yield self.deserialize(row[0])
+ result = self.deserialize(row[1])
+ # Set cache key, if it's a response object
+ try:
+ result.cache_key = row[0]
+ except AttributeError:
+ pass
+ # Omit any results that can't be deserialized
+ if result:
+ yield result
def vacuum(self):
with self.connection(commit=True) as con: