
    (ph
                     L    S SK JrJr  S SKJr  S SKJr  S SKJr   " S S5      r	g)    )ImproperlyConfiguredSuspiciousFileOperation)get_app_template_dirs)	safe_join)cached_propertyc                   L    \ rS rSrS r\S 5       rS rS r\	S 5       r
S rSrg	)

BaseEngine   c                    UR                  5       nUR                  S5      U l        [        UR                  S5      5      U l        UR                  S5      U l        U(       a)  [        SR                  SR                  U5      5      5      eg)zP
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     P/var/www/html/venv/lib/python3.13/site-packages/django/template/backends/base.py__init__BaseEngine.__init__   sp     JJv&	F+,	

:.&(//		&0AB      c                 ^    [        SR                  U R                  R                  5      5      e)NzA{} doesn't support loading templates from installed applications.)r   r   	__class____name__)r   s    r   app_dirnameBaseEngine.app_dirname   s(    ""F4>>#:#:;
 	
r   c                     [        S5      e)zS
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_stringBaseEngine.from_string!   s     "L
 	
r   c                     [        S5      e)zh
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_templateBaseEngine.get_template+   s     "K
 	
r   c                     [        U R                  5      nU R                  (       a  U[        U R                  5      -  nU$ )z7
Return a list of directories to search for templates.
)tupler   r   r   r    )r   template_dirss     r   r.   BaseEngine.template_dirs8   s5     dii(==243C3CDDMr   c              #   p   #    U R                    H  n [        X!5      v   M     g! [         a     M#  f = f7f)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_filenames"BaseEngine.iter_template_filenamesC   s<      !..L<< / +  s   6%6
3636)r   r   r   N)r   
__module____qualname____firstlineno__r   propertyr    r&   r*   r   r.   r2   __static_attributes__ r   r   r	   r	      s>     
 


  r   r	   N)
django.core.exceptionsr   r   django.template.utilsr   django.utils._osr   django.utils.functionalr   r	   r9   r   r   <module>r>      s    P 7 & 3I Ir   