Repository URL to install this package:
|
Version:
4.0.112 ▾
|
ó
¡EYc @ si d Z d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l m
Z
d d l m Z m
Z
d d l m Z m Z d Z d
e f d YZ d e f d
YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ d S( s
jinja2.loaders
~~~~~~~~~~~~~~
Jinja loader classes.
:copyright: (c) 2017 by the Jinja Team.
:license: BSD, see LICENSE for more details.
iÿÿÿÿN( t
ModuleType( t path( t sha1( t TemplateNotFound( t open_if_existst internalcode( t string_typest iteritemsc C s g } x~ | j d D]m } t j | k sR t j rC t j | k sR | t j k ra t | q | r | d k r | j | q q W| S( s Split a path into segments and perform a sanity check. If it detects
'..' in the path it will raise a `TemplateNotFound` error.
t /t .( t splitR t sept altsept pardirR t append( t templatet piecest piece( ( sC /home/tvault/.virtenv/lib/python2.7/site-packages/jinja2/loaders.pyt split_template_path s t
BaseLoaderc B s8 e Z d Z e Z d Z d Z e d d Z RS( sÍ Baseclass for all loaders. Subclass this and override `get_source` to
implement a custom loading mechanism. The environment provides a
`get_template` method that calls the loader's `load` method to get the
:class:`Template` object.
A very basic example for a loader that looks up templates on the file
system could look like this::
from jinja2 import BaseLoader, TemplateNotFound
from os.path import join, exists, getmtime
class MyLoader(BaseLoader):
def __init__(self, path):
self.path = path
def get_source(self, environment, template):
path = join(self.path, template)
if not exists(path):
raise TemplateNotFound(template)
mtime = getmtime(path)
with file(path) as f:
source = f.read().decode('utf-8')
return source, path, lambda: mtime == getmtime(path)
c C s2 | j s" t d | j j n t | d S( sË 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.
s&