
    j:                         d dl Z d dlZd dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZmZ  G d dej                  Zd Zd Zd	 Zd
 Zd Zedk    r e             dS dS )    N)tqdm)
CollectionconnectionsutilityDataType)LocalBulkWriterBulkFileTypec                       e Zd Zd ZdS )MilvusEncoderc                 $   t          |t          j                  r|                                S t          |t          j                  st          |t          j                  rt          |          S t          j        	                    | |          S N)

isinstancenpndarraytolistfloat32float16floatjsonJSONEncoderdefault)selfos     ]/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/milvus_lite/cmdline.pyr   zMilvusEncoder.default   so    a$$ 	88::a$$ 	
1bj(A(A 	88O''a000    N)__name__
__module____qualname__r    r   r   r   r      s#        1 1 1 1 1r   r   c                 B    t          | j        | j        | j                  S r   )dump_collectiondb_file
collectionpath)argss    r   	dump_funcr&   !   s    4<$)DDDr   c                    t          j        | t           j                  }|                    t           j                  }|                    t           j                  dz  }|                    t           j                  }|S )Ndtype   )r   
frombufferuint16viewastypeuint32r   )	byte_databfloat16_arraybfloat16_as_uint16float32_as_uint32float32_arrays        r   bfloat16_to_float32r5   %   sd    ]9BI>>>N',,RY77+2229=="D%**2:66Mr   c                 j    t          j        | t           j                  }t          j        |          S )Nr(   )r   r+   uint8
unpackbits)packed_bytes
byte_arrays     r   binary_to_int_listr;   -   s(    |28<<<J=$$$r   c                 *   t          j        |                                           st          d| z            t          j        |          j                                        st          d|z            t          j        d|            t          j	        |          st          d|z            t          |          }|                    ddg          d	         d         }|j        j        }|j        j        }d
 |j        j        D             }d |j        j        D             }t#          |j        |dt$          j                  }	|                    dg          }
t+          |d| d          }	 |
                                }|s|
                                 n|r|D ]}||= |r&|D ]#}|D ]}||v rt1          ||                   ||<   $|r,|D ])}|D ]$}||v rt3          ||         d	                   ||<   %*t5          j        t5          j        |t:                              }|D ]}|	                    |           |                    tA          |                     |	!                                 tE          d|z             d S )Nzdb_file: %s not existsz4dump path(%s)'s parent dir not exists: %s not existsr   )urizCollection: %s not exists zcount(*))output_fieldsr   c                 F    g | ]}|j         t          j        k    |j        S r   )r)   r   BFLOAT16_VECTORname.0fields     r   
<listcomp>z#dump_collection.<locals>.<listcomp>A   s*    ssse5;ZbZrKrKruzKrKrKrr   c                 F    g | ]}|j         t          j        k    |j        S r   )r)   r   BINARY_VECTORrB   rC   s     r   rF   z#dump_collection.<locals>.<listcomp>B   s*    lllekU]UkFkFk%*FkFkFkr   i    )schema
local_pathsegment_size	file_type*zDump collection z's data)totaldescT)clszDump collection %s success)#pathlibPathis_fileRuntimeErrorparentis_dirr   connectr   has_collectionr   queryprimary_fieldauto_idrB   rI   fieldsr   r	   JSONquery_iteratorr   nextcloser5   r;   r   loadsdumpsr   
append_rowupdatelencommitprint)r"   collection_namer$   r#   
total_rowsis_autopk_namebfloat16_fields
bin_fieldswriteritprogress_barrowsrowrB   s                  r   r!   r!   2   s   <  ((** ?3g=>>><$++-- [RUYYZZZ	w////!/22 J6HIIIO,,J!!"ZL!AA!DZPJ&.G&+Gssz/@/GsssOll**;*BlllJ$&"'	  F 
	"	"#	"	7	7Bj/Z//Z/Z/Z[[[L'wwyy 	HHJJJ 	! ! !LL 	C C C+ C CDs{{$7D	$B$BD	C  	E E E& E EDs{{$6s4y|$D$DD	E z$*T}===>> 	# 	#Cc""""CII&&&/'0 MMOOO	
&
899999r   c                     t          j        d          } |                     d          }|                    dd          }|                    dd	t
          d
           |                    ddt
          d           |                    ddt
          d           |                    t                     |                                 }t          |d          r|
                    |           d S |                                  d S )Nzmilvus-lite)progzmilvus-lite command line tool.)descriptiondumpzmilvus-lite dump cmd)helpz-dz	--db-filezmilvus lite db file)typerw   z-cz--collectionz!collection that need to be dumpedz-pz--pathzdump file storage path)funcry   )argparseArgumentParseradd_subparsers
add_parseradd_argumentstrset_defaultsr&   
parse_argshasattrry   
print_help)parser
subparsersdump_cmdr%   s       r   mainr   i   s   $-888F&&3S&TTJ$$V2H$IIH$#<QRRR$S?bccc$s9QRRRy)))DtV 		$r   __main__)rz   rQ   r   r   numpyr   pymilvusr   r   r   r   pymilvus.bulk_writerr   r	   r   r   r&   r5   r;   r!   r   r   r   r   r   <module>r      s                ? ? ? ? ? ? ? ? ? ? ? ? > > > > > > > >1 1 1 1 1D$ 1 1 1E E E  % % %
4: 4: 4:n  " zDFFFFF r   