
    j.              
          d dl Z d dlZd dl mZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlZd dlmZmZ d dlmZ ddlmZmZ ddlmZ d	Zd
Zg dZg dZddgZg dZdefdZdefdZde fdZ!	 	 d6de dee"         de
e         de fdZ#	 	 d6dee"         dee"         de
e         de fdZ$	 	 d6de j         dee"         de
e         de fdZ%de	de&fd Z'd!ede fd"Z(d#ede	fd$Z)d#efd%Z*d#efd&Z+d'e,fd(Z-d)ee.e,f         de,fd*Z/ G d+ d,          Z0ee e"f         Z1erd d-l2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: eeee1eee e"f                  f                  d.d/d0d1d2d3d4d5f	         Z;dS )7    N)	timedelta)TYPE_CHECKINGAnyDictIterableListOptionalTupleUnion)MilvusException
ParamError)Status   )LOGICAL_BITSLOGICAL_BITS_MASK)DataTypemilvuszilliz)GPU_IVF_FLAT
GPU_IVF_PQFLATIVF_FLATIVF_SQ8IVF_PQHNSWBIN_FLATBIN_IVF_FLATDISKANN	AUTOINDEX	GPU_CAGRAGPU_BRUTE_FORCE)nlistmnbitsMefConstructionPQMn_treesintermediate_graph_degreegraph_degree
build_algocache_dataset_on_devicer   r   )JACCARDHAMMINGTANIMOTOSUBSTRUCTURESUPERSTRUCTUREstatusc                 r    | j         dk    s| j        dk    r t          | j         | j        | j                  d S Nr   )code
error_coder   reasonr2   s    _/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/pymilvus/client/utils.pycheck_statusr:   =   s=    {a6,11fk6=&:KLLL 21    c                 .    | j         dk    o
| j        dk    S r4   )r5   r6   r8   s    r9   is_successfulr=   B   s    ;!6 1Q 66r;   tsc                      | t           z	  }|dz  S )N     @@)r   )r>   physicals     r9   hybridts_to_unixtimerB   F   s    \!Hfr;           hybridtsmillisecondsdeltareturnc                    t          |t          t          f          st          d          t          |t          j                  r||j        dz  z  }n|t          d          t          | t                    st          d          | t          z  }| t          z	  }t          t          ||z             t          z  |z             S )N5parameter milliseconds should be type of int or floatmessager@   4parameter delta should be type of datetime.timedeltaz(parameter hybridts should be type of int)	
isinstanceintfloatr   datetimer   microsecondsr   r   )rD   rE   rF   logicalrA   s        r9   mkts_from_hybridtsrS   K   s    
 lS%L11 _&]^^^^%+,, ^*V33		&\]]]]h$$ R&PQQQQ**G<'HH|+,,<GHHHr;   epochc                    t          | t          t          f          st          d          t          |t          t          f          st          d          t          |t          j                  r||j        dz  z  }n|t          d          | |dz  z  } t          | dz  dz            }t          |t          z            S )Nz.parameter epoch should be type of int or floatrJ   rI   r@   rL   i  r   )rM   rN   rO   r   rP   r   rQ   r   )rT   rE   rF   	int_msecss       r9   mkts_from_unixtimerW   a   s    
 ec5\** X&VWWWWlS%L11 _&]^^^^%+,, ^*V33		&\]]]]	\F""EEDLA%&&IyL()))r;   d_timec                     t          | t          j                  st          d          t          |                                 ||          S )Nz4parameter d_time should be type of datetime.datetimerJ   )rE   rF   )rM   rP   r   rW   	timestamp)rX   rE   rF   s      r9   mkts_from_datetimer[   v   sN    
 fh/00 ^&\]]]]f..00|SXYYYYr;   entitiesc                 t   | D ]}|d         t           j        k    rt          |d         t                    st	          |d                   dk    r dS t	          |d         d                   dz  }|dk    r dS |d         D ]5}t	          |          dz  |k    r  dS t          |t
                    s  dS 6dS )Ntypevaluesr   F   T)r   BINARY_VECTORrM   listlenbytes)r\   entitydimr_   s       r9   check_invalid_binary_vectorrg      s     ! !&>X333fX.55 #fX>N:O:OST:T:TuufX&q)**Q.Caxxuu * ! !v;;?c)) 555!&%00 ! 555!4r;   
