3
(hT	                 @   s   d dl mZ d dl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 yd d	lmZ W n ek
r|   dZY nX ejd
e G dd deZG dd deZdS )    )unicode_literalsN)apps)OriginTemplateDoesNotExist)six)RemovedInDjango20Warning   )Loader)resource_stringz&The egg template loader is deprecated.c                   s   e Zd Z fddZ  ZS )	EggOriginc                s"   || _ || _tt| j|| d S )N)app_namepkg_namesuperr   __init__)selfr   r   argskwargs)	__class__ @/tmp/pip-install-q3hcpn_q/Django/django/template/loaders/eggs.pyr      s    zEggOrigin.__init__)__name__
__module____qualname__r   __classcell__r   r   )r   r   r      s   r   c                   s6   e Zd Z fddZdd Zdd Zd
dd	Z  ZS )r	   c                s$   t d krtdtt| j| d S )Nz2Setuptools must be installed to use the egg loader)r
   RuntimeErrorr   r	   r   )r   engine)r   r   r   r      s    zLoader.__init__c             C   sH   yt |j|j}W n tk
r.   t|Y nX tjrD|j| jj	}|S )N)
r
   r   r   	Exceptionr   r   PY2decoder   Zfile_charset)r   originsourcer   r   r   get_contents$   s    zLoader.get_contentsc             c   s>   d| }x0t j D ]$}t|j|d|j|f || dV  qW d S )Nz
templates/z	egg:%s:%s)r   r   nametemplate_nameloader)r   Zget_app_configsr   r"   )r   r#   r   Z
app_configr   r   r   get_template_sources/   s    zLoader.get_template_sourcesNc             C   sR   t jdt x8| j|D ]*}y| j||jfS  tk
r@   Y qX qW t|dS )z
        Loads templates from Python eggs via pkg_resource.resource_string.

        For every installed app, it tries to get the resource (app, template_name).
        z_The load_template_sources() method is deprecated. Use get_template() or get_contents() instead.N)warningswarnr   r%   r!   r"   r   )r   r#   Ztemplate_dirsr   r   r   r   load_template_source:   s    
zLoader.load_template_source)N)r   r   r   r   r!   r%   r(   r   r   r   )r   r   r	      s   r	   )
__future__r   r&   Zdjango.appsr   Zdjango.templater   r   Zdjango.utilsr   Zdjango.utils.deprecationr   baser	   Z
BaseLoaderpkg_resourcesr
   ImportErrorr'   r   r   r   r   r   <module>   s   
