� ���g����ddlZddlZddlZddlZddlZddlmZejd��ZgZ d�Z da Gd�d��Z dS)�N�)�packetzengineio.clientc���tdd�D]*}|���s|����+tt��rt ||��St j||��S)zdSIGINT handler. Disconnect all active clients and then invoke the original signal handler. N)�connected_clients�is_asyncio_based� disconnect�callable�original_signal_handler�signal�default_int_handler)�sig�frame�clients �d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/engineio/base_client.py�signal_handlerr sy�� $�A�A�A�&� � ���&�&�(�(� � � � � � � ���'�(�(�6�&�s�E�2�2�2��)�#�u�5�5�5�c�d�eZdZgd�ZGd�d��Z dd�Zd �Zdd �Zd �Zd �Z d �Z d�Z dS)� BaseClient)�connectr�messagec��eZdZdZdZdZdZdS)�BaseClient.reasonzDisconnection reasons.zclient disconnectzserver disconnectztransport errorN)�__name__� __module__� __qualname__�__doc__�CLIENT_DISCONNECT�SERVER_DISCONNECT�TRANSPORT_ERROR�rr�reasonr!s%������$�$�/��/��+���rr!FN�Tc �h�|rSt�Ltj��tj��kr$t jtjt ��ai|_d|_d|_ d|_ d|_ d|_ d|_ d|_||_|du|_||_d|_d|_d|_d|_d|_||_|pi|_||_|�|t4j_t;|t<��s||_n�t@|_|jj!tDj#krv|r%|j�$tDj%��n$|j�$tDj&��|j�'tEj(����||_)dS�N� disconnected)*r � threading�current_thread� main_threadr �SIGINTr�handlers�base_url� transports�current_transport�sid�upgrades� ping_interval� ping_timeout�http� external_http� handle_sigint�ws�read_loop_task�write_loop_task�queue�state� ssl_verify�websocket_extra_options�timestamp_requestsr�Packet�json� isinstance�bool�logger�default_logger�level�logging�NOTSET�setLevel�INFO�ERROR� addHandler� StreamHandler�request_timeout) �selfrAr>rK� http_sessionr:r4r;r<s r�__init__zBaseClient.__init__*s��� � D�4�<��(�*�*�i�.C�.E�.E�E�E�&,�m�F�M�4B�'D�'D� #��� ��� ����!%�������� �!��� ��� �� �)��5���*������"���#����� �#�� �$���'>�'D�"��$�"4��� � �!%�F�M� ��&�$�'�'� @� �D�K�K�(�D�K��{� �G�N�2�2��8��K�(�(���6�6�6�6��K�(�(���7�7�7�� �&�&�w�'<�'>�'>�?�?�?�.����rc��dS)NFr �rLs rrzBaseClient.is_asyncio_basedUs���urc�d�����jvrtd�����fd�}|�|S||��dS)a�Register an event handler. :param event: The event name. Can be ``'connect'``, ``'message'`` or ``'disconnect'``. :param handler: The function that should be invoked to handle the event. When this parameter is not given, the method acts as a decorator for the handler function. Example usage:: # as a decorator: @eio.on('connect') def connect_handler(): print('Connection request') # as a method: def message_handler(msg): print('Received message: ', msg) eio.send('response') eio.on('message', message_handler) z Invalid eventc���|�j�<|S�N)r*)�handler�eventrLs ��r� set_handlerz"BaseClient.on.<locals>.set_handlerqs���#*�D�M�%� ��NrN)� event_names� ValueError)rLrUrTrVs`` r�onz BaseClient.onXsc����, ��(� (� (��_�-�-� -� � � � � � � �?�� �� �G�����rc��|jS)z�Return the name of the transport currently in use. The possible values returned by this function are ``'polling'`` and ``'websocket'``. )r-rPs r� transportzBaseClient.transportys �� �%�%rc�"�d|_d|_dSr$)r9r.rPs r�_resetzBaseClient._reset�s��#�� �����rc�$�|�d��}tj�|��}|dkrd}n|dkrd}nt d���|jdvr|dz }d �||j||j|jrd nd |� ��S) z&Generate the Engine.IO connection URL.�/�pollingr2� websocketr5zinvalid transport)�https�wss�szC{scheme}://{netloc}/{path}/?{query}{sep}transport={transport}&EIO=4�&�)�scheme�netloc�path�query�sepr[) �strip�urllib�parse�urlparserXrg�formatrhrj)rL�url� engineio_pathr[� parsed_urlrgs r�_get_engineio_urlzBaseClient._get_engineio_url�s���%�+�+�C�0�0� ��\�*�*�3�/�/� � � � !� !��F�F� �+� %� %��F�F��0�1�1� 1� � � 0� 0� 0� �c�M�F�3�4:�F�!�*�*;�&�j�.>�)�/�7���R�'� 5;�5)�5)� )rc�Z�|jsdSdttj����zS)z.Generate the Engine.IO query string timestamp.rfz&t=)r<�str�timerPs r�_get_url_timestampzBaseClient._get_url_timestamp�s+���&� ��2��s�4�9�;�;�'�'�'�'r)FNr"NTTNTrS) rrrrWr!rNrrYr[r]rtrxr rrrrs�������6�6�6�K�,�,�,�,�,�,�,�,�AB�CG�BF�)/�)/�)/�)/�V�������B&�&�&����)�)�)�*(�(�(�(�(rr) rDr r&rwrmrfr� getLoggerrBrrr rr rr�<module>rzs������� � � � ����� � � � � � � � �������"��"�#4�5�5���� 6� 6� 6���@(�@(�@(�@(�@(�@(�@(�@(�@(�@(r
Memory