
    jQ                        d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	ej
                            ej
                            ej
                            e                    d          Z ej                    Z G d d          ZdS )    )ListOptionalNlibc                       e Zd ZdZdZddedee         fdZdefdZ	e
d	             Ze
d
             Ze
d             Ze
d             ZdefdZd Zd ZdS )Serverz 
    The milvus-lite server
    milvusNdb_fileaddressc                 X   t           j                            d          <t          j        t           j        d                                                   | _        n0t          j        t                                                    | _        t          j        |                                          | _        t          j
        d| j        j                  st          d| j        j         d          t          | j        j                  dk    rt          d| j        j         d          | j        j        | _        || _        d| _        t%          j                     d	| j        j         d
| _        t+          | j        j        d| j        j         dz            | _        d| _        dS )a  
        Args:
            db_file (str):
               The local file to store data.
            address (address, optional):
               grpc server address, example: localhost:19530,
               if not set, the MilvusLite service will use UDS.
        BIN_PATHNz^[a-zA-Z0-9.\-_]+$zUnsupport db name z(, the name must match ^[a-zA-Z0-9.\-_]+$$   zDb name z$ is too long, should be less than 36_z.sock.z.lock)osenvirongetpathlibPathabsolute	_bin_pathr   _db_filerematchnameRuntimeErrorlenparent	_work_dir_address_ptempfilemktemp	_uds_pathstr
_lock_path_lock_fd)selfr	   r
   s      \/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/milvus_lite/server.py__init__zServer.__init__$   s]    :>>*%%1$\"*Z*@AAJJLLDNN$\(33<<>>DNW--6688x-t}/ABB 	sqDM4Fqqqrrrt}!""R''b$-*<bbbccc-$O--II0BIIIdm25R9K5R5R5RRSS    returnc                     | j                                         st                              d           dS | j                                        s t                              d| j                   dS )NzBin path not existsFzDir %s not existT)r   existsloggererrorr   r'   s    r(   initzServer.init=   sb    ~$$&& 	LL.///5~$$&& 	=LL+T^<<<tr*   c                 0    t          | j        dz            S )Nr   )r$   r   r0   s    r(   
milvus_binzServer.milvus_binE   s    4>H,---r*   c                 B    t           j                            dd          S )N	LOG_LEVELERROR)r   r   r   r0   s    r(   	log_levelzServer.log_levelI   s    z~~k7333r*   c                     d| j          S )Nzunix:)r#   r0   s    r(   uds_pathzServer.uds_pathM   s    't~'''r*   c                     | j         | j        | j        | j         | j        gS | j        | j        | j        | j        | j        gS N)r   r3   r   r7   r9   r%   r0   s    r(   argszServer.argsQ   s<    =$OT]DM4>RRt~t__r*   c                 l   | j         
J d            t          | j        d          | _        	 t	          j        | j        t          j        t          j        z             t          j	        | j
        t          | j                  t          | j                  dt          | j                            | _         	 | j                             d           t                              d           dS # t          j        $ r Y dS w xY w# t$          $ r$ t                              d	| j                   Y dS w xY w)
NzServer already starteda)LD_LIBRARY_PATHDYLD_LIBRARY_PATH)r<   envcwdg      ?zStart milvus-lite failedFTz;Open %s failed, the file has been opened by another program)r    openr%   r&   fcntllockfLOCK_EXLOCK_NB
subprocessPopenr<   r$   r   r   waitr.   r/   TimeoutExpiredBlockingIOErrorr   r0   s    r(   startzServer.startW   s+   w 8T_c22	Ku}u}'DEEE &Y'*4>':':),T^)<)<  ''  DGS!!!7888u,   tt 	 	 	LLVX\Xefff55	s0   BD 94C/ /D>D DD *D32D3c                 d   | j         rDt          j        | j         t          j                   | j                                          d | _         | j        d | _        	 t          j        | j                   n# t          $ r Y nw xY w	 t          j        | j
                   d S # t          $ r Y d S w xY wr;   )r&   rD   flockLOCK_UNcloser    r   unlinkr#   FileNotFoundErrorr%   r0   s    r(   stopzServer.stopo   s    = 	!Ku}555M!!! DM7DG	Idn%%%%  	 	 	D		Ido&&&&&  	 	 	DD	s$   A5 5
BBB! !
B/.B/c                 .    |                                   d S r;   )rT   r0   s    r(   __del__zServer.__del__   s    		r*   r;   )__name__
__module____qualname____doc__
MILVUS_BINr$   r   r)   boolr1   propertyr3   r7   r9   r<   rM   rT   rV    r*   r(   r   r      s         J  hsm    2d     . . X. 4 4 X4 ( ( X( ` ` X`
t    0  $    r*   r   )typingr   r   r!   r   rH   r   loggingrD   r   pathjoindirnameabspath__file__r   	getLoggerr.   r   r^   r*   r(   <module>rg      s    " ! ! ! ! ! ! !  				        				 7<<(A(ABBEJJ 
			e e e e e e e e e er*   