� E�g�:��|�dZddlZddlZddlmZddlmZmZmZm Z ddl Z ddl m Z ddl mZmZmZddlmZdd lmZmZdd lmZmZmZmZmZmZdd lmZmZdd l m!Z!dd l"m#Z#m$Z$m%Z%m&Z&ej'dkrddlZ(nddl(Z(e j)dd���Gd�d����Z*e*dd���Z+Gd�d��Z,dS)zWebSocket client for asyncio.�N)� TracebackType)�Any�Optional�Type�cast�)�WebSocketDataQueue)� ClientError�ServerTimeoutError�WSMessageTypeError)�ClientResponse)�calculate_timeout_when� set_result)�WS_CLOSED_MESSAGE�WS_CLOSING_MESSAGE�WebSocketError� WSCloseCode� WSMessage� WSMsgType)�_INTERNAL_RECEIVE_TYPES�WebSocketWriter)� EofStream)�DEFAULT_JSON_DECODER�DEFAULT_JSON_ENCODER� JSONDecoder� JSONEncoder)�� T)�frozen�slotsc�n�eZdZejeed���Zejeed���ZdS)�ClientWSTimeoutN)�type�default) �__name__� __module__� __qualname__�attr�ibr�float� ws_receive�ws_close���a/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/aiohttp/client_ws.pyr"r"%sB���������h�u�o�t�<�<�<�J��t�w�H�U�O�T�:�:�:�H�H�Hr.r"g$@)r+r,c�f�eZdZdddd�dededeeded ed e d e d e j d ee de de ddfd�ZdDd�ZdDd�ZdDd�ZdDd�ZdEd�ZdDd�Zdeddfd�ZdDd�ZdDd�Zede fd���Zedee fd���Zedeefd ���Zede fd!���Zede fd"���ZdFd#ed$edefd%�Z deefd&�Z!dGd(e"ddfd)�Z#dGd(e"ddfd*�Z$ dFd(e"d+e%dee ddfd,�Z&dFd-edee ddfd.�Z'dFd-e"dee ddfd/�Z( dFe)d0�d-edee d1e*ddfd2�Z+e,j-d'd3�d4e d(e"de fd5�Z.dFd ee de/fd6�Z0dd7�d ee defd8�Z1dd7�d ee de"fd9�Z2e3dd:�d;e4d ee defd<�Z5dHd=�Z6de/fd>�Z7dHd?�Z8d@ee9edAeedBee:ddfdC�Z;dS)I�ClientWebSocketResponseNrF)� heartbeat�compress�client_notakeover�reader�writer�protocol�response�timeout� autoclose�autoping�loopr2r3r4�returnc ��||_|j|_||_||_||_d|_d|_d|_||_ ||_ ||_ | |_ d|_ d|_| � | dz |_d|_||_d|_d|_d|_| |_| |_d|_|���dS)NFgg@)� _response� connection�_conn�_writer�_reader� _protocol�_closed�_closing� _close_code�_timeout� _autoclose� _autoping� _heartbeat� _heartbeat_cb�_heartbeat_when�_pong_heartbeat�_pong_response_cb�_loop�_waiting� _close_wait� _exception� _compress�_client_notakeover� _ping_task�_reset_heartbeat) �selfr5r6r7r8r9r:r;r<r2r3r4s r/�__init__z ClientWebSocketResponse.__init__/s���"����(�� ��� ��� �!����� ��� �*.����� �#���!���#���<@���&)��� � �#,�s�?�D� �@D����� �#�� �;?���37���!���"3���8<��� �������r.c���|���|j� |j���d|_|j�"|j���d|_dSdS�N)�_cancel_pong_response_cbrL�cancelrV�rXs r/�_cancel_heartbeatz)ClientWebSocketResponse._cancel_heartbeatZsi�� �%�%�'�'�'� � � )� � � %� %� '� '� '�!%�D� � �?� &� �O� "� "� $� $� $�"�D�O�O�O� '� &r.c�X�|j�"|j���d|_dSdSr[)rOr]r^s r/r\z0ClientWebSocketResponse._cancel_pong_response_cbcs6�� � !� -� � "� )� )� +� +� +�%)�D� "� "� "� .� -r.c�8�|j�dS|���|j}|�J�|j}|� |jjnd}|���}t||j|��}||_|j �"|� ||j ��|_ dSdS)N�) rKr\rPrA� _connector�_timeout_ceil_threshold�timerrMrL�call_at�_send_heartbeat)rXr<�conn�timeout_ceil_threshold�now�whens r/rWz(ClientWebSocketResponse._reset_heartbeaths��� �?� "� �F� �%�%�'�'�'��z�������z��7;�7G�D�O� 3� 3�Q� ��i�i�k�k��%�c�4�?�<R�S�S��#��� � � %� "&���d�D�4H�!I�!I�D� � � � &� %r.c���d|_|j}|���}||jkr'|�|j|j��|_dS|j}|� |jjnd}t||j |��}|� ��|�||j ��|_ |j�dt j��}t$jdkrt)j||d���}n|�|��}|���s#||_|�|j��dS|�|��dS)Nrbr.)r� T)r<� eager_start)rLrPrerMrfrgrArcrdrrNr\�_pong_not_receivedrOrB� send_framer�PING�sys� version_info�asyncio�Task� create_task�donerV�add_done_callback�_ping_task_done)rXr<rjrhrirk�coro� ping_tasks r/rgz'ClientWebSocketResponse._send_heartbeat}sX��!����z���i�i�k�k�� ��%� %� %�!%����$�d�&:�"�"�D� � �F��z��7;�7G�D�O� 3� 3�Q� �&�c�4�+?�AW�X�X�� �%�%�'�'�'�!%���d�D�4K�!L�!L����|�&�&�s�I�N�;�;�� � �w� &� &� � �T��$�G�G�G�I�I��(�(��.�.�I��~�~��� ,�'�D�O� � '� '��(<� =� =� =� =� =� � � �� +� +� +� +� +r.�task�asyncio.Task[None]c��|���s+|���x}r|�|��d|_dS)z*Callback for when the ping task completes.N)� cancelled� exception�_handle_ping_pong_exceptionrV)rXr|�excs r/ryz'ClientWebSocketResponse._ping_task_done�sI���~�~��� 2�D�N�N�,<�,<�%<�S� 2� � ,� ,�S� 1� 1� 1�����r.c�H�|�t����dSr[)r�r r^s r/roz*ClientWebSocketResponse._pong_not_received�s#�� �(�(�);�)=�)=�>�>�>�>�>r.r�c�.�|jrdS|���tj|_||_|j���|jr=|j s8|j � ttj|d��d��dSdSdS)z5Handle exceptions raised during ping/pong processing.Nr)rE� _set_closedr�ABNORMAL_CLOSURErGrSr?�closerQrFrC� feed_datarr�ERROR)rXr�s r/r�z3ClientWebSocketResponse._handle_ping_pong_exception�s��� �<� � �F� ������&�7������ ������� �=� M��� M� �L� "� "�9�Y�_�c�4�#H�#H�!� L� L� L� L� L� M� M� M� Mr.c�<�d|_|���dS)zdSet the connection to closed. Cancel any heartbeat timers and set the closed flag. TN)rEr_r^s r/r�z#ClientWebSocketResponse._set_closed�s#�� �� � ��� � � � � r.c�<�d|_|���dS)zfSet the connection to closing. Cancel any heartbeat timers and set the closing flag. TN)rFr_r^s r/� _set_closingz$ClientWebSocketResponse._set_closing�s#�� �� � ��� � � � � r.c��|jSr[)rEr^s r/�closedzClientWebSocketResponse.closed�s ���|�r.c��|jSr[)rGr^s r/� close_codez"ClientWebSocketResponse.close_code�s ����r.c��|jSr[)rDr^s r/r7z ClientWebSocketResponse.protocol�� ���~�r.c��|jSr[)rTr^s r/r3z ClientWebSocketResponse.compress�r�r.c��|jSr[)rUr^s r/r4z)ClientWebSocketResponse.client_notakeover�s ���&�&r.�namer$c�d�|jj}|�|S|j}|�|S|�||��S)z$extra info from connection transport)r?r@� transport�get_extra_info)rXr�r$rhr�s r/r�z&ClientWebSocketResponse.get_extra_info�s>���~�(�� �<��N��N� � � ��N��'�'��g�6�6�6r.c��|jSr[)rSr^s r/r�z!ClientWebSocketResponse.exception�s ����r.r.�messagec��`K�|j�|tj���d{V��dSr[)rBrprrq�rXr�s r/�pingzClientWebSocketResponse.ping��8�����l�%�%�g�y�~�>�>�>�>�>�>�>�>�>�>�>r.c��`K�|j�|tj���d{V��dSr[)rBrpr�PONGr�s r/�pongzClientWebSocketResponse.pong�r�r.�opcodec��NK�|j�|||���d{V��dS)z Send a frame over the websocket.N)rBrp)rXr�r�r3s r/rpz"ClientWebSocketResponse.send_frame�s:�����l�%�%�g�v�x�@�@�@�@�@�@�@�@�@�@�@r.�datac���K�t|t��stdt|��z���|j�|�d��tj|����d{V��dS)Nzdata argument must be str (%r)zutf-8�r3) � isinstance�str� TypeErrorr#rBrp�encoder�TEXT�rXr�r3s r/�send_strz ClientWebSocketResponse.send_str�s������$��$�$� K��<�t�D�z�z�I�J�J� J��l�%�%� �K�K�� � �)�.�8�&� � � � � � � � � � � r.c���K�t|tttf��st dt |��z���|j�|tj |����d{V��dS)Nz#data argument must be byte-ish (%r)r�) r��bytes� bytearray� memoryviewr�r#rBrpr�BINARYr�s r/� send_bytesz"ClientWebSocketResponse.send_bytes�sr�����$�� �:� >�?�?� P��A�D��J�J�N�O�O� O��l�%�%�d�I�,<�x�%�P�P�P�P�P�P�P�P�P�P�Pr.)�dumpsr�c��VK�|�||��|����d{V��dS)Nr�)r�)rXr�r3r�s r/� send_jsonz!ClientWebSocketResponse.send_json�s>�����m�m�E�E�$�K�K�(�m�;�;�;�;�;�;�;�;�;�;�;r.)�coder�r�c�� K�|jro|jsh|j�J�|j���|_|���|j�td��|j�d{V��|j rdS|� �� |j � ||���d{V��n�#tj$r,tj|_|j� ���t&$r<}tj|_||_|j� ��Yd}~dSd}~wwxYw|jr|j� ��dS t+j|jj��4�d{V��|j����d{V��}ddd���d{V��n#1�d{V��swxYwYn�#tj$r,tj|_|j� ���t&$r<}tj|_||_|j� ��Yd}~dSd}~wwxYw|jt6jur'|j|_|j� ��dS��')NrFT)rQrFrP� create_futurerRr�rCr�rrEr�rBr�rt�CancelledErrorrr�rGr?� ExceptionrS� async_timeoutr9rHr,�readr#r�CLOSEr�)rXr�r�r��msgs r/r�zClientWebSocketResponse.closes>���� �=� #��� #��:�)�)�)�#�z�7�7�9�9�D� � � � � � � � �L� "� "�#5�q� 9� 9� 9��"� "� "� "� "� "� "� "� �<� ��5� ������ ��,�$�$�T�7�3�3� 3� 3� 3� 3� 3� 3� 3� 3���%� � � �*�;�D� � �N� � � "� "� "� �� � � �*�;�D� �!�D�O� �N� � � "� "� "��4�4�4�4�4�����  ���� � � � �N� � � "� "� "��4� � �(�0���1G�H�H�4�4�4�4�4�4�4�4� $� � 1� 1� 3� 3�3�3�3�3�3�3�C�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4����)� � � �#.�#?�� ���$�$�&�&�&��� � � �#.�#?�� �"%�����$�$�&�&�&��t�t�t�t�t�����  ���� �x�9�?�*�*�#&�8�� ���$�$�&�&�&��t�# sV�!B9�9AD8�<1D3�3D8�$G� F5�#G�5 F?�?G�F?�G�AI� 1I�Ic��zK�|p |jj} |jrtd���|jrt S|jr!|����d{V��t S d|_ |r^tj |��4�d{V��|j � ���d{V��}ddd���d{V��n#1�d{V��swxYwYn|j � ���d{V��}|� ��d|_|j rt|j d��n)#d|_|j rt|j d��wwxYw�n�#tjtjf$rt$j|_�t*$rIt$j|_|����d{V��t/t0jdd��cYSt4$r/|���t$j|_t cYSt8$rR}|j|_|�|j����d{V��t/t0j|d��cYd}~Sd}~wt>$rk}||_ |�!��t$j|_|����d{V��t/t0j|d��cYd}~Sd}~wwxYw|j"tFvr|S|j"t0j$urI|�!��|j%|_|js!|j&r|����d{V��n�|j"t0j'ur|�!��nX|j"t0j(ur)|j)r"|�*|j%���d{V�����|j"t0j+ur |j)r���|S)NTz+Concurrent call to receive() is not allowedF)r�),rHr+rQ� RuntimeErrorrErrFr�r�r9rCr�rWrRrrtr�� TimeoutErrorrr�rGr�OKrr�CLOSEDr r�rr�r�r�rSr�r#rr�r�rI�CLOSINGrqrJr�r�)rXr9�receive_timeoutr�r�s r/�receivezClientWebSocketResponse.receive6s�����!�=�T�]�%=��D ��}� R�"�#P�Q�Q�Q��|� )�(�(��� )��j�j�l�l�"�"�"�"�"�"�"�(�(�& =� $�� �;�&�8� $1�#8��#I�#I�<�<�<�<�<�<�<�<�(,� �(9�(9�(;�(;�";�";�";�";�";�";�C�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<����<�<�<�<��%)�L�$5�$5�$7�$7�7�7�7�7�7�7���)�)�+�+�+�$)�D�M��'�;�"�4�#3�T�:�:�:���%*�D�M��'�;�"�4�#3�T�:�:�:�:�;�������*�G�,@�A� � � �#.�#?�� ��� ?� ?� ?�#.�>�� ��j�j�l�l�"�"�"�"�"�"�"� ��!1�4��>�>�>�>�>�� )� )� )�� � �"�"�"�#.�#?�� �(�(�(�(�!� =� =� =�#&�8�� ��j�j�c�h�j�/�/�/�/�/�/�/�/�/� ���#�t�<�<�<�<�<�<�<�<������ =� =� =�"%����!�!�#�#�#�#.�#?�� ��j�j�l�l�"�"�"�"�"�"�"� ���#�t�<�<�<�<�<�<�<�<�����  =�����x�6�6�6�� ��x�9�?�*�*��!�!�#�#�#�#&�8�� ��|�'���'��*�*�,�,�&�&�&�&�&�&�&����Y�.�.�.��!�!�#�#�#�#���Y�^�+�+���+��i�i���)�)�)�)�)�)�)�)�)����Y�^�+�+���+���Js{�E �'D� B5�#D�5 B?�?D�B?�7D�:$E �&E�E � A<K �5K �> K �AI�K � K �!A K�K �K �r9c���K�|�|���d{V��}|jtjur t d|j�d|j�d����t t|j��S)N�Received message �:z is not WSMsgType.TEXT)r�r#rr�r r�rr��rXr9r�s r/� receive_strz#ClientWebSocketResponse.receive_strsx�����L�L��)�)�)�)�)�)�)�)�� �8�9�>� )� )�$�Q�C�H�Q�Q�s�x�Q�Q�Q��� ��C���"�"�"r.c���K�|�|���d{V��}|jtjur t d|j�d|j�d����t t|j��S)Nr�r�z is not WSMsgType.BINARY)r�r#rr�r r�rr�r�s r/� receive_bytesz%ClientWebSocketResponse.receive_bytes�sy�����L�L��)�)�)�)�)�)�)�)�� �8�9�+� +� +�$�S�C�H�S�S�s�x�S�S�S��� ��E�3�8�$�$�$r.)�loadsr9r�c��TK�|�|����d{V��}||��S)Nr�)r�)rXr�r9r�s r/� receive_jsonz$ClientWebSocketResponse.receive_json�s>���� �%�%�g�%�6�6�6�6�6�6�6�6���u�T�{�{�r.c��|Sr[r-r^s r/� __aiter__z!ClientWebSocketResponse.__aiter__�s��� r.c��K�|����d{V��}|jtjtjtjfvrt �|Sr[)r�r#rr�r�r��StopAsyncIteration)rXr�s r/� __anext__z!ClientWebSocketResponse.__anext__�sL�����L�L�N�N�"�"�"�"�"�"�� �8� ���):�I�<L�M� M� M�$� $�� r.c�� K�|Sr[r-r^s r/� __aenter__z"ClientWebSocketResponse.__aenter__�s ����� r.�exc_type�exc_val�exc_tbc��>K�|����d{V��dSr[)r�)rXr�r�r�s r/� __aexit__z!ClientWebSocketResponse.__aexit__�s.���� �j�j�l�l���������r.)r=N)r|r}r=Nr[)r.)r=r1)<r%r&r'r rrr�r r"�boolrt�AbstractEventLoopr*�intrYr_r\rWrgryro� BaseExceptionr�r�r��propertyr�r�r7r3r4rr�r�r�r�r�rrpr�r�rrr�rr�r�rr�r�r�rrr�r�r�r�rrr�r-r.r/r1r1.s�������&*��"'�) �) �) �"�) � �) ��3�-� ) � !� ) � !� ) ��) ��) ��'�) ��E�?�) ��) � �) � �) �) �) �) �V#�#�#�#�*�*�*�*� J�J�J�J�* ,� ,� ,� ,�D���� ?�?�?�?� M�}� M�� M� M� M� M�!�!�!�!�!�!�!�!��������X��� �H�S�M� � � ��X� ���(�3�-�����X����#�����X���'�4�'�'�'��X�'�7�7�3�7��7��7�7�7�7��8�M�2�����?�?�%�?�$�?�?�?�?�?�?�%�?�$�?�?�?�?�LP�A�A��A�&/�A�;C�C�=�A� �A�A�A�A�  � �3� �(�3�-� �4� � � � �Q�Q�U�Q�h�s�m�Q�t�Q�Q�Q�Q�#'�<� 2� <�<�<��<��3�-�<� � <� � <�<�<�<�*5��#�/�/�/�3�/�%�/�RV�/�/�/�/�bG�G�X�e�_�G� �G�G�G�G�R?C�#�#�#�H�U�O�#�s�#�#�#�#�AE�%�%�%�h�u�o�%��%�%�%�%�2�#'� ������%�� � � �������������� ������4� �.�/���-�(����'� � � �����r.r1)-�__doc__rtrr�typesr�typingrrrrr(�_websocket.readerr �client_exceptionsr r r � client_reqrepr �helpersrr�httprrrrrr�http_websocketrr�streamsr�typedefsrrrrrsr��sr"�DEFAULT_WS_CLIENT_TIMEOUTr1r-r.r/�<module>r�s3��#�#����� � � � �������,�,�,�,�,�,�,�,�,�,�,�,� � � � �1�1�1�1�1�1�R�R�R�R�R�R�R�R�R�R�)�)�)�)�)�)�7�7�7�7�7�7�7�7�����������������E�D�D�D�D�D�D�D���������������������w���#�#�#�#�#��������t�4� � � �;�;�;�;�;�;�;�!� �;� ,�O�t�d�K�K�K��|�|�|�|�|�|�|�|�|�|r.
Memory