a
    ^g                      @  s   d dl mZ d dlZ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	rejZnejZW n ey   dZY n0 G d
d deZG dd dZdS )    )annotationsN)PathLike)BackgroundTask)URL)Request)HTMLResponse)ReceiveScopeSendpass_contextc                      sF   e Zd Zdddddddd	 fd
dZddddd fddZ  ZS )_TemplateResponse   N
typing.Anydict[str, typing.Any]inttyping.Mapping[str, str] | None
str | NoneBackgroundTask | None)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__ b/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/starlette/templating.pyr      s    	
z_TemplateResponse.__init__r	   r   r
   None)scopereceivesendreturnc                   sZ   | 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   r.   __classcell__r"   r"   r    r#   r      s       r   c                   @  s   e Zd ZdZejdddddddd	d
Zejdddddddd
Zd-ddddddddddd
ZddddddZdddddZdddddZ	ejd.ddd d!d"d#d$d%d&d'd(Z
ejd/dd d!d"d#d$d%d)d*d(Z
ddd%d+d,d(Z
dS )0Jinja2Templatesz}
    templates = Jinja2Templates("templates")

    return templates.TemplateResponse("index.html", {"request": request})
    N)context_processorsz:str | PathLike[str] | typing.Sequence[str | PathLike[str]]z>list[typing.Callable[[Request], dict[str, typing.Any]]] | Noner   r$   )	directoryr4   env_optionsr(   c                K  s   d S r   r"   )r   r5   r4   r6   r"   r"   r#   r   B   s    zJinja2Templates.__init__zjinja2.Environment)envr4   r(   c                C  s   d S r   r"   )r   r7   r4   r"   r"   r#   r   K   s    )r4   r7   zAstr | PathLike[str] | typing.Sequence[str | PathLike[str]] | Nonezjinja2.Environment | None)r5   r4   r7   r6   r(   c                K  s~   |rt dt td us J dt|t|A s8J d|p>g | _|d ur`| j|fi || _n|d urn|| _| | j d S )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boolr4   _create_envr7   _setup_env_defaults)r   r5   r4   r7   r6   r"   r"   r#   r   S   s    
)r5   r6   r(   c                 K  s2   t |}|d| |dd t jf i |S )NloaderZ
autoescapeT)r;   ZFileSystemLoader
setdefaultEnvironment)r   r5   r6   r?   r"   r"   r#   r=   j   s    
zJinja2Templates._create_env)r7   r(   c                 C  s*   t ddddddd}|jd| d S )	Nr   strr   r   )r   namepath_paramsr(   c                [  s   | d }|j |fi |S )Nr)   )url_for)r   rC   rD   r)   r"   r"   r#   rE   v   s    z4Jinja2Templates._setup_env_defaults.<locals>.url_forrE   )r   globalsr@   )r   r7   rE   r"   r"   r#   r>   u   s    	z#Jinja2Templates._setup_env_defaultsrB   zjinja2.Template)rC   r(   c                 C  s   | j |S r   )r7   get_template)r   rC   r"   r"   r#   rG      s    zJinja2Templates.get_templater   r   zdict[str, typing.Any] | Noner   r   r   r   r   )r)   rC   r   r   r   r   r   r(   c                 C  s   d S r   r"   )r   r)   rC   r   r   r   r   r   r"   r"   r#   TemplateResponse   s    
z Jinja2Templates.TemplateResponse)rC   r   r   r   r   r   r(   c                 C  s   d S r   r"   )r   rC   r   r   r   r   r   r"   r"   r#   rH      s    )argskwargsr(   c                 O  st  |rt |d trtdt |d }t|dkr<|d n
|di }t|dkr\|d n
|dd}t|dkr||d n|d}t|d	kr|d	 n|d
}t|dkr|d n|d}d|vrtd|d }	n|d }	t|dkr|d n|d }t|dkr|d n
|di }t|d	kr8|d	 n
|dd}t|dkrZ|d n|d}t|dkrz|d n|d
}t|dkr|d n|d}nd|vrtdt d|di vrtd|di }|d|d}	t	t|d }|dd}|d}|d
}|d}|
d|	 | jD ]}
||
|	 q@| |}t||||||d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" keyrC         zThe `TemplateResponse` now requires the `request` argument.
Replace `TemplateResponse(name, {"context": context})` by `TemplateResponse(request, name)`.)r   r   r   r   )
isinstancerB   r8   r9   r:   lenr-   
ValueErrortypingcastr@   r4   updaterG   r   )r   rI   rJ   rC   r   r   r   r   r   r)   Zcontext_processorr   r"   r"   r#   rH      s`      
""  "





)N)Nr   NNN)Nr   NNN)r/   r0   r1   __doc__rT   overloadr   r=   r>   rG   rH   r"   r"   r"   r#   r3   ;   s<   	            r3   )
__future__r   rT   r8   osr   Zstarlette.backgroundr   Zstarlette.datastructuresr   Zstarlette.requestsr   Zstarlette.responsesr   Zstarlette.typesr   r	   r
   r;   hasattrr   ZcontextfunctionModuleNotFoundErrorr   r3   r"   r"   r"   r#   <module>   s"   


