diff options
| author | Jordan Cook <jordan.cook@pioneer.com> | 2021-03-24 17:00:22 -0500 |
|---|---|---|
| committer | Jordan Cook <jordan.cook@pioneer.com> | 2021-03-30 17:42:21 -0500 |
| commit | 366c3145ef579c39227bb1570d85f2d99dc2bbf6 (patch) | |
| tree | d9bd99653bc448952cd94221c3a7a347ba40608f /requests_cache/backends/base.py | |
| parent | a46096fc4df312cc00ef427b4fd629af3d8a36b0 (diff) | |
| download | requests-cache-366c3145ef579c39227bb1570d85f2d99dc2bbf6.tar.gz | |
Use url-normalize for additional URL normalization for cache keys
Diffstat (limited to 'requests_cache/backends/base.py')
| -rw-r--r-- | requests_cache/backends/base.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/requests_cache/backends/base.py b/requests_cache/backends/base.py index e0f08d9..7824c15 100644 --- a/requests_cache/backends/base.py +++ b/requests_cache/backends/base.py @@ -9,6 +9,7 @@ from typing import Iterable, List, Union from urllib.parse import parse_qsl, urlencode, urlparse, urlunparse import requests +from url_normalize import url_normalize from ..response import AnyResponse, CachedResponse, ExpirationTime @@ -70,7 +71,9 @@ class BaseCache: response = self.responses[key] response.reset() # In case response was in memory and raw content has already been read return response - except (AttributeError, KeyError, TypeError, ValueError, pickle.PickleError) as e: + except KeyError: + return default + except (AttributeError, TypeError, ValueError, pickle.PickleError) as e: logger.error(f'Unable to deserialize response with key {key}: {str(e)}') return default @@ -117,7 +120,7 @@ class BaseCache: try: response = self.responses[key] except Exception as e: - logger.info(f'Unable to deserialize response with key {key}: {str(e)}') + logger.debug(f'Unable to deserialize response with key {key}: {str(e)}') self.delete(key) continue @@ -141,6 +144,7 @@ class BaseCache: def create_key(self, request: requests.PreparedRequest) -> str: url = self._remove_ignored_url_parameters(request) + url = url_normalize(url) body = self._remove_ignored_body_parameters(request) key = hashlib.sha256() key.update(_encode(request.method.upper())) |
