
    wi{                         d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZmZ d dlmZ dadada e            ZdefdZdefd	Zdefd
ZdedefdZdee         ddfdZde	eeef         fdZdS )    )Lock)	BaseProxy)DictOptionalTuple)DashboardManager!DashboardManagerConnectionDetails)ignore_keyboard_interruptNreturnc                  "    t           i a t           S )zY
    :return: Dashboard tqdm dict which should be used in a DashboardManager context
    )DASHBOARD_TQDM_DICT     o/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/mpire/dashboard/manager.pyget_dashboard_tqdm_dictr      s    
 " r   c                  "    t           i a t           S )za
    :return: Dashboard tqdm details dict which should be used in a DashboardManager context
    )DASHBOARD_TQDM_DETAILS_DICTr   r   r   get_dashboard_tqdm_details_dictr   !   s    
 #*&(#&&r   c                  :    t           t                      a t           S )zY
    :return: Dashboard tqdm lock which should be used in a DashboardManager context
    )DASHBOARD_TQDM_LOCKr   r   r   r   get_dashboard_tqdm_lockr   +   s    
 ""ffr   manager_port_nrc                    t          j        dt                     t          j        dt                     t          j        dt                     t          d| fd          }|                    t                     |                                a|                                a|                                a	dt          _        | t          _        |S )z
    Start a SyncManager

    :param manager_port_nr: Port number to use for the manager
    :return: SyncManager and hostname
    r   r   r   z	127.0.0.1   mpire_dashboardaddressauthkey)r   registerr   r   r   startr
   r   r   r   $DASHBOARD_MANAGER_CONNECTION_DETAILShostport)r   dms     r   start_manager_serverr$   5   s     79PQQQ?A`aaa79PQQQ 
;"@J\	]	]	]BHH&'''4466"$"D"D"F"F4466 1<(-0?(-Ir   managerc                 p    | |                                   dadadat                                           dS )z[
    Shutdown a DashboardManager
    
    :param manager: DashboardManager to shutdown
    N)shutdownr   r   r   r    clear)r%   s    r   shutdown_manager_serverr)   Q   sF     "&(..00000r   c                     t           t           t          t          fS t          j        dt
                     t          j        dt                     t          j        dt                     t          t          j	        t          j
        fd          } |                                  |                                 a |                                 a|                                 at           t          t          fS )z
    Connect to a DashboardManager and obtain the synchronized tqdm dashboard dicts

    :return: DashboardManager tqdm dict, tqdm details dict, tqdm lock
    Nr   r   r   r   r   )r   r   r   r   r   r   r   r   r    r!   r"   connect)r#   s    r   get_manager_client_dictsr,   `   s     &"$?ATTT 79PQQQ?A`aaa79PQQQ	5:<`<ef"
 
 
B JJLLL4466"$"D"D"F"F4466 ;=PPPr   )multiprocessingr   multiprocessing.synchronizeLockTypemultiprocessing.managersr   typingr   r   r   "mpire.dashboard.connection_classesr   r	   mpire.signalr
   r   r   r   r    r   r   r   intr$   r)   r,   r   r   r   <module>r5      s               8 8 8 8 8 8 . . . . . . ( ( ( ( ( ( ( ( ( ( b b b b b b b b 2 2 2 2 2 2   #    (I'H'J'J $    ' ' ' ' '    # 2B    81X.>%? 1D 1 1 1 1Q%	9i(G"H Q Q Q Q Q Qr   