o
    ¢ÄiI  ã                   @   sÎ   U d Z ddlZddlmZ ddlmZmZmZmZm	Z	m
Z
 eg d¢ƒZee ed< G dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZe eejddf¡Ze eejddf¡ZG dd„ deƒZG dd„ deƒZdS )z0Models for WebSocket protocol versions 13 and 8.é    N)ÚIntEnum)ÚAnyÚCallableÚFinalÚ
NamedTupleÚOptionalÚcast)r   r   éÿ   r	   ÚWS_DEFLATE_TRAILINGc                   @   s@   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdS )ÚWSCloseCodeiè  ié  iê  ië  iî  iï  ið  iñ  iò  ió  iô  iõ  iö  N)Ú__name__Ú
__module__Ú__qualname__ÚOKZ
GOING_AWAYZPROTOCOL_ERRORZUNSUPPORTED_DATAZABNORMAL_CLOSUREZINVALID_TEXTZPOLICY_VIOLATIONZMESSAGE_TOO_BIGZMANDATORY_EXTENSIONÚINTERNAL_ERRORZSERVICE_RESTARTZTRY_AGAIN_LATERÚBAD_GATEWAY© r   r   úS/home/kim/smarthome/.venv/lib/python3.10/site-packages/aiohttp/_websocket/models.pyr   
   s    r   c                   @   sP   e Zd ZdZdZdZdZdZdZdZ	dZ
d	ZeZeZeZeZeZe	Ze
ZeZd
S )Ú	WSMsgTyper   é   é   é	   é
   é   é   i  i  N)r   r   r   ZCONTINUATIONZTEXTZBINARYZPINGZPONGZCLOSEÚCLOSINGÚCLOSEDÚERRORÚtextÚbinaryZpingÚpongÚcloseÚclosingÚclosedÚerrorr   r   r   r   r      s$    r   c                   @   sN   e Zd ZU eed< eed< ee ed< ej	dœde
egef defdd„Zd	S )
Ú	WSMessageÚtypeÚdataÚextra)Úloadsr)   Úreturnc                C   s
   || j ƒS )zAReturn parsed JSON data.

        .. versionadded:: 0.22
        )r'   )Úselfr)   r   r   r   Újson8   s   
zWSMessage.jsonN)r   r   r   r   Ú__annotations__r   r   Ústrr,   r)   r   r   r   r   r   r%   2   s
   
 (r%   c                       s<   e Zd ZdZdededdf‡ fdd„Zdefdd	„Z‡  ZS )
ÚWebSocketErrorz WebSocket protocol parser error.ÚcodeÚmessager*   Nc                    s   || _ tƒ  ||¡ d S )N)r0   ÚsuperÚ__init__)r+   r0   r1   ©Ú	__class__r   r   r3   K   s   zWebSocketError.__init__c                 C   s   t t| jd ƒS )Nr   )r   r.   Úargs)r+   r   r   r   Ú__str__O   s   zWebSocketError.__str__)	r   r   r   Ú__doc__Úintr.   r3   r7   Ú__classcell__r   r   r4   r   r/   H   s    r/   c                   @   s   e Zd ZdZdS )ÚWSHandshakeErrorz#WebSocket protocol handshake error.N)r   r   r   r8   r   r   r   r   r;   S   s    r;   )r8   r,   Úenumr   Útypingr   r   r   r   r   r   Úbytesr
   r-   r   r   r%   ÚtupleÚ__new__r   ZWS_CLOSED_MESSAGEr   ZWS_CLOSING_MESSAGEÚ	Exceptionr/   r;   r   r   r   r   Ú<module>   s     