î
ªÍ XT	  ã               @   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 Wn e k
 r  d Z Yn Xe j d
 e ƒ Gd d „  d e ƒ Z Gd 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 ‡  S)Ú	EggOriginc                s/   | |  _  | |  _ t t |  ƒ j | | Ž  d  S)N)Úapp_nameÚpkg_nameÚsuperr   Ú__init__)Úselfr   r   ÚargsÚkwargs)Ú	__class__© úJ/home/ubuntu/projects/ifolica/build/django/django/template/loaders/eggs.pyr      s    		zEggOrigin.__init__)Ú__name__Ú
__module__Ú__qualname__r   r   r   )r   r   r      s   r   c                   sI   e  Z d  Z ‡  f d d †  Z d d „  Z d d „  Z d d d	 „ Z ‡  S)
r	   c                s5   t  d  k r t d ƒ ‚ n  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   s_   y t  | j | j ƒ } Wn t k
 r9 t | ƒ ‚ Yn Xt j r[ | j |  j j	 ƒ } n  | 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 | } xJ t  j ƒ  D]< } t d | j d | d d | j | f d | d |  ƒ Vq Wd  S)Nz
templates/r   r   Únamez	egg:%s:%sÚ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   si   t  j d t ƒ xF |  j | ƒ D]5 } y |  j | ƒ | j f SWq  t k
 rT Yq  Xq  Wt | ƒ ‚ 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)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   