
    vhe                     "   d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZ 	 d dlZ eed      rej6                  Znej8                  Z G d de      Z G d d      Zy# e$ r dZY w xY w)    )annotationsN)MappingSequence)PathLike)AnyCallablecastoverload)BackgroundTask)URL)Request)HTMLResponse)ReceiveScopeSendpass_contextc                  L     e Zd Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 d fdZd fdZ xZS )_TemplateResponsec                j    || _         || _        |j                  |      }t        |   |||||       y N)templatecontextrendersuper__init__)	selfr   r   status_codeheaders
media_type
backgroundcontent	__class__s	           L/var/www/html/luna/venv/lib/python3.12/site-packages/starlette/templating.pyr   z_TemplateResponse.__init__   s6     !//'*+w
JO    c                   K   | j                   j                  di       }|j                  di       }d|v r* |d| j                  | j                   dd       d {    t        |   |||       d {    y 7 7 w)Nrequest
extensionszhttp.response.debug)r   r   )typeinfo)r   getr   r   __call__)r   scopereceivesendr&   r'   r"   s         r#   r+   z_TemplateResponse.__call__,   s     ,,""9b1[[r2
 J.1$(MM#'<<   gugt444 	5s$   AA>A:A>4A<5A><A>)   NNN)r   r   r   dict[str, Any]r   intr   Mapping[str, str] | Noner   
str | Noner    BackgroundTask | None)r,   r   r-   r   r.   r   returnNone)__name__
__module____qualname__r   r+   __classcell__)r"   s   @r#   r   r      sa    
 ,0!%,0PP  P 	P
 *P P *P5 5r$   r   c                     e Zd ZdZedd	 	 	 	 	 	 	 dd       Zedd	 	 	 	 	 dd       Z	 dddd	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZdd	Zdd
Ze	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z	e	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z	ddZ	y)Jinja2Templatesz}
    templates = Jinja2Templates("templates")

    return templates.TemplateResponse("index.html", {"request": request})
    N)context_processorsc                    y r    )r   	directoryr=   env_optionss       r#   r   zJinja2Templates.__init__C   s     r$   c                    y r   r?   )r   envr=   s      r#   r   zJinja2Templates.__init__L   s     r$   )r=   rC   c               &   |rt        j                  dt               t        J d       t	        |      t	        |      z  sJ d       |xs g | _        | | j                  |fi || _        n	||| _        | j                  | j                         y )NzYExtra environment options are deprecated. Use a preconfigured jinja2.Environment instead.z/jinja2 must be installed to use Jinja2Templatesz4either 'directory' or 'env' arguments must be passed)	warningswarnDeprecationWarningjinja2boolr=   _create_envrC   _setup_env_defaults)r   r@   r=   rC   rA   s        r#   r   zJinja2Templates.__init__T   s     MMk" !T#TT!Ic*b,bb*"4": 't''	A[ADH_DH  *r$   c                    t        j                  |      }|j                  d|       |j                  dd       t        j                  di |S )Nloader
autoescapeTr?   )rH   FileSystemLoader
setdefaultEnvironment)r   r@   rA   rM   s       r#   rJ   zJinja2Templates._create_envk   sH    
 ((3x0|T2!!0K00r$   c                f    t         	 	 	 	 	 	 	 	 dd       }|j                  j                  d|       y )Nc               2    | d   } |j                   |fi |S )Nr&   )url_for)r   namepath_paramsr&   s       r#   rT   z4Jinja2Templates._setup_env_defaults.<locals>.url_forw   s$      'y1G"7??47;77r$   rT   )r   r0   rU   strrV   r   r5   r   )r   globalsrP   )r   rC   rT   s      r#   rK   z#Jinja2Templates._setup_env_defaultsv   sN    		8#	8	8 		8
 	8 
	8 	y'2r$   c                8    | j                   j                  |      S r   )rC   get_template)r   rU   s     r#   rZ   zJinja2Templates.get_template   s    xx$$T**r$   c                     y r   r?   )r   r&   rU   r   r   r   r   r    s           r#   TemplateResponsez Jinja2Templates.TemplateResponse   s      r$   c                     y r   r?   )r   rU   r   r   r   r   r    s          r#   r\   z Jinja2Templates.TemplateResponse   s     	r$   c                   |rt        |d   t              rt        j                  dt               |d   }t        |      dkD  r|d   n|j                  di       }t        |      dkD  r|d   n|j                  dd      }t        |      dkD  r|d   n|j                  d	      }t        |      d
