Ë
    îñþiG  ã                  óJ  — d dl mZ d dlmZmZmZ d dlmZ d dl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	rej2                  Zn" eed«      rej2                  Znej6                  Z G d„ de«      Z G d„ d«      Zy
# e$ rZ ed«      e‚d
Z[ww xY w)é    )Ú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                  ó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	           €úT/root/aria/mcps/aria-brain/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__.   sz   øè ø€ Ø—,‘,×"Ñ" 9¨bÓ1ˆØ—[‘[ ¨rÓ2ˆ
Ø  JÑ.ÙÐ 5ÈDÏMÉMÐfj×frÑfrÑ?sÑtÓu×uÐuÜ‰gÑ˜u g¨tÓ4×4Ñ4ð vøØ4ús$   ƒ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d
„Zy)ÚJinja2Templatesa?  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                ó   — y r   © )r   Ú	directoryr=   s      r#   r   zJinja2Templates.__init__D   ó   € ð r$   c                ó   — y r   r?   )r   Úenvr=   s      r#   r   zJinja2Templates.__init__L   rA   r$   )r=   rC   c               ó*  — t        |«      t        |«      z  sJ d«       ‚|xs g | _        |�Dt        j                  |«      }t        j                  |t        j
                  «       ¬«      | _        n	|�|| _        | j                  | j                  «       y )Nz4either 'directory' or 'env' arguments must be passed)ÚloaderÚ
autoescape)Úboolr=   Újinja2ÚFileSystemLoaderÚEnvironmentÚselect_autoescaperC   Ú_setup_env_defaults)r   r@   r=   rC   rE   s        r#   r   zJinja2Templates.__init__T   s~   € ô �I‹¤ c£Ò*ÐbÐ,bÓbÐ*Ø"4Ò":¸ˆÔØÐ Ü×,Ñ,¨YÓ7ˆFÜ×)Ñ)°ÄF×D\ÑD\ÓD^Ô_ˆD�HØˆ_ØˆDŒHà× Ñ  §¡Õ*r$   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#   rO   z4Jinja2Templates._setup_env_defaults.<locals>.url_forf   s$   € ð  ' yÑ1ˆGØ"�7—?‘? 4Ñ7¨;Ñ7Ð7r$   rO   )r   r0   rP   ÚstrrQ   r	   r5   r   )r   ÚglobalsÚ
setdefault)r   rC   rO   s      r#   rL   z#Jinja2Templates._setup_env_defaultse   sN   € Ü	ð	8Ø#ð	8àð	8ð ð		8ð
 ò	8ó 
ð	8ð 	�‰×Ñ˜y¨'Õ2r$   c                ó8   — | j                   j                  |«      S r   )rC   Úget_template)r   rP   s     r#   rV   zJinja2Templates.get_templater   s   € Ø�x‰x×$Ñ$ TÓ*Ð*r$   c                óÆ   — |xs i }|j                  d|«       | j                  D ]  }|j                   ||«      «       Œ | j                  |«      }	t	        |	|||||¬«      S )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    )rT   r=   ÚupdaterV   r   )
r   r&   rP   r   r   r   r   r    Úcontext_processorr   s
             r#   ÚTemplateResponsez Jinja2Templates.TemplateResponseu   sv   € ð2 ’-˜Rˆà×Ñ˜9 gÔ.Ø!%×!8Ñ!8ò 	7ÐØ�N‰NÑ,¨WÓ5Õ6ð	7ð ×$Ñ$ TÓ*ˆÜ ØØØ#ØØ!Ø!ô
ð 	
r$   )r@   z3str | PathLike[str] | Sequence[str | PathLike[str]]r=   ú0list[Callable[[Request], dict[str, Any]]] | Noner5   r6   )rC   újinja2.Environmentr=   r[   r5   r6   r   )r@   z:str | PathLike[str] | Sequence[str | PathLike[str]] | Noner=   r[   rC   zjinja2.Environment | Noner5   r6   )rC   r\   r5   r6   )rP   rR   r5   zjinja2.Template)Nr/   NNN)r&   r   rP   rR   r   zdict[str, Any] | Noner   r1   r   r2   r   r3   r    r4   r5   r   )	r7   r8   r9   Ú__doc__r
   r   rL   rV   rZ   r?   r$   r#   r<   r<   6   s)  „ ñð ð
 PTñ	àFðð Mð	ð
 
òó ðð ð
 PTñ	ð  ðð Mð	ð
 
òó ðð QUð+ð PTØ)-ñ+àMð+ð Mð	+ð
 'ð+ð 
ó+ó"3ó+ð *.ØØ,0Ø!%Ø,0ð'
àð'
ð ð'
ð 'ð	'
ð
 ð'
ð *ð'
ð ð'
ð *ð'
ð 
ô'
r$   r<   ) Ú
__future__r   Úcollections.abcr   r   r   Úosr   Útypingr   r	   r
   Ústarlette.backgroundr   Ústarlette.datastructuresr   Ústarlette.requestsr   Ústarlette.responsesr   Ústarlette.typesr   r   r   rH   r   ÚhasattrÚcontextfunctionÚImportErrorÚ_import_errorr   r<   r?   r$   r#   ú<module>rk      sœ   ðÝ "ç 7Ñ 7Ý ß /Ñ /å /Ý (Ý &Ý ,ß 0Ñ 0ð\Ûñ Ø×*Ñ*‰á�6˜>Ô*Ø!×.Ñ.‰Là!×1Ñ1ˆLô
5˜ô 5÷.f
ò f
øð7 ò \Ù
ÐGÓ
HÈmÐ[ûð\ús   Á5B ÂB"Â	BÂB"