diff options
author | Jordan Cook <jordan.cook.git@proton.me> | 2023-02-28 13:59:40 -0600 |
---|---|---|
committer | Jordan Cook <jordan.cook.git@proton.me> | 2023-03-01 15:22:18 -0600 |
commit | 0f330b54e15966ff74582cfa7d794f6b844d324c (patch) | |
tree | 772c6cd6ef117cf6fd1d7a2c1df502bd4d9cd6c6 | |
parent | dd56ee17d77523426daac086ae02554368e3d8f5 (diff) | |
download | requests-cache-0f330b54e15966ff74582cfa7d794f6b844d324c.tar.gz |
Don't use bulk_delete() if only deleting a single key
-rw-r--r-- | requests_cache/backends/base.py | 9 |
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): |