class documentation

class PrefixLoader(BaseLoader):

View In Hierarchy

A loader that is passed a dict of loaders where each loader is bound to a prefix. The prefix is delimited from the template by a slash per default, which can be changed by setting the delimiter argument to something else:

loader = PrefixLoader({
    'app1':     PackageLoader('mypackage.app1'),
    'app2':     PackageLoader('mypackage.app2')
})

By loading 'app1/index.html' the file from the app1 package is loaded, by loading 'app2/index.html' the file from the second.

Method __init__ Undocumented
Method get​_loader Undocumented
Method get​_source No summary
Method list​_templates Iterates over all templates. If the loader does not support that it should raise a TypeError which is the default behavior.
Method load No summary
Instance Variable delimiter Undocumented
Instance Variable mapping Undocumented

Inherited from BaseLoader:

Class Variable has​_source​_access Undocumented
def __init__(self, mapping, delimiter='/'):

Undocumented

Parameters
mapping:t.Mapping[str, BaseLoader]Undocumented
delimiter:strUndocumented
def get_loader(self, template):

Undocumented

Parameters
template:strUndocumented
Returns
t.Tuple[BaseLoader, str]Undocumented
def get_source(self, environment, template):

Get the template source, filename and reload helper for a template. It's passed the environment and template name and has to return a tuple in the form (source, filename, uptodate) or raise a TemplateNotFound error if it can't locate the template.

The source part of the returned tuple must be the source of the template as a string. The filename should be the name of the file on the filesystem if it was loaded from there, otherwise None. The filename is used by Python for the tracebacks if no loader extension is used.

The last item in the tuple is the uptodate function. If auto reloading is enabled it's always called to check if the template changed. No arguments are passed so the function must store the old state somewhere (for example in a closure). If it returns False the template will be reloaded.

Parameters
environment:EnvironmentUndocumented
template:strUndocumented
Returns
t.Tuple[str, t.Optional[str], t.Optional[t.Callable[[], bool]]]Undocumented
def list_templates(self):
Iterates over all templates. If the loader does not support that it should raise a TypeError which is the default behavior.
Returns
t.List[str]Undocumented
@internalcode
def load(self, environment, name, globals=None):
Loads a template. This method looks up the template in the cache or loads one by calling get_source. Subclasses should not override this method as loaders working on collections of other loaders (such as PrefixLoader or ChoiceLoader) will not call this method but get_source directly.
Parameters
environment:EnvironmentUndocumented
name:strUndocumented
globals:t.Optional[t.MutableMapping[str, t.Any]]Undocumented
Returns
TemplateUndocumented
delimiter =

Undocumented

mapping =

Undocumented