
    f:                         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        yy)    N)tqdm)
CollectionconnectionsutilityDataType)LocalBulkWriterBulkFileTypec                       e Zd Zd Zy)MilvusEncoderc                    t        |t        j                        r|j                         S t        |t        j                        st        |t        j
                        rt        |      S t        j                  j                  | |      S N)

isinstancenpndarraytolistfloat32float16floatjsonJSONEncoderdefault)selfos     R/opt/lhia/ganansol/python/venv/lib/python3.12/site-packages/milvus_lite/cmdline.pyr   zMilvusEncoder.default   sY    a$88:a$
1bjj(A8O''a00    N)__name__
__module____qualname__r    r   r   r   r      s    1r   r   c                 X    t        | j                  | j                  | j                        S r   )dump_collectiondb_file
collectionpath)argss    r   	dump_funcr&   !   s    4<<$))DDr   c                    t        j                  | t         j                        }|j                  t         j                        }|j	                  t         j
                        dz  }|j                  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   %   s_    ]]9BII>N',,RYY7+22299="D%**2::6Mr   c                 v    t        j                  | t         j                        }t        j                  |      S )Nr(   )r   r+   uint8
unpackbits)packed_bytes
byte_arrays     r   binary_to_int_listr;   -   s%    |288<J==$$r   c                    t        j                  |       j                         st        d| z        t        j                  |      j                  j                         st        d|z        t        j                  d|        t        j                  |      st        d|z        t        |      }|j                  ddg      d	   d   }|j                  j                  }|j                  j                  }|j                  j                   D cg c],  }|j"                  t$        j&                  k(  s!|j                  . }}|j                  j                   D cg c],  }|j"                  t$        j(                  k(  s!|j                  . }	}t+        |j                  |d
t,        j.                        }
|j1                  dg      }t3        |d| d      }	 |j5                         }|s|j7                          n|r
|D ]  }||=  |r$|D ]  }|D ]  }||v st9        ||         ||<    ! |	r'|D ]"  }|	D ]  }||v st;        ||   d	         ||<    $ t=        j>                  t=        j@                  |tB                    }|D ]  }|
jE                  |        |jG                  tI        |             |
jK                          tM        d|z         y c c}w c c}w )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   i    )schema
local_pathsegment_size	file_type*zDump collection z's data)totaldesc)clszDump collection %s success)'pathlibPathis_fileRuntimeErrorparentis_dirr   connectr   has_collectionr   queryprimary_fieldauto_idnamer@   fieldsr)   r   BFLOAT16_VECTORBINARY_VECTORr   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fieldbfloat16_fields
bin_fieldswriteritprogress_barrowsrowrS   s                   r   r!   r!   2   s   << ((*3g=>><<$$++-RUYYZZ	w/!!/26HIIO,J!!"ZL!A!DZPJ&&..G&&++G/9/@/@/G/Gse5;;ZbZrZrKruzzsOs*4*;*;*B*BlekkU]UkUkFk%**lJl$$&"''	F 
	"	"#	"	7Bj1A/ARRY/Z[L
wwyHHJ !L! C+ CDs{$7D	$BD	CC
  E& EDs{$6s4y|$DD	EE
 zz$**T}=> 	#Cc"	#CI&/ 0 MMO	
&
89K tls   "K3K"K>Kc                     t        j                  d      } | j                  d      }|j                  dd      }|j	                  dd	t
        d
       |j	                  ddt
        d       |j	                  ddt
        d       |j                  t               | j                         }t        |d      r|j                  |       y | j                          y )Nzmilvus-lite)progzmilvus-lite command line tool.)descriptiondumpzmilvus-lite dump cmd)helpz-dz	--db-filezmilvus lite db file)typerr   z-cz--collectionz!collection that need to be dumpedz-pz--pathzdump file storage path)funcrt   )argparseArgumentParseradd_subparsers
add_parseradd_argumentstrset_defaultsr&   
parse_argshasattrrt   
print_help)parser
subparsersdump_cmdr%   s       r   mainr   i   s    $$-8F&&3S&TJ$$V2H$IH$#<QR$S?bc$s9QRy)DtV		$r   __main__)ru   rH   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`         ? ? >1D$$ 1E%
4:n" zF r   