diff options
author | Jordan Cook <jordan.cook.git@proton.me> | 2022-10-28 12:18:14 -0500 |
---|---|---|
committer | Jordan Cook <jordan.cook.git@proton.me> | 2022-10-28 15:05:13 -0500 |
commit | 03a97079839a5683b202e3ea3f66e8ce54eedab4 (patch) | |
tree | 33540bb5443d9667b1b82df52e561e0f5437adb9 /requests_cache | |
parent | eae13531f0d2806068229d04621b6ec7e1fc406e (diff) | |
download | requests-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.py | 12 |
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: |