class BytecodeCache: (source)
Known subclasses: jinja2.bccache.FileSystemBytecodeCache
, jinja2.bccache.MemcachedBytecodeCache
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.
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 | dump |
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 | get |
Return a cache bucket for the given template. All arguments are mandatory but filename may be `None`. |
Method | get |
Returns the unique hash key for this template name. |
Method | get |
Returns a checksum for the source. |
Method | load |
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. |
Method | set |
Put the bucket into the cache. |
jinja2.bccache.FileSystemBytecodeCache
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.
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:Bucket | Undocumented |
Return a cache bucket for the given template. All arguments are mandatory but filename may be `None`.
Parameters | |
environment:Environment | Undocumented |
name:str | Undocumented |
filename:t.Optional[ | Undocumented |
source:str | Undocumented |
Returns | |
Bucket | Undocumented |
Returns the unique hash key for this template name.
Parameters | |
name:str | Undocumented |
filename:t.Optional[ | Undocumented |
Returns | |
str | Undocumented |
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:Bucket | Undocumented |