
    f                     x    d dl mZ d dlZd dlZd dlZd dlmZ  ej                         Z G d d      Z	 e	       Z
y)    )OptionalN)Serverc                   B    e Zd Zd Zd	dedee   fdZdefdZd Zd Z	y)
ServerManagerc                 D    t        j                         | _        i | _        y N)	threadingLock_lock_serversselfs    Y/opt/lhia/ganansol/python/venv/lib/python3.12/site-packages/milvus_lite/server_manager.py__init__zServerManager.__init__   s    ^^%
    Npathreturnc                 2   t        j                  |      j                         j                         }| j                  5  t        |      | j                  vrt        t        |      |      }|j                         s
	 d d d        y || j                  t        |      <   | j                  t        |         j                         st        j                  d       	 d d d        y | j                  t        |         j                  cd d d        S # 1 sw Y   y xY w)NzStart local milvus failed)pathlibPathabsoluteresolver   strr   r   initstartloggererroruds_path)r   r   argsss       r   start_and_get_urizServerManager.start_and_get_uri   s    ||D!**,446ZZ 		54y-3t9d+vvx			5 		5
 ,-c$i(}}SY/557LL!<=		5 		5 ==T+44		5 		5 		5s   >DAD"!DDc                    t        j                  |      j                         j                         }| j                  5  t        |      | j                  vr)t        j                  dt        |             	 d d d        y | j                  t        |         j                          | j                  t        |      = d d d        y # 1 sw Y   y xY w)NzNo local milvus in path %s)
r   r   r   r   r   r   r   r   warningstop)r   r   s     r   release_serverzServerManager.release_server*   s    ||D!**,446ZZ 	)4y-;SYG	) 	) MM#d)$))+c$i(	) 	) 	)s   8C?<CCc                 p    | j                   j                         D ]  }|j                           i | _         y r   )r   valuesr$   )r   r    s     r   release_allzServerManager.release_all3   s.    %%' 	AFFH	r   c                 f    | j                   5  | j                          d d d        y # 1 sw Y   y xY wr   )r   r(   r   s    r   __del__zServerManager.__del__8   s*    ZZ 		 	 	s   '0r   )
__name__
__module____qualname__r   r   r   r!   r%   r(   r*    r   r   r   r      s4    5c 5# 5)3 )
r   r   )typingr   r	   loggingr   milvus_lite.serverr   	getLoggerr   r   server_manager_instancer.   r   r   <module>r4      s=        % 
			" "J (/ r   