o
    㥵iD                     @  s   d dl mZ d dlmZ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 d	d
gZG dd	 d	e
Zzd dlZddlmZ W n eyU   G dd
 d
ZY dS w G dd deZejdddZG dd
 d
eZdS )    )annotations)AnyMapping)URL)SmallResponse)Protocol   )request)HttpResponseBaseTemplatesJinja2Templatesc                   @  s    e Zd Z				ddddZdS )r      NnamestrcontextMapping[str, Any]status_codeintheadersMapping[str, str] | None
media_type
str | Nonecharsetreturnr
   c                 C  s   t )zm
        The subclass must override this method and return
        an instance of a Response object.
        NotImplementedErrorselfr   r   r   r   r   r    r   F/home/ubuntu/.local/lib/python3.10/site-packages/kui/wsgi/templates.pyTemplateResponse   s   zBaseTemplates.TemplateResponser   NNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r
   )__name__
__module____qualname__r    r   r   r   r   r      s    N   )Jinja2TemplatesBasec                   @  s   e Zd ZdddZdS )r   r   Nonec                 C  s   t d)Nz'Install "jinja2" to use Jinja2Templatesr   )r   r   r   r   __init__*   s   Jinja2Templates.__init__N)r   r'   )r"   r#   r$   r(   r   r   r   r   r   )   s    c                      s6   e Zd ZdZ				dd fddZdddZ  ZS )_Jinja2TemplateResponsez	text/htmlr   Nenvjinja2.Environmentr   r   r   r   r   r   r   r   r   r   r   c                   s,   || _ | j || _t ||||| d S N)r+   get_templatetemplatesuperr(   )r   r+   r   r   r   r   r   r   	__class__r   r   r(   2   s   
z _Jinja2TemplateResponse.__init__r   bytesc                 C  s   | j |}|| jS r-   )r/   renderencoder   )r   r   textr   r   r   r4   @   s   z_Jinja2TemplateResponse.renderr!   )r+   r,   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r3   )r"   r#   r$   r   r(   r4   __classcell__r   r   r1   r   r*   /   s    r*   r   dictr   r   path_paramsr   r   r   c                 C  s   t ||S r-   )r	   url_for)r   r   r9   r   r   r   r:   D   s   r:   c                      s6   e Zd ZdZd fddZ							ddddZ  ZS )r   z
        templates = Jinja2Templates("dir", "package:dir")

        return templates.TemplateResponse("index.html", {"request": request})
        directoriesr   r   r'   c                   s   t  j|  t| jjd< d S )Nr:   )r0   r(   r:   r+   globals)r   r;   r1   r   r   r(   O   s   r)   r   Nr   r   r   r   r   r   r   r   r   r   r*   c              	   C  s   t | j||||||dS )N)r   r   r   r   )r*   r+   r   r   r   r   r    S   s   	z Jinja2Templates.TemplateResponse)r;   r   r   r'   r!   )r   r   r   r   r   r   r   r   r   r   r   r   r   r*   )r"   r#   r$   __doc__r(   r    r7   r   r   r1   r   r   H   s    )r   r8   r   r   r9   r   r   r   )
__future__r   typingr   r   baize.datastructuresr   
baize.wsgir   typing_extensionsr   requestsr	   	responsesr
   __all__r   jinja2	templatesr&   ImportErrorr   r*   pass_contextr:   r   r   r   r   <module>   s*    