summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2023-02-28 13:59:40 -0600
committerJordan Cook <jordan.cook.git@proton.me>2023-03-01 15:22:18 -0600
commit0f330b54e15966ff74582cfa7d794f6b844d324c (patch)
tree772c6cd6ef117cf6fd1d7a2c1df502bd4d9cd6c6
parentdd56ee17d77523426daac086ae02554368e3d8f5 (diff)
downloadrequests-cache-0f330b54e15966ff74582cfa7d794f6b844d324c.tar.gz
Don't use bulk_delete() if only deleting a single key
-rw-r--r--requests_cache/backends/base.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/requests_cache/backends/base.py b/requests_cache/backends/base.py
index 6193483..d64abc1 100644
--- a/requests_cache/backends/base.py
+++ b/requests_cache/backends/base.py
@@ -173,7 +173,14 @@ class BaseCache:
delete_keys.append(response.cache_key)
logger.debug(f'Deleting up to {len(delete_keys)} responses')
- self.responses.bulk_delete(delete_keys)
+ # For some backends, we don't want to use bulk_delete if there's only one key
+ if len(delete_keys) == 1:
+ try:
+ del self.responses[delete_keys[0]]
+ except KeyError:
+ pass
+ else:
+ self.responses.bulk_delete(delete_keys)
self._prune_redirects()
def _prune_redirects(self):