OpenQuizz
Une application de gestion des contenus pédagogiques
PrefixLoader Class Reference
Inheritance diagram for PrefixLoader:
Collaboration diagram for PrefixLoader:

Public Member Functions

def __init__ (self, mapping, delimiter="/")
 
def get_loader (self, template)
 
def get_source (self, environment, template)
 
def load (self, environment, name, globals=None)
 
def list_templates (self)
 

Data Fields

 mapping
 
 delimiter
 

Additional Inherited Members

- Static Public Attributes inherited from BaseLoader
 has_source_access
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
  mapping,
  delimiter = "/" 
)

Member Function Documentation

◆ get_loader()

def get_loader (   self,
  template 
)

◆ get_source()

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 unicode string or a ASCII bytestring.  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.

Reimplemented from BaseLoader.

◆ list_templates()

def list_templates (   self)
Iterates over all templates.  If the loader does not support that
it should raise a :exc:`TypeError` which is the default behavior.

Reimplemented from BaseLoader.

◆ load()

def load (   self,
  environment,
  name,
  globals = None 
)
Loads a template.  This method looks up the template in the cache
or loads one by calling :meth:`get_source`.  Subclasses should not
override this method as loaders working on collections of other
loaders (such as :class:`PrefixLoader` or :class:`ChoiceLoader`)
will not call this method but `get_source` directly.

Reimplemented from BaseLoader.

Field Documentation

◆ delimiter

delimiter

◆ mapping

mapping

The documentation for this class was generated from the following file: