Base#
Base classes for all cache backends.
Base class for cache backends. |
|
Base class for backend storage implementations. |
|
A basic dict wrapper class for non-persistent, in-memory storage |
- class requests_cache.backends.base.BaseCache(cache_name='http_cache', match_headers=False, ignored_parameters=None, key_fn=None, **kwargs)[source]#
Bases:
objectBase class for cache backends. Can be used as a non-persistent, in-memory cache.
This manages higher-level cache operations, including:
Cache expiration
Generating cache keys
Managing redirect history
Convenience methods for general cache info
Lower-level storage operations are handled by
BaseStorage.To extend this with your own custom backend, see Custom Backends.
- Parameters
- contains(key=None, request=None, url=None)[source]#
Check if the specified request is cached :type key:
Optional[str] :param key: Check for a specific cache key :type request:Union[Request,PreparedRequest,CachedRequest,None] :param request: Check for a matching request, according to current request matching settings :type url:Optional[str] :param url: Check for a matching GET request with the specified URL
- create_key(request=None, **kwargs)[source]#
Create a normalized cache key from a request object
- Parameters
request (
Union[Request,PreparedRequest,CachedRequest,None]) –- Return type
- delete(*keys, expired=False, invalid=False, requests=None, urls=None)[source]#
Remove responses from the cache according one or more conditions. :type keys:
str:param keys: Remove responses with these cache keys :type expired:bool:param expired: Remove all expired responses :type invalid:bool:param invalid: Remove all invalid responses (that can’t be deserialized with current settings) :type requests:Optional[Iterable[Union[Request,PreparedRequest,CachedRequest]]] :param requests: Remove matching responses, according to current request matching settings :type urls:Optional[Iterable[str]] :param urls: Remove matching GET requests for the specified URL(s)
- filter(valid=True, expired=True, invalid=False)[source]#
Get responses from the cache, with optional filters :type valid:
bool:param valid: Include valid and unexpired responses; set toFalseto get onlyexpired/invalid/old responses
- Parameters
- Return type
- get_response(key, default=None)[source]#
Retrieve a response from the cache, if it exists
- Parameters
key (
str) – Cache key for the responsedefault – Value to return if key is not in the cache
- Return type
- reset_expiration(expire_after=None)[source]#
Set a new expiration value on existing cache items :type expire_after:
Union[None,int,float,str,datetime,timedelta] :param expire_after: New expiration value, relative to the current time
- update(other)[source]#
Update this cache with the contents of another cache
- Parameters
other (
BaseCache) –
- class requests_cache.backends.base.BaseStorage(serializer=None, **kwargs)[source]#
Bases:
collections.abc.MutableMapping,abc.ABCBase class for backend storage implementations. This provides a common dictionary-like interface for the underlying storage operations (create, read, update, delete). One
BaseStorageinstance corresponds to a single table/hash/collection, or whatever the backend-specific equivalent may be.BaseStoragesubclasses contain no behavior specific torequestsor caching, which are handled byBaseCache.BaseStoragealso contains a serializer module or instance (defaulting topickle), which determines howCachedResponseobjects are saved internally. See Serializers for details.- Parameters
serializer – Custom serializer that provides
loadsanddumpsmethodskwargs – Additional serializer or backend-specific keyword arguments
- bulk_delete(keys)[source]#
Delete multiple keys from the cache, without raising errors for missing keys. This is a naive implementation that subclasses should override with a more efficient backend-specific implementation, if possible.
- clear() None. Remove all items from D.#
- get(k[, d]) D[k] if k in D, else d. d defaults to None.#
- items() a set-like object providing a view on D's items#
- keys() a set-like object providing a view on D's keys#
- pop(k[, d]) v, remove specified key and return the corresponding value.#
If key is not found, d is returned if given, otherwise KeyError is raised.
- popitem() (k, v), remove and return some (key, value) pair#
as a 2-tuple; but raise KeyError if D is empty.
- property serializer#
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
- update([E, ]**F) None. Update D from mapping/iterable E and F.#
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
- values() an object providing a view on D's values#
- class requests_cache.backends.base.DictStorage(*args, **kwargs)[source]#
Bases:
collections.UserDict,requests_cache.backends.base.BaseStorageA basic dict wrapper class for non-persistent, in-memory storage
Note
This is mostly a placeholder for when no other backends are available. For in-memory caching, either
SQLiteCache(with use_memory=True) orRedisCacheis recommended instead.- bulk_delete(keys)#
Delete multiple keys from the cache, without raising errors for missing keys. This is a naive implementation that subclasses should override with a more efficient backend-specific implementation, if possible.
- clear() None. Remove all items from D.#
- copy()#
- classmethod fromkeys(iterable, value=None)#
- get(k[, d]) D[k] if k in D, else d. d defaults to None.#
- items() a set-like object providing a view on D's items#
- keys() a set-like object providing a view on D's keys#
- pop(k[, d]) v, remove specified key and return the corresponding value.#
If key is not found, d is returned if given, otherwise KeyError is raised.
- popitem() (k, v), remove and return some (key, value) pair#
as a 2-tuple; but raise KeyError if D is empty.
- property serializer#
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
- update([E, ]**F) None. Update D from mapping/iterable E and F.#
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
- values() an object providing a view on D's values#