kD  r|d
   n|j                  d      }t        |      dkD  r|d   n|j                  d      }d|vrt        d      |d   }	n|d   }	t        |      dkD  r|d   n|d   }t        |      dkD  r|d   n|j                  di       }t        |      dkD  r|d   n|j                  dd      }t        |      d
kD  r|d
   n|j                  d	      }t        |      dkD  r|d   n|j                  d      }t        |      dkD  r|d   n|j                  d      }nd|vr9t        j                  dt               d|j                  di       vrt        d      |j                  di       }|j                  d|j                  d            }	t        t        |d         }|j                  dd      }|j                  d	      }|j                  d      }|j                  d      }|j                  d|	       | j                  D ]  }
|j                   |
|	              | j                  |      }t        ||||||      S )Nr   zThe `name` is not the first parameter anymore. The first parameter should be the `Request` instance.
Replace `TemplateResponse(name, {"request": request})` by `TemplateResponse(request, name)`.   r      r   r/      r      r      r    r&   z$context must include a "request" keyrU      zThe `TemplateResponse` now requires the `request` argument.
Replace `TemplateResponse(name, {"context": context})` by `TemplateResponse(request, name)`.)r   r   r   r    )
isinstancerW   rE   rF   rG   lenr*   
ValueErrorr	   rP   r=   updaterZ   r   )r   argskwargsrU   r   r   r   r   r    r&   context_processorr   s               r#   r\   z Jinja2Templates.TemplateResponse   s   $q'3's '	 Aw%(Y]$q'

9b8Q),TQd1gFJJ}VY<Z%(Y]$q'

98M(+D	AT!W6::l;S
(+D	AT!W6::l;S
G+$%KLL!),q'"%d)a-tAwVF^%(Y]$q'

9b8Q),TQd1gFJJ}VY<Z%(Y]$q'

98M(+D	AT!W6::l;S
(+D	AT!W6::l;S
&s&
 FJJy"$==$%KLLjjB/GjjGKK	,BCGVF^,D **]C8Kjj+GL1JL1J9g.!%!8!8 	7NN,W56	7 $$T* #!!
 	
r$   )r@   3str | PathLike[str] | Sequence[str | PathLike[str]]r=   0list[Callable[[Request], dict[str, Any]]] | NonerA   r   r5   r6   )rC   jinja2.Environmentr=   rm   r5   r6   r   )
r@   z:str | PathLike[str] | Sequence[str | PathLike[str]] | Noner=   rm   rC   zjinja2.Environment | NonerA   r   r5   r6   )r@   rl   rA   r   r5   rn   )rC   rn   r5   r6   )rU   rW   r5   zjinja2.Template)Nr/   NNN)r&   r   rU   rW   r   dict[str, Any] | Noner   r1   r   r2   r   r3   r    r4   r5   r   )rU   rW   r   ro   r   r1   r   r2   r   r3   r    r4   r5   r   )ri   r   rj   r   r5   r   )
r7   r8   r9   __doc__r
   r   rJ   rK   rZ   r\   r?   r$   r#   r<   r<   <   s    
 PT	F M	
  
  
 PT	   M	
 
  QU+ PT)-+M+ M	+
 '+ + 
+.	1F	1 	1 
		13+ 
 *.,0!%,0	 	  	  '		 
 	  *	  	  *	  
	  	   *.,0!%,0

 '
 	

 *
 
 *
 

 
:
r$   r<   ) 
__future__r   rE   collections.abcr   r   osr   typingr   r   r	   r
   starlette.backgroundr   starlette.datastructuresr   starlette.requestsr   starlette.responsesr   starlette.typesr   r   r   rH   hasattrr   contextfunctionModuleNotFoundErrorr   r<   r?   r$   r#   <module>r}      s    "  -  0 0 / ( & , 0 0 v~&**--
5 5>]
 ]
G  Fs   &B BB