
    LKi\                        S SK r S SKrS SKJr  S SKrS SKrS SKJrJrJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  S SKrS SKrS SKJrJr  S SKJrJr  S SKJr  S S	KJr  S SKJ s  J!s  Jr  S SK"J s  J!s  J#r#  S S
KJ$r$  S SK%J&r&J'r'J(r(  S SK)J*r*J+r+J,r,J-r-J.r.  S SK/r/S SK0J1r2  S SK3J4r4  S SK5r6S SK7r7\/ \4   r8S\/Rr                  ;   a  \" SSSSSSS\7Rt                  " 5       S9/O\" SSSSSSS\7Rt                  " 5       S9/r;\Rx                  " S\;S9S\Rz                  S\\SS4   4S j5       r>\R~                  " \R                  " S\R                  " S5      SSS9SS9rB\R                  S\R                  S\
\R                  \R                  4   4S  j5       rG\" \R                  " \G" 5       S!S" S# 4S$9S%9S&\S'\	\
\R                  \R                  4      SS4S( j5       rIS&\SS4S) jrJS&\S*\KS+\R                  S,\SS4
S- jrLS. rM " S/ S0\&5      rNS1rO " S2 S3\(5      rPS4\R                  S&\SS4S5 jrRS4\R                  S&\SS4S6 jrSS&\SS4S7 jrTS4\R                  S&\SS4S8 jrUg)9    N)
Connection)	GeneratorCallableListTuplecast)UUID)given)	ClientAPI	ServerAPI)SettingsSystem)VectorReader)LocalSegmentManager)hashing_embedding_function)EmbeddingStateMachineStatestraceEmbeddingStateMachineBase)run_state_machine_as_testruleprecondition
initializeMultipleResults)Client)DefaultEmbeddingFunctionCHROMA_RUST_BINDINGS_TEST_ONLYz!chromadb.api.rust.RustBindingsAPIz chromadb.db.impl.sqlite.SqliteDBz7chromadb.segment.impl.manager.local.LocalSegmentManagerT)chroma_api_implchroma_sysdb_implchroma_producer_implchroma_consumer_implchroma_segment_manager_implallow_resetis_persistentpersist_directoryzchromadb.api.segment.SegmentAPImodule)scopeparamsrequestreturnc              #   (   #    U R                   v   g 7fN)param)r(   s    e/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/chromadb/test/property/test_persist.pysettingsr.   D   s     
--s   
   with_hnsw_paramswith_persistent_hnsw_paramsmax_hnsw_batch_sizemax_hnsw_sync_thresholdcoll)keydrawc           	          U " [         R                  " S[        R                  " S5      SSS95      nU " [         R                  " [        R                  " U5      5      5      nX4$ )NTr/   r0   )
