
    PiG                    b   S SK Jr  S SKJrJrJr  S SKJr  S SKJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJrJrJr   S S
Kr\	(       a  \R2                  rO(\" \S5      (       a  \R2                  rO\R6                  r  " S S\5      r " S S5      rg
! \ a  r\" S5      \eS
rCff = f)    )annotations)CallableMappingSequence)PathLike)TYPE_CHECKINGAnyoverload)BackgroundTask)URL)Request)HTMLResponse)ReceiveScopeSendNpass_contextz/jinja2 must be installed to use Jinja2Templatesc                  ^   ^  \ rS rSr    S           SU 4S jjjrSU 4S jjrSrU =r$ )_TemplateResponse   c                b   > Xl         X l        UR                  U5      n[        TU ]  XsXEU5        g N)templatecontextrendersuper__init__)	selfr   r   status_codeheaders
media_type
backgroundcontent	__class__s	           M/root/zsrc/zsrv_dev/venv/lib/python3.13/site-packages/starlette/templating.pyr   _TemplateResponse.__init__    s.     !//'*wJO    c                  >#    U R                   R                  S0 5      nUR                  S0 5      nSU;   a*  U" SU R                  U R                   S.S.5      I S h  vN   [        TU ]  XU5      I S h  vN   g  N N7f)Nrequest
extensionszhttp.response.debug)r   r   )typeinfo)r   getr   r   __call__)r   scopereceivesendr(   r)   r#   s         r$   r-   _TemplateResponse.__call__.   sv     ,,""9b1[[r2
 J. 5DMMfjfrfr?stuuugut444 v4s$   AA?A;A?5A=6A?=A?)r   r   )   NNN)r   r	   r   dict[str, Any]r   intr   Mapping[str, str] | Noner    
str | Noner!   BackgroundTask | None)r.   r   r/   r   r0   r   returnNone)__name__
__module____qualname____firstlineno__r   r-   __static_attributes____classcell__)r#   s   @r$   r   r      sg    
 ,0!%,0PP  P 	P
 *P P *P P5 5r&   r   c                      \ rS rSrSr\SS.     SS jj5       r\SS.     SS jj5       r SSSS.       SS jjjrSS	 jrSS
 jr     S               SS jjr	Sr
g)Jinja2Templates6   a  Jinja2 template renderer.

Example:
    ```python
    from starlette.templating import Jinja2Templates

    templates = Jinja2Templates(directory="templates")

    async def homepage(request: Request) -> Response:
        return templates.TemplateResponse(request, "index.html")
    ```
N)context_processorsc                   g r    )r   	directoryrC   s      r$   r   Jinja2Templates.__init__D        r&   c                   g r   rE   )r   envrC   s      r$   r   rG   L   rH   r&   )rC   rJ   c               @   [        U5      [        U5      -  (       d   S5       eU=(       d    / U l        UbD  [        R                  " U5      n[        R                  " U[        R
                  " 5       S9U l        O	Ub  X0l        U R                  U R                  5        g )Nz4either 'directory' or 'env' arguments must be passed)loader
autoescape)boolrC   jinja2FileSystemLoaderEnvironmentselect_autoescaperJ   _setup_env_defaults)r   rF   rC   rJ   rL   s        r$   r   rG   T   s|     Ic*b,bb*"4": ,,Y7F))FD\D\D^_DH_H  *r&   c                h    [                 SS j5       nUR                  R                  SU5        g )Nc               2    U S   nUR                   " U40 UD6$ )Nr(   )url_for)r   namepath_paramsr(   s       r$   rV   4Jinja2Templates._setup_env_defaults.<locals>.url_forf   s"      'y1G??47;77r&   rV   )r   r3   rW   strrX   r	   r8   r   )r   globals
setdefault)r   rJ   rV   s      r$   rS   #Jinja2Templates._setup_env_defaultse   sN    		8#	8	8 		8
 	8 
	8 	y'2r&   c                8    U R                   R                  U5      $ r   )rJ   get_template)r   rW   s     r$   r_   Jinja2Templates.get_templater   s    xx$$T**r&   c           	         U=(       d    0 nUR                  SU5        U R                   H  nUR                  U" U5      5        M     U R                  U5      n	[	        U	UUUUUS9$ )a  
Render a template and return an HTML response.

Args:
    request: The incoming request instance.
    name: The template file name to render.
    context: Variables to pass to the template.
    status_code: HTTP status code for the response.
    headers: Additional headers to include in the response.
    media_type: Media type for the response.
    background: Background task to run after response is sent.

Returns:
    An HTML response with the rendered template content.
r(   )r   r   r    r!   )r\   rC   updater_   r   )
r   r(   rW   r   r   r   r    r!   context_processorr   s
             r$   TemplateResponse Jinja2Templates.TemplateResponseu   sq    2 -R9g.!%!8!8NN,W56 "9 $$T* #!!
 	
r&   )rF   z3str | PathLike[str] | Sequence[str | PathLike[str]]rC   0list[Callable[[Request], dict[str, Any]]] | Noner8   r9   )rJ   jinja2.EnvironmentrC   rf   r8   r9   r   )rF   z:str | PathLike[str] | Sequence[str | PathLike[str]] | NonerC   rf   rJ   zjinja2.Environment | Noner8   r9   )rJ   rg   r8   r9   )rW   rZ   r8   zjinja2.Template)Nr2   NNN)r(   r   rW   rZ   r   zdict[str, Any] | Noner   r4   r   r5   r    r6   r!   r7   r8   r   )r:   r;   r<   r=   __doc__r
   r   rS   r_   rd   r>   rE   r&   r$   rA   rA   6   s.    
 PT	F M	
 
  
 PT	   M	
 
  QU+ PT)-+M+ M	+
 '+ 
+"3+ *.,0!%,0'
'
 '
 '	'

 '
 *'
 '
 *'
 
'
 '
r&   rA   ) 
__future__r   collections.abcr   r   r   osr   typingr   r	   r
   starlette.backgroundr   starlette.datastructuresr   starlette.requestsr   starlette.responsesr   starlette.typesr   r   r   rO   r   hasattrcontextfunctionImportError_import_errorr   rA   rE   r&   r$   <module>rv      s    " 7 7  / / / ( & , 0 0\ **6>**!..L!11L
5 5.f
 f
7  \
G
Hm[\s$   B B 7B B. 	B))B.