o
    ã¥µib
  ã                   @  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
mZmZmZmZmZmZ ddlmZ g d	¢ZejZG d
d„ deejƒZG dd„ de
ejƒZG dd„ deejƒZG dd„ deejƒZG dd„ deejƒZG dd„ deejƒZG dd„ deejƒZ				d,d-d&d'„Zd.d*d+„ZdS )/é    )ÚannotationsN)Úwsgi)ÚServerSentEventé   )ÚFileResponseMixinÚHTMLResponseMixinÚJSONResponseMixinÚPlainTextResponseMixinÚRedirectResponseMixinÚSendEventResponseMixinÚStreamResponseMixiné   )Úrequest)Úconvert_responseÚHttpResponseÚFileResponseÚHTMLResponseÚJSONResponseÚPlainTextResponseÚRedirectResponseÚSendEventResponser   ÚStreamResponseÚTemplateResponsec                   @  s   e Zd Zddd„ZdS )	r   Úcontentú
typing.AnyÚreturnÚbytesc                 C  s6   | j  d¡stjj| j d< tj|fi | j ¤Ž | j¡S )NÚdefault)	Újson_kwargsÚgetr   ÚappÚjson_encoderÚjsonÚdumpsÚencodeÚcharset)Úselfr   © r'   úF/home/ubuntu/.local/lib/python3.10/site-packages/kui/wsgi/responses.pyÚrender&   s   zJSONResponse.renderN)r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r)   r'   r'   r'   r(   r   %   s    r   c                   @  ó   e Zd ZdS )r   N©r*   r+   r,   r'   r'   r'   r(   r   ,   ó    r   c                   @  r-   )r   Nr.   r'   r'   r'   r(   r   3   r/   r   c                   @  r-   )r   Nr.   r'   r'   r'   r(   r   :   r/   r   c                   @  r-   )r   Nr.   r'   r'   r'   r(   r   A   r/   r   c                   @  r-   )r   Nr.   r'   r'   r'   r(   r   H   r/   r   c                   @  r-   )r   Nr.   r'   r'   r'   r(   r   O   r/   r   éÈ   ÚnameÚstrÚcontextútyping.Mapping[str, typing.Any]Ústatus_codeÚintÚheadersú)typing.Optional[typing.Mapping[str, str]]Ú
media_typeútyping.Optional[str]r%   r   r   c                 C  s,   t jj}|d u rtdƒ‚| | |||||¡S )NzBYou must assign a value to `app.templates` to use TemplateResponse)r   r    Ú	templatesÚRuntimeErrorr   )r1   r3   r5   r7   r9   r%   r;   r'   r'   r(   r   V   s   ÿÿr   Úresponser   c                 C  s"   t | tƒrtjj| Ž S tj | ¡S )a.  
    shortcut for convert response to HttpResponse

    Example:

        response = convert(response)

    It is equivalent to:

        if isinstance(response, tuple):
            response = app.response_converter(*response)
        else:
            response = app.response_converter(response)

    )Ú
isinstanceÚtupler   r    Úresponse_converter)r=   r'   r'   r(   r   i   s   
r   )r0   NNN)r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r%   r:   r   r   )r=   r   r   r   )Ú
__future__r   r"   ÚtypingÚbaizer   Ú
baize_wsgiÚbaize.typingr   Ú	responsesr   r   r   r	   r
   r   r   Úrequestsr   Ú__all__ÚResponser   r   r   r   r   r   r   r   r   r   r'   r'   r'   r(   Ú<module>   sP    $	
þ
þ
þ
þ
þ
þ
ú