�
���g_ � �` � d dl Z d dlZd dlmZmZ ej d� � Z G d� d� � ZdS )� N)�bidict�ValueDuplicationError�socketioc �v � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
dd
�Zd� Zd� Zd� Zd� Zd� ZdS )�BaseManagerc �Z � d | _ d | _ i | _ i | _ i | _ i | _ d S �N)�logger�server�rooms�
eio_to_sid� callbacks�pending_disconnect��selfs �e/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/socketio/base_manager.py�__init__zBaseManager.__init__
s3 � ���������
�������"$����� c � � || _ d S r )r )r r s r �
set_serverzBaseManager.set_server s
� �����r c � � dS )zqInvoked before the first request is received. Subclasses can add
their initialization code here.
N� r s r �
initializezBaseManager.initialize s � �
�r c �4 � | j � � � S )z3Return an iterable with the active namespace names.)r �keysr s r �get_namespaceszBaseManager.get_namespaces s � ��z��� � � r c # �� K � | j � |i � � }t |d� � rzt |t � � se|d |v r%||d j � � � ni }|dd� D ](}|� ||v r
|| j ni � � �)n%||v r|| j � � � ni }|� � � E d{V �� dS )z:Return an iterable with the active participants in a room.�__len__r � N) r �get�hasattr�
isinstance�str�_fwdm�copy�update�items)r � namespace�room�ns�participants�rs r �get_participantszBaseManager.get_participants s � � � �
�Z�^�^�I�r�
*�
*���4��#�#� G�J�t�S�,A�,A� G�7;�A�w�"�}�}�2�d�1�g�;�,�1�1�3�3�3�"�L��!�"�"�X�
D�
D���#�#�1��7�7�B�q�E�K�K��C�C�C�C�
D� 59�B�J�J�2�d�8�>�.�.�0�0�0�B�L��%�%�'�'�'�'�'�'�'�'�'�'�'r c �� � | j j � � � } | � ||d|�� � n# t $ r Y dS w xY w| � ||||�� � |S )z,Register a client connection to a namespace.N)�eio_sid)r �eio�generate_id�basic_enter_roomr )r r/ r( �sids r �connectzBaseManager.connect* s� � ��k�o�)�)�+�+�� ��!�!�#�y�$��!�H�H�H�H��$� � � ��4�4� ����
���c�9�c�7��C�C�C��
s �: �
A�Ac � � || j v r|| j | v rdS | j | d | d uS # t $ r Y nw xY wdS )NF)r r �KeyError�r r3 r( s r �is_connectedzBaseManager.is_connected5 sn � ���/�/�/��t�.�y�9�9�9��5� ��:�i�(��.�s�3�4�?�?��� � � ��D� �����us �7 �
A�Ac �b � | j | d j | S # t $ r Y d S w xY wr )r �_invmr6 )r r/ r( s r �sid_from_eio_sidzBaseManager.sid_from_eio_sid@ sC � � ��:�i�(��.�4�W�=�=��� � � ��D�D� ���s � �
.�.c �d � || j v r&| j | d � |� � S d S r )r r r7 s r �eio_sid_from_sidzBaseManager.eio_sid_from_sidF s7 � ���
�"�"��:�i�(��.�2�2�3�7�7�7� #�"r c � � || j vr
g | j |<