OpenQuizz
Une application de gestion des contenus pédagogiques
|
Public Member Functions | |
def | load_bytecode (self, bucket) |
def | dump_bytecode (self, bucket) |
def | clear (self) |
def | get_cache_key (self, name, filename=None) |
def | get_source_checksum (self, source) |
def | get_bucket (self, environment, name, filename, source) |
def | set_bucket (self, bucket) |
To implement your own bytecode cache you have to subclass this class and override :meth:`load_bytecode` and :meth:`dump_bytecode`. Both of these methods are passed a :class:`~jinja2.bccache.Bucket`. A very basic bytecode cache that saves the bytecode on the file system:: from os import path class MyCache(BytecodeCache): def __init__(self, directory): self.directory = directory def load_bytecode(self, bucket): filename = path.join(self.directory, bucket.key) if path.exists(filename): with open(filename, 'rb') as f: bucket.load_bytecode(f) def dump_bytecode(self, bucket): filename = path.join(self.directory, bucket.key) with open(filename, 'wb') as f: bucket.write_bytecode(f) A more advanced version of a filesystem based bytecode cache is part of Jinja.
def clear | ( | self | ) |
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.
Reimplemented in FileSystemBytecodeCache.
def dump_bytecode | ( | self, | |
bucket | |||
) |
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.
Reimplemented in MemcachedBytecodeCache, and FileSystemBytecodeCache.
def get_bucket | ( | self, | |
environment, | |||
name, | |||
filename, | |||
source | |||
) |
Return a cache bucket for the given template. All arguments are mandatory but filename may be `None`.
def get_cache_key | ( | self, | |
name, | |||
filename = None |
|||
) |
Returns the unique hash key for this template name.
def get_source_checksum | ( | self, | |
source | |||
) |
Returns a checksum for the source.
def load_bytecode | ( | self, | |
bucket | |||
) |
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.
Reimplemented in MemcachedBytecodeCache, and FileSystemBytecodeCache.
def set_bucket | ( | self, | |
bucket | |||
) |
Put the bucket into the cache.