o
    OÊÆhJ  ã                   @   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__© úa/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/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ÚloaderÚ
autoescapeTr<   r   )r
   r-   r1   r+   r,   r   r7   Ú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   rC   ]   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   ÚupdaterC   r   )
r   r:   r   r   r   r   r   r!   Úcontext_processorr   r   r   r   ÚTemplateResponse`   s   	

úz Jinja2Templates.TemplateResponser   r'   )r(   r)   r*   Ú__doc__r+   ÚUnionr1   r   r/   ÚListÚCallabler   ÚDictr,   r   r8   rC   r-   r.   r0   r   r   rH   r   r   r   r   r3   :   sR    ûþ ÿýú
ùÿÿ
þùþýüûúùør3   )r+   Úosr   Ústarlette.backgroundr   Ústarlette.datastructuresr   Ústarlette.requestsr   Ústarlette.responsesr   Ústarlette.typesr   r   r	   r7   Úhasattrr
   ÚcontextfunctionÚModuleNotFoundErrorr   r3   r   r   r   r   Ú<module>   s$    
€ÿ!