base¶
Summary¶
|
A wrapper for lower-level cache storage operations. |
|
Base class for cache backends; includes a non-persistent, in-memory cache. |
|
Simple in-memory storage that wraps a dict with the |
Module Contents¶
- class BaseCache(secret_key=None, salt=b'aiohttp-client-cache', serializer=None, **kwargs)¶
Bases:
object
A wrapper for lower-level cache storage operations. This is separate from
CacheBackend
to allow a single backend to contain multiple cache objects.- _abc_impl = <_abc_data object>¶
- static _get_serializer(secret_key, salt)¶
Get the appropriate serializer to use; either
itsdangerous
, if a secret key is specified, or plainpickle
otherwise. :raises py:exc:ImportError ifsecret_key
is specified butitsdangerous
is not installed:
- abstract async clear()¶
Delete all items from the cache
- abstract async contains(key)¶
Check if a key is stored in the cache
- abstract async delete(key)¶
Delete an item from the cache. Does not raise an error if the item is missing.
- Parameters
key (str) –
- deserialize(item)¶
Deserialize a cached URL or response
- Return type
- Parameters
item (Optional[Union[aiohttp_client_cache.response.CachedResponse, bytes, str]]) –
- abstract keys()¶
Get all keys stored in the cache
- Return type
- async pop(key, default=None)¶
Delete an item from the cache, and return the deleted item
- abstract async read(key)¶
Read an item from the cache. Returns
None
if the item is missing.
- serialize(item=None)¶
Serialize a URL or response into bytes
- Return type
- Parameters
item (Optional[Union[aiohttp_client_cache.response.CachedResponse, bytes, str]]) –
- abstract values()¶
Get all values stored in the cache
- Return type
- abstract async write(key, item)¶
Write an item to the cache
- Parameters
key (str) –
item (Optional[Union[aiohttp_client_cache.response.CachedResponse, bytes, str]]) –
- class CacheBackend(cache_name='aiohttp-cache', expire_after=-1, urls_expire_after=None, allowed_codes=(200, ), allowed_methods=('GET', 'HEAD'), include_headers=False, ignored_params=None, cache_control=False, filter_fn=<function CacheBackend.<lambda>>, **kwargs)¶
Bases:
object
Base class for cache backends; includes a non-persistent, in-memory cache.
This manages higher-level cache operations, including cache expiration, generating cache keys, and managing redirect history.
Lower-level storage operations are handled by
BaseCache
. To extend this with your own custom backend, implement one or more subclasses ofBaseCache
to use asCacheBackend.responses
andCacheBackend.response_aliases
.- Parameters
cache_name (str) –
expire_after (Union[None, int, float, str, datetime.datetime, datetime.timedelta]) –
urls_expire_after (Dict[str, Union[None, int, float, str, datetime.datetime, datetime.timedelta]]) –
allowed_codes (tuple) –
allowed_methods (tuple) –
include_headers (bool) –
ignored_params (Iterable) –
cache_control (bool) –
filter_fn (Callable) –
- __init__(cache_name='aiohttp-cache', expire_after=-1, urls_expire_after=None, allowed_codes=(200, ), allowed_methods=('GET', 'HEAD'), include_headers=False, ignored_params=None, cache_control=False, filter_fn=<function CacheBackend.<lambda>>, **kwargs)¶
- Parameters
cache_name (
str
) – Cache prefix or namespace, depending on backendexpire_after (
Union
[None
,int
,float
,str
,datetime
,timedelta
]) – Time after which a cache entry will be expired; see Cache Expiration for possible formatsurls_expire_after (
Optional
[Dict
[str
,Union
[None
,int
,float
,str
,datetime
,timedelta
]]]) – Expiration times to apply for different URL patternsallowed_codes (
tuple
) – Only cache responses with these status codesallowed_methods (
tuple
) – Only cache requests with these HTTP methodsinclude_headers (
bool
) – Cache requests with different headers separatelyignored_params (
Optional
[Iterable
]) – Request parameters to be excluded from the cache keycache_control (
bool
) – Use Cache-Control response headersfilter_fn (
Callable
) – function that takes aaiohttp.ClientResponse
object and returns a boolean indicating whether or not that response should be cached. Will be applied to both new and previously cached responsessecret_key (Union[Iterable, str, bytes]) – Optional secret key used to sign cache items for added security
salt (Union[str, bytes]) – Optional salt used to sign cache items
serializer – Custom serializer that provides
loads
anddumps
methods
- async _get_redirect_response(key)¶
Get the response referenced by a redirect key, if available
- Return type
- Parameters
key (str) –
- async clear()¶
Clear cache
- async close()¶
Close any active connections, if applicable
- create_key(method, url, **kwargs)¶
Create a unique cache key based on request details
- async delete(key)¶
Delete a response from the cache, along with its history (if applicable)
- Parameters
key (str) –
- async delete_expired_responses()¶
Deletes all expired responses from the cache. Also deletes any cache items that are filtered out according to
filter_fn()
.
- async delete_url(url, method='GET', **kwargs)¶
Delete cached response associated with url, along with its history (if applicable)
- async get_response(key)¶
Fetch a cached response based on a cache key
- Return type
- Parameters
key (str) –
- get_urls()¶
Get all URLs currently in the cache
- Return type
- async has_url(url, method='GET', **kwargs)¶
Returns True if cache has url, False otherwise
- is_cacheable(response, actions=None)¶
Perform all checks needed to determine if the given response should be cached
- Return type
- Parameters
response (Optional[Union[
aiohttp.ClientResponse
, aiohttp_client_cache.response.CachedResponse]]) –actions (Optional[aiohttp_client_cache.cache_control.CacheActions]) –
- async request(method, url, expire_after=None, **kwargs)¶
Fetch a cached response based on request info
- Parameters
- Return type
- async save_response(response, actions)¶
Save a response to the cache
- Parameters
response (
ClientResponse
) – Response to saveactions (
CacheActions
) – Specific cache actions to take
- class DictCache(secret_key=None, salt=b'aiohttp-client-cache', serializer=None, **kwargs)¶
Bases:
aiohttp_client_cache.backends.base.BaseCache
,collections.UserDict
Simple in-memory storage that wraps a dict with the
BaseStorage
interface- _abc_impl = <_abc_data object>¶
- async clear()¶
Delete all items from the cache
- async delete(key)¶
Delete an item from the cache. Does not raise an error if the item is missing.
- Parameters
key (str) –
- keys()¶
Get all keys stored in the cache
- Return type
- async read(key)¶
Read an item from the cache. Returns
None
if the item is missing.- Return type
- Parameters
key (str) –
- values()¶
Get all values stored in the cache
- Return type
- async write(key, item)¶
Write an item to the cache
- Parameters
key (str) –
item (Optional[Union[aiohttp_client_cache.response.CachedResponse, bytes, str]]) –