49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""
|
|
flask_caching.backends.base
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This module contains the BaseCache that other caching
|
|
backends have to implement.
|
|
|
|
:copyright: (c) 2018 by Peter Justin.
|
|
:copyright: (c) 2010 by Thadeus Burgess.
|
|
:license: BSD, see LICENSE for more details.
|
|
"""
|
|
|
|
from cachelib import BaseCache as CachelibBaseCache
|
|
|
|
|
|
class BaseCache(CachelibBaseCache):
|
|
"""Baseclass for the cache systems. All the cache systems implement this
|
|
API or a superset of it.
|
|
|
|
:param default_timeout: The default timeout (in seconds) that is used if
|
|
no timeout is specified on :meth:`set`. A timeout
|
|
of 0 indicates that the cache never expires.
|
|
"""
|
|
|
|
def __init__(self, default_timeout=300):
|
|
CachelibBaseCache.__init__(self, default_timeout=default_timeout)
|
|
self.ignore_errors = False
|
|
|
|
@classmethod
|
|
def factory(cls, app, config, args, kwargs):
|
|
return cls()
|
|
|
|
def delete_many(self, *keys):
|
|
"""Deletes multiple keys at once.
|
|
|
|
:param keys: The function accepts multiple keys as positional
|
|
arguments.
|
|
:returns: A list containing all sucessfuly deleted keys
|
|
:rtype: boolean
|
|
"""
|
|
deleted_keys = []
|
|
for key in keys:
|
|
if self.delete(key):
|
|
deleted_keys.append(key)
|
|
else:
|
|
if not self.ignore_errors:
|
|
break
|
|
return deleted_keys
|