U
    dd                     @   s"   d dl mZmZ G dd dZdS )    )TemplateTemplateDoesNotExistc                   @   s.   e Zd Zdd Zd
ddZdd Zdd	 ZdS )Loaderc                 C   s
   || _ d S )N)engine)selfr    r   @/tmp/pip-unpacked-wheel-7vj2equ7/django/template/loaders/base.py__init__   s    zLoader.__init__Nc              	   C   s   g }|  |D ]p}|dk	r2||kr2||df qz| |}W n& tk
rf   ||df Y qY qX t|||j| j  S qt||ddS )a  
        Call self.get_template_sources() and return a Template object for
        the first template matching template_name. If skip is provided, ignore
        template origins in skip. This is used to avoid recursion during
        template extending.
        NzSkipped to avoid recursionzSource does not exist)tried)get_template_sourcesappendZget_contentsr   r   template_namer   )r   r   skipr
   origincontentsr   r   r   get_template   s"    

zLoader.get_templatec                 C   s   t ddS )zg
        An iterator that yields possible matching template paths for a
        template name.
        zAsubclasses of Loader must provide a get_template_sources() methodN)NotImplementedError)r   r   r   r   r   r   %   s    zLoader.get_template_sourcesc                 C   s   dS )z}
        Reset any state maintained by the loader instance (e.g. cached
        templates or cached loader modules).
        Nr   )r   r   r   r   reset.   s    zLoader.reset)N)__name__
__module____qualname__r	   r   r   r   r   r   r   r   r      s   
	r   N)Zdjango.templater   r   r   r   r   r   r   <module>   s   