field_datac                    |                      d          r| j                             d          rt          | j        j        j                  S | j                             d          rt          | j        j        j                  S | j                             d          rt          | j        j        j                  S | j                             d          rt          | j        j        j                  S | j                             d          rt          | j        j        j                  S | j                             d          rt          | j        j	        j                  S | j                             d          rt          | j        j
        j                  S | j                             d	          rt          | j        j        j                  S | j                             d
          rt          | j        j        j                  S t          d          |                      d          r| j        j        }| j                             d          rOt          | j        j        j                  }||z  dk    rt          d| d|           t#          ||z            S | j                             d          s| j                             d          r| j                             d          rt          | j        j                  nt          | j        j                  }d}|||z  z  dk    rt          d| d|           t#          |||z  z            S | j                             d          rt          | j        j        j                  S t          | j        j                  }t#          ||dz  z            S t          d          )Nscalars	bool_dataint_data	long_data
float_datadouble_datastring_data
bytes_data	json_data
array_datazUnsupported scalar typerJ   vectorsfloat_vectorr   z!Invalid vector length: total_len=z, dim=bfloat16_vectorfloat16_vector   z5Invalid bfloat16 or float16 vector length: total_len=sparse_float_vectorr`   zUnknown data type)HasFieldrj   rc   rk   datarl   rm   rn   ro   rp   rq   rr   rs   r   rt   rf   ru   rN   rv   rw   ry   contentsbinary_vector)rh   rf   	total_lendata_wide_in_bytess       r9   len_ofr      s   9%% A&&{33 	:z)38999&&z22 	9z)27888&&{33 	:z)38999&&|44 	;z)49:::&&}55 	<z)5:;;;&&}55 	<z)5:;;;&&|44 	;z)49:::&&{33 	:z)38999&&|44 	;z)49:::&?@@@@9%% * $&&~66 	(J.;@AAI3!##%V	VVQTVV    y3'''&&'899 	?Z=O=X=X>
 >
 	?
 %../@AA<J&6777+:;; 
 "#C"445::%jT]jjehjj    yC*<$<=>>>&&'<== 	Hz)=FGGG
*899	9a()))
"5
6
6
66r;   fields_infoc           	         i d d }}}t          |           D ]\  }}d}d}|                    dd          r|}d}|                    dd          r|}|d         }	|||	<   |                    dd          rd}t          |          D ]o\  }
}|r|	|v rt          d|	 d|
 d	
          #|r|	|v rt          d|	 d|
 d	
          |                    |	d           }|t          d|	 d|
 d	
          p|t          d
          |||fS )NFauto_idT
is_primaryname
is_dynamiczauto id enabled, z shouldn't in entities[]rJ   zdynamic field enabled, zField z don't match in entities[zprimary key not found)	enumerategetr   )r   r\   locationprimary_key_locauto_id_locifield
is_auto_idr   
field_namejre   values                r9   traverse_rows_infor      s   -/t{oHk**  ]  ]5

99Y&& 	KJ99\5)) 	 O6]
 99\5)) 	J"8,, 	] 	]IAv ''$ [J [ [WX [ [ [     jF22 ]j]]YZ]]]    JJz400E} )[*)[)[WX)[)[)[\\\\ 	]$ !89999_k11r;   c                     i d d }}}t          |           D ]A\  }}|                    dd          r|}|                    dd          r|}6|||d         <   B|||fS )Nr   Fr   r   r   r   )r   r   r   r   r   r   s         r9   traverse_infor      s    -/t{oHk** $ $599\5)) 	 O99Y&& 	K"#v_k11r;   c                     i d }}t          |           D ](\  }}|                    dd          r|}|||d         <   )||fS )Nr   Fr   r   )r   r   r   r   r   s        r9   traverse_upsert_infor     s]     "DoHk** $ $599\5)) 	 O"#v_$$r;   hostc                 t    t          | t                    rd|                                 v rt          nt          S )Nr   )rM   strlowerZILLIZMILVUS)r   s    r9   get_server_typer     s-     s++UDJJLL0H0H66vUr;   vc                 r    t          | t                    rt          j        |           nt	          |           S N)rM   dictujsondumpsr   )r   s    r9   r   r     s)    '400<5;q>>>c!ff<r;   c                       e Zd ZdZdZdZed             Zedefd            Z	edefd            Z
edefd            ZdS )SciPyHelperFc                 p   | j         rd S t          j                            d          }|t          j                            d          }|ct          j                            |          }|j                            |           t          |d          | _        t          |d          | _	        d| _         d S )Nscipyzscipy.sparse
csr_matrix	csr_arrayT)
_checked	importlibutil	find_specmodule_from_specloaderexec_modulehasattr_matrix_available_array_available)cls
scipy_specsparse_specscipy_sparses       r9   _initzSciPyHelper._init'  s    < 	F^--g66
! $.22>BBK&(~>>{KK"..|<<< )0l(K(K% (/|['I'I$r;   r{   c                 ^    |                                   | j        sdS ddlm}  ||          S )NFr   )
isspmatrix)r   r   scipy.sparser   )r   r{   r   s      r9   is_spmatrixzSciPyHelper.is_spmatrix<  sA    		$ 	5++++++z$r;   c                 z    |                                   | j        sdS ddlm}m}  ||          o ||           S )NFr   )issparser   )r   r   r   r   r   )r   r{   r   r   s       r9   
is_sparrayzSciPyHelper.is_sparrayE  sW    		# 	555555555x~~6jj&6&6"66r;   c                 V    |                      |          p|                     |          S r   )r   r   )r   r{   s     r9   is_scipy_sparsezSciPyHelper.is_scipy_sparseN  s%    t$$<t(<(<<r;   N)__name__
__module____qualname__r   r   r   classmethodr   r   r   r   r    r;   r9   r   r     s        H   [(  s       [  7c 7 7 7 [7 =3 = = = [= = =r;   r   )	bsr_array	coo_array	csc_arrayr   	dia_array	dok_array	lil_arrayspmatrixr   r   r   r   r   r   r   r   )rC   N)<rP   importlib.utilr   r   typingr   r   r   r   r   r	   r
   r   r   pymilvus.exceptionsr   r   pymilvus.grpc_gen.common_pb2r   	constantsr   r   typesr   r   r   valid_index_typesvalid_index_params_keysvalid_binary_index_typesvalid_binary_metric_typesr:   r=   rN   rB   rO   rS   rW   r[   boolrg   r   r   r   r   r   r   r   r   r   SparseRowOutputTyper   r   r   r   r   r   r   r   r   SparseMatrixInputTyper   r;   r9   <module>r      sZ              S S S S S S S S S S S S S S S S S S S S  ; ; ; ; ; ; ; ; / / / / / / 6 6 6 6 6 6 6 6      		         
   M M M M M
7& 7 7 7 7S     "%!%I II,I II 		I I I I0 "%!%* *<*,* I* 		* * * *. "%!%Z ZZ,Z IZ 		Z Z Z Z$ 4    $<7s <7s <7 <7 <7 <7~)2C )24 )2 )2 )2 )2X2s 2 2 2 2%c % % % %V# V V V V=U49 =# = = = =1= 1= 1= 1= 1= 1= 1= 1=n 3:&   
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	& U3:&')	
    r;   