class documentation

class MemcachedBytecodeCache(BytecodeCache): (source)

View In Hierarchy

This class implements a bytecode cache that uses a memcache cache for storing the information. It does not enforce a specific memcache library (tummy's memcache or cmemcache) but will accept any class that provides the minimal interface required. Libraries compatible with this class: - `cachelib <https://github.com/pallets/cachelib>`_ - `python-memcached <https://pypi.org/project/python-memcached/>`_ (Unfortunately the django cache interface is not compatible because it does not support storing binary data, only text. You can however pass the underlying cache client to the bytecode cache which is available as `django.core.cache.cache._client`.) The minimal interface for the client passed to the constructor is this: .. class:: MinimalClientInterface .. method:: set(key, value[, timeout]) Stores the bytecode in the cache. `value` is a string and `timeout` the timeout of the key. If timeout is not provided a default timeout or no timeout should be assumed, if it's provided it's an integer with the number of seconds the cache item should exist. .. method:: get(key) Returns the value for the cache key. If the item does not exist in the cache the return value must be `None`. The other arguments to the constructor are the prefix for all keys that is added before the actual cache key and the timeout for the bytecode in the cache system. We recommend a high (or no) timeout. This bytecode cache does not support clearing of used items in the cache. The clear method is a no-operation function. .. versionadded:: 2.7 Added support for ignoring memcache errors through the `ignore_memcache_errors` parameter.

Method __init__ Undocumented
Method dump_bytecode Subclasses have to override this method to write the bytecode from a bucket back to the cache. If it unable to do so it must not fail silently but raise an exception.
Method load_bytecode Subclasses have to override this method to load bytecode into a bucket. If they are not able to find code in the cache for the bucket, it must not do anything.
Instance Variable client Undocumented
Instance Variable ignore_memcache_errors Undocumented
Instance Variable prefix Undocumented
Instance Variable timeout Undocumented

Inherited from BytecodeCache:

Method clear Clears the cache. This method is not used by Jinja but should be implemented to allow applications to clear the bytecode cache used by a particular environment.
Method get_bucket Return a cache bucket for the given template. All arguments are mandatory but filename may be `None`.
Method get_cache_key Returns the unique hash key for this template name.
Method get_source_checksum Returns a checksum for the source.
Method set_bucket Put the bucket into the cache.
def __init__(self, client, prefix='jinja2/bytecode/', timeout=None, ignore_memcache_errors=True): (source)

Undocumented

Parameters
client:_MemcachedClientUndocumented
prefix:strUndocumented
timeout:t.Optional[int]Undocumented
ignore_memcache_errors:boolUndocumented
def dump_bytecode(self, bucket): (source)

Subclasses have to override this method to write the bytecode from a bucket back to the cache. If it unable to do so it must not fail silently but raise an exception.

Parameters
bucket:BucketUndocumented
def load_bytecode(self, bucket): (source)

Subclasses have to override this method to load bytecode into a bucket. If they are not able to find code in the cache for the bucket, it must not do anything.

Parameters
bucket:BucketUndocumented
client = (source)

Undocumented

ignore_memcache_errors = (source)

Undocumented

prefix = (source)

Undocumented

timeout = (source)

Undocumented