o
    Þ­jë!  ã                   @  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	ƒrDejZnejZW n eyS   dZY nw G d
d„ deƒZG dd„ dƒZdS )é    )ÚannotationsN)ÚPathLike)ÚBackgroundTask)ÚURL)ÚRequest)ÚHTMLResponse)ÚReceiveÚScopeÚSendÚpass_contextc                      s6   e Zd Z				dd‡ fdd„Zd‡ fdd„Z‡  ZS )Ú_TemplateResponseéÈ   NÚtemplateú
typing.AnyÚcontextúdict[str, typing.Any]Ústatus_codeÚintÚheadersútyping.Mapping[str, str] | NoneÚ
media_typeú
str | NoneÚ
backgroundúBackgroundTask | Nonec                   s.   || _ || _| |¡}tƒ  |||||¡ d S ©N)r   r   ÚrenderÚsuperÚ__init__)Úselfr   r   r   r   r   r   Úcontent©Ú	__class__© úQ/var/www/html/CropPilot/venv/lib/python3.10/site-packages/starlette/templating.pyr      s   	
z_TemplateResponse.__init__Úscoper	   Úreceiver   Úsendr
   ÚreturnÚNonec                 ƒ  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)r   r   r   r   r   r   r   r   r   r   r   r   )r$   r	   r%   r   r&   r
   r'   r(   )Ú__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œd2dd„ƒZejddœd3dd„ƒZ	d4dddœd5dd„Zd6dd„Zd7dd„Zd8dd„Z	ej					d9d:d,d-„ƒZ
ej					d9d;d.d-„ƒZ
d<d1d-„Z
dS )=ÚJinja2Templatesz}
    templates = Jinja2Templates("templates")

    return templates.TemplateResponse("index.html", {"request": request})
    N)Úcontext_processorsÚ	directoryúNstr | PathLike[typing.AnyStr] | typing.Sequence[str | PathLike[typing.AnyStr]]r4   ú>list[typing.Callable[[Request], dict[str, typing.Any]]] | NoneÚenv_optionsr   r'   r(   c                K  ó   d S r   r"   )r   r5   r4   r8   r"   r"   r#   r   B   ó   zJinja2Templates.__init__Úenvújinja2.Environmentc                C  r9   r   r"   )r   r;   r4   r"   r"   r#   r   O   s   )r4   r;   úUstr | PathLike[typing.AnyStr] | typing.Sequence[str | PathLike[typing.AnyStr]] | Noneújinja2.Environment | Nonec                K  sv   |rt  dt¡ td usJ dƒ‚|s|sJ dƒ‚|pg | _|d ur,| j|fi |¤Ž| _n|d ur3|| _|  | 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Újinja2r4   Ú_create_envr;   Ú_setup_env_defaults)r   r5   r4   r;   r8   r"   r"   r#   r   Y   s   þ
c                 K  s2   t  |¡}| d|¡ | dd¡ t jdi |¤ŽS )NÚloaderÚ
autoescapeTr"   )rB   ÚFileSystemLoaderÚ
setdefaultÚEnvironment)r   r5   r8   rE   r"   r"   r#   rC   t   s   
zJinja2Templates._create_envc                 C  s    t dd	d
„ƒ}|j d|¡ d S )Nr   r   ÚnameÚstrÚpath_paramsr   r'   r   c                [  s   | d }|j |fi |¤ŽS )Nr)   )Úurl_for)r   rJ   rL   r)   r"   r"   r#   rM   ‚   s   z4Jinja2Templates._setup_env_defaults.<locals>.url_forrM   )r   r   rJ   rK   rL   r   r'   r   )r   ÚglobalsrH   )r   r;   rM   r"   r"   r#   rD   �   s   	z#Jinja2Templates._setup_env_defaultsrJ   rK   újinja2.Templatec                 C  s   | j  |¡S r   )r;   Úget_template)r   rJ   r"   r"   r#   rP   Ž   s   zJinja2Templates.get_templater   r)   r   r   údict[str, typing.Any] | Noner   r   r   r   r   r   r   r   r   c                 C  r9   r   r"   )r   r)   rJ   r   r   r   r   r   r"   r"   r#   ÚTemplateResponse‘   r:   z Jinja2Templates.TemplateResponsec                 C  r9   r   r"   )r   rJ   r   r   r   r   r   r"   r"   r#   rR   ž   r:   ÚargsÚkwargsc                 O  sd  |rÍt |d tƒrmt 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rL|d	 n| d
¡}t|ƒdkr[|d n| d¡}d|vrhtdƒ‚|d }	n¢|d }	t|ƒdkr{|d n|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¡}nBd|vrãt dt¡ d| di ¡vrãtdƒ‚| di ¡}| d| d¡¡}	t 	t|d ¡}| dd¡}| d¡}| d
¡}| d¡}| 
d|	¡ | jD ]
}
| |
|	ƒ¡ �q|  |¡}t||||||d�S )Nr   zÁThe `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" keyrJ   é   é   z˜The `TemplateResponse` now requires the `request` argument.
Replace `TemplateResponse(name, {"context": context})` by `TemplateResponse(request, name)`.)r   r   r   r   )Ú
isinstancerK   r?   r@   rA   Úlenr-   Ú
ValueErrorÚtypingÚcastrH   r4   ÚupdaterP   r   )r   rS   rT   rJ   r   r   r   r   r   r)   Úcontext_processorr   r"   r"   r#   rR   «   sh   ÿü ÿ
 ÿ ý




ú)r5   r6   r4   r7   r8   r   r'   r(   )r;   r<   r4   r7   r'   r(   r   )
r5   r=   r4   r7   r;   r>   r8   r   r'   r(   )r5   r6   r8   r   r'   r<   )r;   r<   r'   r(   )rJ   rK   r'   rO   )Nr   NNN)r)   r   rJ   rK   r   rQ   r   r   r   r   r   r   r   r   r'   r   )rJ   rK   r   rQ   r   r   r   r   r   r   r   r   r'   r   )rS   r   rT   r   r'   r   )r/   r0   r1   Ú__doc__r^   Úoverloadr   rC   rD   rP   rR   r"   r"   r"   r#   r3   ;   s>    ùûû÷


øùr3   )Ú
__future__r   r^   r?   Úosr   Ústarlette.backgroundr   Ústarlette.datastructuresr   Ústarlette.requestsr   Ústarlette.responsesr   Ústarlette.typesr   r	   r
   rB   Úhasattrr   ÚcontextfunctionÚModuleNotFoundErrorr   r3   r"   r"   r"   r#   Ú<module>   s(    
€ÿ