summaryrefslogtreecommitdiff
path: root/requests_cache/backends/base.py
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2021-03-22 18:38:10 -0500
committerJordan Cook <jordan.cook@pioneer.com>2021-03-24 12:53:58 -0500
commitc3ffa61e033104d3dfb2de56911feb88334f51de (patch)
tree92ed2dbb8cf47da61a3fddaad27cb9651a52850e /requests_cache/backends/base.py
parent45787e8ebbc916147ef227d0e54831800ad9861f (diff)
downloadrequests-cache-c3ffa61e033104d3dfb2de56911feb88334f51de.tar.gz
Add a 'urls' property on BaseCache to get all cached URLs
Closes #155
Diffstat (limited to 'requests_cache/backends/base.py')
-rw-r--r--requests_cache/backends/base.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/requests_cache/backends/base.py b/requests_cache/backends/base.py
index 5698c4a..1247b31 100644
--- a/requests_cache/backends/base.py
+++ b/requests_cache/backends/base.py
@@ -8,6 +8,7 @@
import hashlib
import json
from pickle import PickleError
+from typing import List
from urllib.parse import parse_qsl, urlencode, urlparse, urlunparse
import requests
@@ -32,6 +33,13 @@ class BaseCache(object):
self._include_get_headers = kwargs.get("include_get_headers", False)
self._ignored_parameters = set(kwargs.get("ignored_parameters") or [])
+ @property
+ def urls(self) -> List[str]:
+ """Get all URLs currently in the cache"""
+ response_urls = [response.url for response in self.responses.values()]
+ redirect_urls = list(self.keys_map.keys())
+ return sorted(response_urls + redirect_urls)
+
def save_response(self, key: str, response: AnyResponse, expire_after: ExpirationTime = None):
"""Save response to cache