File: //proc/self/root/lib/python2.7/site-packages/jinja2/loaders.pyc
�
��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"