3
(h                 @   s   d dl m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
mZ d dlmZ ddlmZ dd	lmZmZ G d
d deZG dd dejZdS )    )absolute_importN)settings)ImproperlyConfigured)OriginTemplateDoesNotExist)conditional_escape   )
BaseEngine)csrf_input_lazycsrf_token_lazyc                   s0   e Zd ZdZ fddZdd Zdd Z  ZS )TemplateStringsZtemplate_stringsc                sB   |j  }|jdj  }|r.tdjdj|tt| j| d S )NOPTIONSzUnknown options: {}z, )copypopr   formatjoinsuperr   __init__)selfparamsoptions)	__class__ B/tmp/pip-install-q3hcpn_q/Django/django/template/backends/dummy.pyr      s    zTemplateStrings.__init__c             C   s   t |S )N)Template)r   template_coder   r   r   from_string   s    zTemplateStrings.from_stringc             C   s   g }x| j |D ]|}y(tj|tjd}|j }W d Q R X W nH tk
r } z,|jtjkrr|j	t
||| df w W Y d d }~X nX t|S W t||| dd S )N)encodingzSource does not exist)triedbackend)Ziter_template_filenamesioopenr   ZFILE_CHARSETreadIOErrorerrnoENOENTappendr   r   r   )r   Ztemplate_namer   Ztemplate_filefpr   er   r   r   get_template    s    

zTemplateStrings.get_template)__name__
__module____qualname__Zapp_dirnamer   r   r)   __classcell__r   r   )r   r   r      s   r   c               @   s   e Zd ZdddZdS )r   Nc             C   sJ   |d kri }ndd |j  D }|d k	r@t||d< t||d< | j|S )Nc             S   s   i | ]\}}t ||qS r   )r   ).0kvr   r   r   
<dictcomp>;   s    z#Template.render.<locals>.<dictcomp>Z
csrf_inputZ
csrf_token)itemsr
   r   safe_substitute)r   contextrequestr   r   r   render7   s    zTemplate.render)NN)r*   r+   r,   r6   r   r   r   r   r   5   s   r   )
__future__r   r$   r    stringZdjango.confr   Zdjango.core.exceptionsr   Zdjango.templater   r   Zdjango.utils.htmlr   baser	   utilsr
   r   r   r   r   r   r   r   <module>   s   $