summaryrefslogtreecommitdiff
path: root/requests_cache/models
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2022-03-28 16:32:33 -0500
committerJordan Cook <jordan.cook@pioneer.com>2022-04-01 13:55:09 -0500
commitd05d042423151eaf61431b6f391338e448bbd5e5 (patch)
tree668c9f2d56e61f729e0cca99d3bb3031e88771ce /requests_cache/models
parent810e9d7085a0c7409b3a1b1002fb8f33292bce52 (diff)
downloadrequests-cache-d05d042423151eaf61431b6f391338e448bbd5e5.tar.gz
Move settings module to top level package, and leave 'models' subpackage for only serialized data models
Diffstat (limited to 'requests_cache/models')
-rw-r--r--requests_cache/models/__init__.py1
-rw-r--r--requests_cache/models/settings.py72
2 files changed, 0 insertions, 73 deletions
diff --git a/requests_cache/models/__init__.py b/requests_cache/models/__init__.py
index f2e7c19..6ffc7ad 100644
--- a/requests_cache/models/__init__.py
+++ b/requests_cache/models/__init__.py
@@ -7,7 +7,6 @@ from requests import PreparedRequest, Request, Response
from .raw_response import CachedHTTPResponse
from .request import CachedRequest
from .response import CachedResponse, set_response_defaults
-from .settings import ALL_METHODS, CacheSettings, FilterCallback, KeyCallback, RequestSettings
AnyResponse = Union[Response, CachedResponse]
AnyRequest = Union[Request, PreparedRequest, CachedRequest]
diff --git a/requests_cache/models/settings.py b/requests_cache/models/settings.py
deleted file mode 100644
index ff83206..0000000
--- a/requests_cache/models/settings.py
+++ /dev/null
@@ -1,72 +0,0 @@
-from typing import TYPE_CHECKING, Callable, Dict, Iterable, Union
-
-from attr import asdict, define, field
-
-from .._utils import get_valid_kwargs
-from ..expiration import ExpirationTime
-
-if TYPE_CHECKING:
- from . import AnyResponse
-
-ALL_METHODS = ('GET', 'HEAD', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE')
-DEFAULT_CACHE_NAME = 'http_cache'
-DEFAULT_METHODS = ('GET', 'HEAD')
-DEFAULT_STATUS_CODES = (200,)
-
-# Signatures for user-provided callbacks
-FilterCallback = Callable[['AnyResponse'], bool]
-KeyCallback = Callable[..., str]
-
-
-@define(init=False)
-class CacheSettings:
- """Class used internally to store settings that affect caching behavior. This allows settings
- to be used across multiple modules but exposed to the user in a single property
- (``CachedSession.settings``). These values can safely be modified after initialization. See
- :py:class:`.CachedSession` for usage details.
- """
-
- allowable_codes: Iterable[int] = field(default=DEFAULT_STATUS_CODES)
- allowable_methods: Iterable[str] = field(default=DEFAULT_METHODS)
- cache_control: bool = field(default=False)
- disabled: bool = field(default=False)
- expire_after: ExpirationTime = field(default=None)
- filter_fn: FilterCallback = field(default=None)
- ignored_parameters: Iterable[str] = field(default=None)
- key_fn: KeyCallback = field(default=None)
- match_headers: Union[Iterable[str], bool] = field(default=False)
- only_if_cached: bool = field(default=False)
- stale_if_error: bool = field(default=False)
- urls_expire_after: Dict[str, ExpirationTime] = field(factory=dict)
-
- # Additional settings that may be set for an individual request; not used at session level
- refresh: bool = field(default=False)
- revalidate: bool = field(default=False)
- request_expire_after: ExpirationTime = field(default=None)
-
- def __init__(self, **kwargs):
- """Ignore invalid kwargs for easier initialization from mixed ``**kwargs``"""
- kwargs = self._rename_kwargs(kwargs)
- kwargs = get_valid_kwargs(self.__attrs_init__, kwargs)
- self.__attrs_init__(**kwargs)
-
- @staticmethod
- def _rename_kwargs(kwargs):
- """Handle some deprecated argument names"""
- if 'old_data_on_error' in kwargs:
- kwargs['stale_if_error'] = kwargs.pop('old_data_on_error')
- if 'include_get_headers' in kwargs:
- kwargs['match_headers'] = kwargs.pop('include_get_headers')
- return kwargs
-
-
-@define(init=False)
-class RequestSettings(CacheSettings):
- """Cache settings that may be set for an individual request. Starts with session-level cache
- settings and adds/overrides with request-level settings"""
-
- def __init__(self, session_settings: CacheSettings = None, **kwargs):
- session_kwargs = asdict(session_settings) if session_settings else {}
- # request-level expiration needs to be stored separately
- kwargs['request_expire_after'] = kwargs.pop('expire_after', None)
- super().__init__(**{**session_kwargs, **kwargs})