o
    $6dJ                     @   s   d dl 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
 d dlmZmZmZ zd dlZeedr:ejZnejZW n eyI   dZY nw G d	d
 d
e
ZG dd dZdS )    N)PathLike)BackgroundTask)URL)Request)Response)ReceiveScopeSendpass_contextc                       s   e Zd ZdZ				ddejdededejej	e
e
f  deje
 d	eje f fd
dZdedededdf fddZ  ZS )_TemplateResponsez	text/html   Ntemplatecontextstatus_codeheaders
media_type
backgroundc                    s.   || _ || _||}t ||||| d S N)r   r   rendersuper__init__)selfr   r   r   r   r   r   content	__class__ kC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\starlette/templating.pyr      s   	
z_TemplateResponse.__init__scopereceivesendreturnc                    s\   | j di }|di }d|v r!|d| j| j ddI d H  t |||I d H  d S )Nrequest
extensionszhttp.response.debug)r   r   )typeinfo)r   getr   r   __call__)r   r   r   r   r!   r"   r   r   r   r&   *   s   
	z_TemplateResponse.__call__r   NNN)__name__
__module____qualname__r   typingAnydictintOptionalMappingstrr   r   r   r   r	   r&   __classcell__r   r   r   r   r      s(    &r   c                   @   s   e Zd ZdZ	ddejeef dejej	ej
egejeejf f   dejddfddZdejeef dejdd	fd
dZdeddfddZ				ddedededejejeef  deje deje defddZdS )Jinja2Templatesz}
    templates = Jinja2Templates("templates")

    return templates.TemplateResponse("index.html", {"request": request})
    N	directorycontext_processorsenv_optionsr    c                 K   s2   t d usJ d| j|fi || _|pg | _d S )Nz/jinja2 must be installed to use Jinja2Templates)jinja2_create_envenvr5   )r   r4   r5   r6   r   r   r   r   A   s   zJinja2Templates.__init__zjinja2.Environmentc              	   K   s`   t dtdtdtjdtfdd}t|}|d| |dd	 tj	di |}||j
d
< |S )Nr   namepath_paramsr    c                 [   s   | d }|j |fi |S )Nr!   )url_for)r   r:   r;   r!   r   r   r   r<   P   s   z,Jinja2Templates._create_env.<locals>.url_forloaderZ
autoescapeTr<   r   )r
   r-   r1   r+   r,   r   r7   ZFileSystemLoader
setdefaultEnvironmentglobals)r   r4   r6   r<   r=   r9   r   r   r   r8   M   s   

zJinja2Templates._create_envr:   zjinja2.Templatec                 C   s   | j |S r   )r9   get_template)r   r:   r   r   r   rA   ]   s   zJinja2Templates.get_templater   r   r   r   r   r   c           
      C   sX   d|vrt dtt|d }| jD ]	}||| q| |}	t|	|||||dS )Nr!   z$context must include a "request" key)r   r   r   r   )
ValueErrorr+   castr   r5   updaterA   r   )
r   r:   r   r   r   r   r   r!   Zcontext_processorr   r   r   r   TemplateResponse`   s   	

z Jinja2Templates.TemplateResponser   r'   )r(   r)   r*   __doc__r+   Unionr1   r   r/   ListCallabler   Dictr,   r   r8   rA   r-   r.   r0   r   r   rE   r   r   r   r   r3   :   sR     

r3   )r+   osr   Zstarlette.backgroundr   Zstarlette.datastructuresr   Zstarlette.requestsr   Zstarlette.responsesr   Zstarlette.typesr   r   r	   r7   hasattrr
   ZcontextfunctionModuleNotFoundErrorr   r3   r   r   r   r   <module>   s$    
!