SQLite#
SQLite cache backend. For usage details, see Backends: SQLite.
SQLite cache backend. |
|
A dictionary-like interface for SQLite |
- class requests_cache.backends.sqlite.SQLiteCache(db_path='http_cache', serializer=None, **kwargs)[source]#
Bases:
BaseCache
SQLite cache backend.
- Parameters:
use_cache_dir – Store database in a user cache directory (e.g., ~/.cache/http_cache.sqlite)
use_temp – Store database in a temp directory (e.g.,
/tmp/http_cache.sqlite
)use_memory – Store database in memory instead of in a file
busy_timeout – Timeout in milliseconds for SQLite to wait if a table is locked. See pragma: busy_timeout for details.
fast_save – Significantly increases cache write performance, but with the possibility of data loss. See pragma: synchronous for details.
wal – Use Write Ahead Logging, so readers do not block writers.
kwargs – Additional keyword arguments for
sqlite3.connect()
serializer (
Union
[str
,SerializerPipeline
,Stage
,None
]) –
- clear()[source]#
Delete all items from the cache. If this fails due to a corrupted cache or other I/O error, this will attempt to delete the cache file and re-initialize.
- close()#
Close any open backend connections
- contains(key=None, request=None, url=None)#
Check if the specified request is cached
- Parameters:
request (
Union
[Request
,PreparedRequest
,CachedRequest
,None
]) – Check for a matching request, according to current request matching settingsurl (
Optional
[str
]) – Check for a matching GET request with the specified URL
- create_key(request, match_headers=None, **kwargs)#
Create a normalized cache key from a request object
- Parameters:
request (
Union
[Request
,PreparedRequest
,CachedRequest
]) –
- Return type:
- delete(*keys, expired=False, vacuum=True, **kwargs)[source]#
Remove responses from the cache according one or more conditions.
- filter(valid=True, expired=True, invalid=False, older_than=None)[source]#
Get responses from the cache, with optional filters for which responses to include:
- Parameters:
valid (
bool
) – Include valid and unexpired responses; set toFalse
to get only expired/invalid/old responsesexpired (
bool
) – Include expired responsesinvalid (
bool
) – Include invalid responses (as an emptyCachedResponse
)older_than (
Union
[None
,int
,float
,str
,datetime
,timedelta
]) – Get responses older than this value, relative toresponse.created_at
- Return type:
- get_response(key, default=None)#
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:
- remove_expired_responses(expire_after=None)#
- reset_expiration(expire_after=None)#
Set a new expiration value to set on existing cache items
- save_response(response, cache_key=None, expires=None)#
Save a response to the cache
- class requests_cache.backends.sqlite.SQLiteDict(db_path, table_name='http_cache', busy_timeout=None, fast_save=False, retries=3, serializer=<requests_cache.serializers.pipeline.SerializerPipeline object>, use_cache_dir=False, use_memory=False, use_temp=False, wal=False, **kwargs)[source]#
Bases:
BaseStorage
A dictionary-like interface for SQLite
- Parameters:
- bulk_commit()[source]#
Insert a large number of records within a single transaction
Example
>>> d1 = SQLiteDict('test') >>> with d1.bulk_commit(): ... for i in range(1000): ... d1[i] = i * 2
- bulk_delete(keys=None, values=None)[source]#
Delete multiple items from the cache, without raising errors for any missing items. Supports deleting by either key or by value.
- deserialize(key, value)#
Deserialize a value, if a serializer is available.
If deserialization fails (usually due to a value saved in an older requests-cache version),
None
will be returned.- Parameters:
value (
TypeVar
(VT
)) –
- 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.
- serialize(value)[source]#
Serialize a value, if a serializer is available
- Parameters:
value (
TypeVar
(VT
)) –
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D #
- size()[source]#
Return the size of the database, in bytes. For an in-memory database, this will be an estimate based on page size.
- Return type:
- sorted(key='expires', reversed=False, limit=None, expired=True)[source]#
Get cache values in sorted order; see
SQLiteCache.sorted()
for usage details
- 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 #
- requests_cache.backends.sqlite.get_cache_path(db_path, use_cache_dir=False, use_temp=False)[source]#
Get a resolved cache path
- requests_cache.backends.sqlite.sqlite_template(timeout=5.0, detect_types=0, isolation_level=None, check_same_thread=True, factory=None, cached_statements=100, uri=False)[source]#
Template function to get an accurate signature for the builtin
sqlite3.connect()