
    g
                     L    d dl mZmZ d dlmZ d dlmZ d dlmZ  G d d      Z	y)    )ImproperlyConfiguredSuspiciousFileOperation)get_app_template_dirs)	safe_join)cached_propertyc                   J    e Zd Zd Zd Zed        Zd Zd Ze	d        Z
d Zy)	
BaseEnginec                    |j                         }|j                  d      | _        t        |j                  d            | _        |j                  d      | _        |r)t        dj                  dj                  |                  y)zh
        Initialize the template engine.

        `params` is a dict of configuration settings.
        NAMEDIRSAPP_DIRSzUnknown parameters: {}z, N)	copypopnamelistdirsapp_dirsr   formatjoin)selfparamss     u/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/template/backends/base.py__init__zBaseEngine.__init__   sp     JJv&	F+,	

:.&(//		&0AB      c                     g S )N )r   kwargss     r   checkzBaseEngine.check   s    	r   c                 ^    t        dj                  | j                  j                              )NzA{} doesn't support loading templates from installed applications.)r   r   	__class____name__)r   s    r   app_dirnamezBaseEngine.app_dirname   s(    ""F4>>#:#:;
 	
r   c                     t        d      )zk
        Create and return a template for the given source code.

        This method is optional.
        z>subclasses of BaseEngine should provide a from_string() methodNotImplementedError)r   template_codes     r   from_stringzBaseEngine.from_string$   s     "L
 	
r   c                     t        d      )z
        Load and return a template for the given name.

        Raise TemplateDoesNotExist if no such template exists.
        z=subclasses of BaseEngine must provide a get_template() methodr$   )r   template_names     r   get_templatezBaseEngine.get_template.   s     "K
 	
r   c                 x    t        | j                        }| j                  r|t        | j                        z  }|S )zG
        Return a list of directories to search for templates.
        )tupler   r   r   r"   )r   template_dirss     r   r-   zBaseEngine.template_dirs;   s5     dii(==243C3CDDMr   c              #   j   K   | j                   D ]  }	 t        ||        y# t        $ r Y  w xY ww)z
        Iterate over candidate files for template_name.

        Ignore files that don't lie inside configured template dirs to avoid
        directory traversal attacks.
        N)r-   r   r   )r   r)   template_dirs      r   iter_template_filenamesz"BaseEngine.iter_template_filenamesF   s?      !..Lm<< / +  s   3$3	0303N)r!   
__module____qualname__r   r   propertyr"   r'   r*   r   r-   r0   r   r   r   r	   r	      sC     
 


  r   r	   N)
django.core.exceptionsr   r   django.template.utilsr   django.utils._osr   django.utils.functionalr   r	   r   r   r   <module>r8      s    P 7 & 3L Lr   