o �J�he �@s�ddlmZddlZddlmZmZddlmZddlm Z m Z m Z m Z ddl mZddlmZddlmZdd lmZdd lmZmZmZzddlZeed �rTejZnejZWn eycdZYnwGd d �d e�ZGdd�d�ZdS)�)� annotationsN)�Mapping�Sequence)�PathLike)�Any�Callable�cast�overload)�BackgroundTask)�URL)�Request)� HTMLResponse)�Receive�Scope�Send� pass_contextcs6eZdZ    dd�fdd� Zd�fdd� Z�ZS)�_TemplateResponse��N�templater�context�dict[str, Any]� status_code�int�headers�Mapping[str, str] | None� media_type� str | None� background�BackgroundTask | Nonecs.||_||_|�|�}t��|||||�dS�N)rr�render�super�__init__)�selfrrrrrr�content�� __class__��RC:\pinokio\api\whisper-webui.git\app\env\lib\site-packages\starlette\templating.pyr"s  z_TemplateResponse.__init__�scoper�receiver�sendr�return�Nonec�s\�|j�di�}|�di�}d|vr!|d|j|jd�d��IdHt��|||�IdHdS)N�request� extensionszhttp.response.debug)rr)�type�info)r�getrr!�__call__)r#r)r*r+r.r/r%r'r(r3,s� �� � z_TemplateResponse.__call__)rNNN) rrrrrrrrrrrr)r)rr*rr+rr,r-)�__name__� __module__� __qualname__r"r3� __classcell__r'r'r%r(rs�rc@s�eZdZdZedd�d2d d ��Zedd�d3dd ��Z d4ddd�d5dd �Zd6dd�Zd7dd�Zd8dd�Ze     d9d:d,d-��Z e     d9d;d.d-��Z d<d1d-�Z dS)=�Jinja2Templatesz} templates = Jinja2Templates("templates") return templates.TemplateResponse("index.html", {"request": request}) N)�context_processors� directory�3str | PathLike[str] | Sequence[str | PathLike[str]]r9�0list[Callable[[Request], dict[str, Any]]] | None� env_optionsrr,r-cK�dSrr')r#r:r9r=r'r'r(r"CszJinja2Templates.__init__�env�jinja2.EnvironmentcCr>rr')r#r?r9r'r'r(r"Ls)r9r?�:str | PathLike[str] | Sequence[str | PathLike[str]] | None�jinja2.Environment | NonecKs~|rt�dt�tdusJd��t|�t|�AsJd��|pg|_|dur0|j|fi|��|_n|dur7||_|�|j�dS)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�boolr9� _create_envr?�_setup_env_defaults)r#r:r9r?r=r'r'r(r"Ts� cKs2t�|�}|�d|�|�dd�tjdi|��S)N�loaderZ autoescapeTr')rFZFileSystemLoader� setdefaultZ Environment)r#r:r=rJr'r'r(rHks   zJinja2Templates._create_envcCs td d d ��}|j�d |�dS) Nrr�name�str� path_paramsrr,r c[s|d}|j|fi|��S)Nr.)�url_for)rrLrNr.r'r'r(rOwsz4Jinja2Templates._setup_env_defaults.<locals>.url_forrO)rrrLrMrNrr,r )r�globalsrK)r#r?rOr'r'r(rIvs  z#Jinja2Templates._setup_env_defaultsrLrM�jinja2.TemplatecCs |j�|�Sr)r?� get_template)r#rLr'r'r(rR�s zJinja2Templates.get_templaterr.r r�dict[str, Any] | NonerrrrrrrrrcCr>rr')r#r.rLrrrrrr'r'r(�TemplateResponse�s z Jinja2Templates.TemplateResponsecCr>rr')r#rLrrrrrr'r'r(rT�s �args�kwargsc Osb|r�t|dt�rmt�dt�|d}t|�dkr|dn|�di�}t|�dkr-|dn|�dd�}t|�dkr=|dn|�d �}t|�d krL|d n|�d �}t|�d kr[|d n|�d �}d|vrhtd��|d} n�|d} t|�dkr{|dn|d}t|�dkr�|dn|�di�}t|�dkr�|dn|�dd�}t|�d kr�|d n|�d �}t|�d kr�|d n|�d �}t|�dkr�|dn|�d �}nAd|vr�t�dt�d|�di�vr�td��|�di�}|�d|�d��} tt|d�}|�dd�}|�d �}|�d �}|�d �}|� d| �|j D] } |� | | ���q|� |�} t | |||||d�S)Nrz�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�rr�r�r�rr.z$context must include a "request" keyrL�z�The `TemplateResponse` now requires the `request` argument. Replace `TemplateResponse(name, {"context": context})` by `TemplateResponse(request, name)`.)rrrr)� isinstancerMrCrDrE�lenr2� ValueErrorrrKr9�updaterRr) r#rUrVrLrrrrrr.Zcontext_processorrr'r'r(rT�s`�      �        �)r:r;r9r<r=rr,r-)r?r@r9r<r,r-r) r:rAr9r<r?rBr=rr,r-)r:r;r=rr,r@)r?r@r,r-)rLrMr,rQ)NrNNN)r.r rLrMrrSrrrrrrrrr,r)rLrMrrSrrrrrrrrr,r)rUrrVrr,r) r4r5r6�__doc__r r"rHrIrRrTr'r'r'r(r8<s>�� ��  � � r8) � __future__rrC�collections.abcrr�osr�typingrrrr �starlette.backgroundr �starlette.datastructuresr �starlette.requestsr �starlette.responsesr �starlette.typesrrrrF�hasattrrZcontextfunction�ModuleNotFoundErrorrr8r'r'r'r(�<module>s*       � �
Memory