strategiescollectionsstjust
recordsets)r7   
collection	recordsets      r-   !collection_and_recordset_strategyr@   V   sY     !(* "$&	
J Z**277:+>?@I         c                      U S   R                   $ Nr   namexs    r-   <lambda>rI   k   s    QqTYYrA   c                      U S   R                   $ rD   rE   rG   s    r-   rI   rI   k   s    !A$))rA   )min_size	unique_by)#collection_and_recordset_strategiesr.   rM   c                 
   [        U 5      nUR                  5         [        R                  " U5      nUR	                  5         U H  u  nnUR                  UR                  UR                  UR                  S9nUR                  " S0 UD6  [        R                  " Xe5        [        R                  " Xe5        [        R                  " Xe5        [        R                  " Xe5        [        R                  " UUUR                  S9  M     UR!                  5         AA[        U 5      nUR                  5         [        R                  " U5      nU H  u  nnUR#                  UR                  UR                  S9n[        R                  " Xe5        [        R                  " Xe5        [        R                  " Xe5        [        R                  " Xe5        [        R                  " UUUR                  S9  M     UR!                  5         AAg )NrF   metadataembedding_function)rQ   rF   rQ    )r   startClientCreatorfrom_systemresetcreate_collectionrF   rP   rQ   add
invariantscountmetadatas_matchdocuments_match	ids_matchann_accuracystopget_collection)	r.   rM   system_1client_1collection_strategyrecordset_strategyr5   system_2client_2s	            r-   test_persistrh   g   s    hHNN((2HNN 
-	))$))(112EE * 
 	&%&2""4<""4<T62EE	
 
-& MMOhHNN((2H
 
-	&&$))2EE ' 
 	2""4<""4<T62EE	
 
- MMOrA   c                   ^ [        U 5      nUR                  5         [        R                  " U5      nUR	                  SSSS.S9nUR                  [        5      nUR                  UR                  [        5      mS[        4U4S jjnU" 5       nUR                  SS/S	/S
//S9  U" 5       U:X  d   eU" 5       nUR                  S/S//S9  U" 5       U:  d   eU" 5       nUR                  / SQS	/S
/S//S9  U" 5       U:  d   eU" 5       nUR                  S/S//S9  UR                  SS/S	/S
//S9  U" 5       U:  d   eU" 5       nUR                  S/S//S9  UR                  SS/S	/S
//S9  U" 5       U:  d   eU" 5       ng )Ntest   )hnsw:batch_sizehnsw:sync_threshold)rF   rP   r)   c                     > [         R                  " S5         [        R                  R	                  T R                  5       5      $ ! [         a     gf = f)Ng?)timesleepospathgetmtime_get_metadata_fileFileNotFoundError)segments   r-   get_index_last_modified_at7test_sync_threshold.<locals>.get_index_last_modified_at   sC    

3	77##G$>$>$@AA  		s   ,A 
AA12      ?       @)ids
embeddings3      @)rz   r{   r   4      @5      @)r   rT   rU   rV   rX   instancer   get_segmentidr   floatrY   upsert)r.   systemclientr>   managerrx   last_modified_atrw   s          @r-   test_sync_thresholdr      s   HF
LLN&&v.F))!AN * J oo12G!!*-->G  23NNSzusenN= &'+;;;;13 NNu3%N1 &'*::::13 /usecU6KL &'*::::13 NNu3%N13*3%#@ &'*::::13 NNu3%N1NNSzusenN= &'*::::13rA   collection_name
record_setconnc                     [        U 5      nUR                  5         [        R                  " U5      nUR	                  U[
        R                  " 5       S9n[        R                  " Xb5        [        R                  " Xb5        [        R                  " Xb5        [        R                  " Xb5        [        R                  " Xb5        UR                  5         g ! [         a  nUR                  U5        UeS nAff = f)NrR   )r   rT   rU   rV   ra   r9   "not_implemented_embedding_functionrZ   r[   r\   r]   r^   r_   r`   	Exceptionsend)r.   r   r   r   r   r   r5   es           r-   load_and_checkr      s    !**62$$ )LLN % 
 	*""44""44T.1 		!s   CC 
C7C22C7c                       [         R                  " S5      n U R                  S/5        U $ ! [         a    [         R                  " S5      s $ f = f)N
forkserverchromadbspawn)multiprocessingget_contextset_forkserver_preloadr   )ctxs    r-   get_multiprocessing_contextr     sP    
4 )),7 	""J<0
 4**7334s   ),  AAc                       \ rS rSrSrSrg)#PersistEmbeddingsStateMachineStatesi  persistrS   N)__name__
__module____qualname____firstlineno__r   __static_attributes__rS   rA   r-   r   r     s    GrA   r      c                      ^  \ rS rSrS\S\4U 4S jjr\" \S9S\	R                  4S j5       r\" S 5      \" 5       SS j5       5       rS\S	S
4U 4S jjrSS jrSrU =r$ )PersistEmbeddingsStateMachinei  r   r.   c                    > Xl         X l        [        U l        U R                   R	                  5         [
        TU ]  U R                   5        g r+   )r   r.    MIN_STATE_CHANGES_BEFORE_PERSIST(min_state_changes_left_before_persistingrW   super__init__)selfr   r.   	__class__s      r-   r   &PersistEmbeddingsStateMachine.__init__  s6     8X5%rA   r>   r>   c                 b   U R                   R                  5         U R                   R                  UR                  UR                  UR
                  S9U l        UR
                  U l        [        S5        U R                  [        R                  5        [        R                  " / / / / S9U l        g )NrO   init)r~   	metadatas	documentsr   )r   rW   rX   rF   rP   rQ   r>   r   on_state_changer   r   r9   StateMachineRecordSetrecord_set_state)r   r>   s     r-   r   (PersistEmbeddingsStateMachine.initialize!  s    ++77(()<< 8 

 #-"?"?f8CCD * @ @bB2!
rA   c                 d    [        U R                  S   5      S:  =(       a    U R                  S:*  $ )Nr~   rB   r   )lenr   r   r   s    r-   rI   &PersistEmbeddingsStateMachine.<lambda>2  s1    S..u56!; ?99Q>?rA   r)   Nc                    U R                  [        R                  5        U R                  R                  n[
        R                  " 5       u  p#[        5       nUR                  [        U R                  XR                  U4S9nUR                  5         UR                  5         UR                  5       (       a  UR                  5       nUeUR!                  5         g )N)targetargs)r   r   r   r>   rF   r   Piper   Processr   r.   r   rT   joinpollrecvclose)r   r   conn1conn2r   pr   s          r-   r   %PersistEmbeddingsStateMachine.persist1  s     	@HHI//..&++-)+KK!--2G2GO  
 	
		::<<

AG		rA   	new_statec                    > [         TU ]  U5        U[        R                  :X  a  [        U l        g U =R
                  S-  sl        g )NrB   )r   r   r   r   r   r   )r   r   r   s     r-   r   -PersistEmbeddingsStateMachine.on_state_changeH  s=    	*;CCC0 9 99Q>9rA   c                 8    U R                   R                  5         g r+   )r   rW   r   s    r-   teardown&PersistEmbeddingsStateMachine.teardownQ  s    rA   )r   r>   rQ   r   r   r.   )r)   N)r   r   r   r   r   r   r   r   collection_str9   
