� L�gN���ddlZddlZddlZddlmZddlmZmZddlm Z m Z m Z ddl m Z mZ ejejdfgZeed��r"e�ejejdf��eed��r"e�ejejd f��eed ��r"e�ejejd f��eed ��r"e�ejejd f��dagd�ZGd�d��Zdeeedfddfd�Zdeeedffd�Zdejdede fd�Z!dejde fd�Z"dejdee e#fdefd�Z$dS)�N)�Union�)�"WebSocketConnectionClosedException�WebSocketTimeoutException)�SSLError�SSLWantReadError�SSLWantWriteError)�extract_error_code�extract_err_message� SO_KEEPALIVE� TCP_KEEPIDLE�� TCP_KEEPINTVL� � TCP_KEEPCNT�)�DEFAULT_SOCKET_OPTION�sock_opt�setdefaulttimeout�getdefaulttimeout�recv� recv_line�sendc�"�eZdZdededdfd�ZdS)r�sockopt�sslopt�returnNc�@�|�g}|�i}||_||_d|_dS�N)rr�timeout)�selfrrs �a/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/websocket/_socket.py�__init__zsock_opt.__init__8s/�� �?��G� �>��F��� ��� ��� � � �)�__name__� __module__� __qualname__�list�dictr#�r$r"rr7s=���������d��t������r$rr rc� �|adS)z� Set the global timeout setting to connect. Parameters ---------- timeout: int or float default socket timeout time (in seconds) N��_default_timeout)r s r"rrBs�����r$c��tS)z� Get default timeout Returns ---------- _default_timeout: int or float Return the global timeout setting (in seconds) to connect. r,r*r$r"rrOs �� �r$�sock�bufsizec������std�����fd�} ����dkr�����}n |��}n�#t$rt d���t j$r#}t|��}t |���d}~wt$r=}t|��}t|t��rd|vrt |����d}~wwxYw|std���|S)N�socket is already closed.c���� �����S#t$rYnEtj$r4}t |��}|t jt jfvr�Yd}~nd}~wwxYwtj ��}|� �tj ��|� �� ����}|���|r�����SdSr)rr�socket�errorr �errno�EAGAIN� EWOULDBLOCK� selectors�DefaultSelector�register� EVENT_READ�select� gettimeout�close)�exc� error_code�sel�rr0r/s ��r"�_recvzrecv.<locals>._recv_s���� ��9�9�W�%�%� %��� � � � �D��|� � � �+�C�0�0�J��%�,��0A�!B�B�B��C�B�B�B�B����� ���� �'�)�)�� � � �T�9�/�0�0�0� �J�J�t���(�(� )� )�� � � � � � � � &��9�9�W�%�%� %� &� &s�� A&�A&�*A!�!A&rzConnection timed out� timed outz#Connection to remote host was lost.) rr>r� TimeoutErrorrr4r r r� isinstance�str)r/r0rD�bytes_�e�messages`` r"rr[sB���� �N�0�1L�M�M�M�&�&�&�&�&�&�&� �?�?� � �� !� !��Y�Y�w�'�'�F�F��U�W�W�F��� �@�@�@�'�(>�?�?�?� �>�1�1�1�%�a�(�(��'��0�0�0����� ����%�a�(�(�� �g�s� #� #� � �w�(>�(>�+�G�4�4� 4� ����� ���� �X�0�1V�W�W�W� �Ms#�8A�'C#�;B� C#�&8C�C#c��g} t|d��}|�|��|dkrn�-d�|��S)NTr� r$)r�append�join)r/�line�cs r"rr�sK�� �D�� ��q�M�M�� � � �A���� ��:�:� � � �8�8�D�>�>�r$�datac�����t�t��r��d����std�����fd�} ����dkr�����S|��S#t j$r#}t|��}t|���d}~wt$r=}t|��}t|t��rd|vrt|����d}~wwxYw)Nzutf-8r2c���� �����S#t$rYnHtj$r7}t |��}|��|t jt jfvr�Yd}~nd}~wwxYwtj ��}|� �tj ��|� �� ����}|���|r�����SdSr)rr r4r5r r6r7r8r9r:r;� EVENT_WRITEr=r>r?)r@rArB�wrRr/s ��r"�_sendzsend.<locals>._send�s��� ��9�9�T�?�?� "�� � � � � �D��|� � � �+�C�0�0�J��!���%�,��0A�!B�B�B��C�B�B�B�B�����  �����'�)�)�� � � �T�9�0�1�1�1� �J�J�t���(�(� )� )�� � � � � � � � #��9�9�T�?�?� "� #� #s�� A)�A)�-A$�$A)rrE) rGrH�encoderr>rr4r r r� Exception)r/rRrWrJrKs`` r"rr�s�����$����$��{�{�7�#�#�� �N�0�1L�M�M�M�#�#�#�#�#�#�* � �?�?� � �� !� !��9�9�T�?�?� "��5�7�7�N�� �>�1�1�1�%�a�(�(��'��0�0�0����� ����%�a�(�(�� �g�s� #� #� � �w�(>�(>�+�G�4�4� 4� ����� ���s*�,A<�2 A<�<C3� B)�) C3�68C.�.C3)%r6r9r4�typingr� _exceptionsrr� _ssl_compatrrr �_utilsr r �SOL_TCP� TCP_NODELAYr�hasattrrN� SOL_SOCKETr r rrr-�__all__r�int�floatrr�bytesrrrHrr*r$r"�<module>rfs��� � � � ����� � � � ���������������G�F�F�F�F�F�F�F�F�F�;�;�;�;�;�;�;�;��&!�.�&�*<�a�@�A�� �7�6�>�"�"�N�� � �&�"3�V�5H�!�!L�M�M�M� �7�6�>�"�"�L�� � �&�.�&�2E�r�!J�K�K�K� �7�6�?�#�#�M�� � �&�.�&�2F��!K�L�L�L� �7�6�=�!�!�J�� � �&�.�&�2D�a�!H�I�I�I��� � � ���������� �u�S�%��%5�6� �4� � � � � �5��e�T�!1�2� � � � �+�v�}�+�s�+�u�+�+�+�+�\�F�M��e�����)�v�}�)�E�%��*�$5�)�#�)�)�)�)�)�)r$
Memory