summaryrefslogtreecommitdiff
path: root/requests_cache/models
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2021-09-19 21:06:03 -0500
committerJordan Cook <jordan.cook@pioneer.com>2021-09-20 23:33:30 -0500
commitb3fc1f042e2deebcc62c1a074a02c0f90ab406ca (patch)
tree505b517e76d06b736966213f7f6e52075d9f463a /requests_cache/models
parent5605db4a84c4ee15f4406ea872aa650e31f3348f (diff)
downloadrequests-cache-b3fc1f042e2deebcc62c1a074a02c0f90ab406ca.tar.gz
Reorganize & improve request normalization functions:
* Handle all normalization in `cache_keys` module, get rid of `normalize_dict()` function used in `CachedSession` * Reorganize `cache_keys` helper functions into the following: * `normalize_request()` * `normalize_url()` * `normalize_headers()` * `normalize_params()` * `normalize_body()` * `normalize_json_body()` * `redact_response()`
Diffstat (limited to 'requests_cache/models')
-rw-r--r--requests_cache/models/__init__.py5
-rw-r--r--requests_cache/models/request.py6
2 files changed, 8 insertions, 3 deletions
diff --git a/requests_cache/models/__init__.py b/requests_cache/models/__init__.py
index dec305a..6ffc7ad 100644
--- a/requests_cache/models/__init__.py
+++ b/requests_cache/models/__init__.py
@@ -2,11 +2,12 @@
# flake8: noqa: F401
from typing import Union
-from requests import PreparedRequest, Response
+from requests import PreparedRequest, Request, Response
from .raw_response import CachedHTTPResponse
from .request import CachedRequest
from .response import CachedResponse, set_response_defaults
AnyResponse = Union[Response, CachedResponse]
-AnyRequest = Union[PreparedRequest, CachedRequest]
+AnyRequest = Union[Request, PreparedRequest, CachedRequest]
+AnyPreparedRequest = Union[PreparedRequest, CachedRequest]
diff --git a/requests_cache/models/request.py b/requests_cache/models/request.py
index 46951fc..dbeddd0 100644
--- a/requests_cache/models/request.py
+++ b/requests_cache/models/request.py
@@ -1,6 +1,6 @@
from logging import getLogger
-from attr import define, field, fields_dict
+from attr import asdict, define, field, fields_dict
from requests import PreparedRequest
from requests.cookies import RequestsCookieJar
from requests.structures import CaseInsensitiveDict
@@ -27,6 +27,10 @@ class CachedRequest:
kwargs['cookies'] = getattr(original_request, '_cookies', None)
return cls(**kwargs)
+ def copy(self) -> 'CachedRequest':
+ """Return a copy of the CachedRequest"""
+ return self.__class__(**asdict(self))
+
def prepare(self) -> PreparedRequest:
"""Convert the CachedRequest back into a PreparedRequest"""
prepared_request = PreparedRequest()