Collectionr   r   r   strr   r   r   __classcell__)r   s   @r-   r   r     s    &y &H & =)
Z%:%: 
 *
 	? 
V 	
$? ? ? rA   r   caplogc                    ^^ U R                  [        R                  5        [        R                  " T5      m[        UU4S j5        g )Nc                     > [        TT S9$ )Nr.   r   )r   )r   r.   s   r-   rI   /test_persist_embeddings_state.<locals>.<lambda>[  s    -xOrA   )	set_levelloggingERRORr   r   r   )r   r.   r   s    `@r-   test_persist_embeddings_stater   U  s0     W]]#__X&FOrA   c                    [         R                  " U5      n[        XS9nUR                  [        R
                  " SSSSSSS.S [        S5      S[        R                  0 / SS	S
9
S9  UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR                  S/SS//S /S S.S9u  nUR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR                  SS/SS/SS//S S /S S.S9u  pVUR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR                  U/S9  UR                  5         UR!                  5         g )Nr   A00   rk   hnsw:construction_efhnsw:search_efhnsw:Mrm   rl   z$2d3eddc7-2314-45f4-a951-47a9a8e099d2   FT
rF   rP   rQ   r   	dimensiondtypeknown_metadata_keysknown_document_keywordshas_documentshas_embeddingsr   0g      ?g     ?r~   r   r   r   r   rz   r{   g     P?g     ?g     ÿg     ?r~   )r   r   r   r   r9   r   r	   npfloat16r_   r[   fields_matchlog_size_below_maxno_duplicatesadd_embeddingsdelete_by_idsr   )r   r.   r   stateembedding_ids_0embedding_ids_1embedding_ids_2s          r-   test_delete_less_than_kr   _  s     __X&F)8KE	(((+"%'(#$  $:;** "$&!
  ( 
	KKM			--#XbdrWsVt  EI  DJ  Y]  :^-  __		KKM			',';';PSUXzkx  {K  kL  O_  ao  Np  jq  AE  GK  @L  [_  H`';  (a$O		KKM				_-.		NNrA   c                 x   [         R                  " U 5      n[        XS9nUR                  [        R
                  " SSSSSSS.[        5       [        S5      SS 0 / SS	S
9
S9  UR                  / SQSS/SS/SS/// SQS S.S9  UR                  S/S9  UR                  S/SS//S /S S.S9  UR                  5         g )Nr   r   r   rk   )r   r   r   rl   rm   z$0851f751-2f11-4424-ab23-4ae97074887ar   FTr   r   )r   rz   r{   r   )NNNr   r   r   r   rB   )r   r   r   r   r9   r   r   r	   r   r   r   )r.   r   r   s      r-   test_delete_add_after_persistr    s   __X&F)8KE	(((+"%#$'(  89:; "$&#
  , 
 #q6Aq6Aq62+
   
SE"	5q6(	
   
rA   c                 
   [         R                  " U5      n[        XS9nUR                  [        R
                  " SSSSSSS.[        S[        R                  S9[        S	5      S[        R                  0 / S
SS9
S9  UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         [        [         ["           UR%                  / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/S S S.S95      u  nnnnnn	n
UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         ['        S5        UR%                  S// SQ/S S S.S9nUR                  5         UR                  5         UR                  5         UR                  5         UR                  5         [        [         ["           UR%                  / SQ/ SQ/ SQ/ SQ/ SQ/ S Q/ S!Q/ S"Q/ S#Q/ S$Q/ S%Q/ S&Q/ S'Q/ S(Q/ S)Q/ S*Q/ S+Q/ S,Q/S S S.S95      u  nnnnnnnnnnnnnnnnnUR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR%                  S-S.// S/Q/ S0Q/S S /S S.S9  UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR%                  / S1Q/ S2Q/ S3Q/ S4Q/ S5Q/ S6Q/ S7Q/S S S.S9  UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR)                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR%                  S8/ S9Q/S S S.S9  UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR%                  S:S;// S<Q/ S=Q/S S /S S.S9  UR                  5         UR                  5         UR                  5         UR                  5         UR                  5         UR%                  S>S?S@SAUSBSCSDSEUUSFSGSHUSISJ// SQ/ SQ/ SQ/ SQ/ S Q/ S!Q/ S"Q/ S#Q/ S$Q/ S%Q/ S&Q/ S'Q/ S(Q/ S)Q/ S*Q/ S+Q/ S,Q/S S S.S9  UR                  5         UR                  5         UR                  5         UR                  5         UR+                  5         g )KNr   JqzMs4pPm14cr   	      r   \   )dimr   z$45c5c816-0a90-4293-8d01-4325ff860040FTr   r   )Ne8r6r   YaoqFjA2cjHCvr{   )        r  r  )r|   r|   r|   )r}   r}   r}   )r   r   r   )r   r   r   )r   r   r   )      @r  r  r   r   z

	MVu393QTc)      @r  r  )CyF0Mk-q_Fwu2D2sQSFogDgPLkcfTSrwuQHQ6w4f51qWr2enLPQw8uKYs1Gwdzt5W8tpsnfJbV7zr   V1iFkoJXZw4uFc7vEEwrPYf)       @r"  r"  )      "@r#  r#  )      $@r$  r$  )      &@r%  r%  )      (@r&  r&  )      *@r'  r'  )      ,@r(  r(  )      .@r)  r)  )      0@r*  r*  )      1@r+  r+  )      2@r,  r,  )      3@r-  r-  )      4@r.  r.  )      5@r/  r/  )      6@r0  r0  )      7@r1  r1  )      8@r2  r2  r   df_RWhR0HelOcv)      9@r4  r4  )      :@r5  r5  )3R9_44u3BMZCXZDSUelx)      ;@r<  r<  )      <@r=  r=  )      =@r>  r>  )      >@r?  r?  )      ?@r@  r@  )      @@rA  rA  YlVm)     @@rC  rC  Rk1TPL)      A@rF  rF  )     A@rG  rG  r  r  r  r  r  r  r  r  r  r  r  r   r!  )r   r   r   r   r9   r   r   r   float64r	   r_   r[   r   r   r   r   r   r   r   printr   r   )r   r.   r   r   r   r   r   embedding_ids_3embedding_ids_4embedding_ids_5embedding_ids_6_embedding_ids_12embedding_ids_17embedding_ids_18embedding_ids_22s                   r-   Mtest_batch_size_less_than_sync_with_duplicate_adds_results_in_skipped_seq_idsrS    sy    __X&F)8KE	(((+"%'(#$  :b

S:;** "$&!
  ( 
	KKM			 	G####### "! 	 	
	( 
	KKM				&M


=*+	
  Q 
	KKM			( 	( $#&&&&&&&&&&&&&&&#& "!Q) 	 +	
.	%													` 
	KKM				)*-/AB	
   
	KKM				?"""""" 
   
	KKM				MMO		KKM				-.	
   
	KKM				5>-/AB	
   
	KKM				 #/    #(  """""""""""""""#& Q)
  +X 
	KKM			NNrA   )Vr   r   multiprocessing.connectionr   multiprocessing.contextrp   typingr   r   r   r   r   uuidr	   
hypothesisr
   hypothesis.strategiesr9   r;   pytestr   chromadb.apir   r   chromadb.configr   r   chromadb.segmentr   #chromadb.segment.impl.manager.localr   !chromadb.test.property.strategiesrj   property!chromadb.test.property.invariantsrZ   r   &chromadb.test.property.test_embeddingsr   r   r   hypothesis.statefulr   r   r   r   r   rr   chromadb.api.clientr   rU   "chromadb.utils.embedding_functionsr   numpyr   tempfileCreatePersistAPIenvironmkdtempconfigurationsfixtureFixtureRequestr.   sharedr:   r<   r   	compositeDrawFnr   	RecordSetr@   listsrh   r   r   r   r   r   r   r   LogCaptureFixturer   r   r  rS  rS   rA   r-   <module>rt     s     1   9 9   "   - , ) C 6 6 6 6 H 
  
 7 G  B	M*  (2::5 	?@!C!C(a&..0		
 	=@!C!C(a&..0		

 : h~6f++ 	(D$:N0O  7 		$&GGDM  " 	
 !
))!
:  *"6"667! !  (*)+&(;<)==)-j##Z%9%99:*=
 
==@84( 84t 84v $$ 	
 
64*E  $%  9$= 9x$$08	.$$.08.	.d0H 0 0fQ$$Q08Q	QrA   