Current File : //usr/lib/python2.7/site-packages/jinja2/loaders.pyo |
�
��Rc @ 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) 2010 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( ( s2 /usr/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"