Repository URL to install this package:
Version:
4.0.109 ▾
|
ó ¡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&