
    ugf/                        d dl Z d dlZd dlmZ d dlmc mc mZ d dlm	Z	 d dl
mc mZ d dlmZmZmZmZmZmZmZmZ d dlmZmZmZmZ d dlZd dlmZ  G d de      Zde j<                  d	e	d
dfdZd	e	d
dfdZ d	e	d
dfdZ!y)    N)	ClientAPI)BundleRuleBasedStateMachinerule
initializemultipleconsumesrun_state_machine_as_testMultipleResults)AnyDictMappingOptional)hashing_embedding_functionc            
           e Zd ZU eej
                     ed<   eee	e
j                     f   ed<    ed      Zdef fdZ e       d"d       Z ee ej                               d	ej
                  deej
                     fd
       Z ee      d	ej
                  ddfd       Z e ee            d	ej
                  ddfd       Z e       d"d       Z e ej0                  dd       ej0                  dd            dededdfd       Z ee ej6                   ej8                         ej:                         ej6                   ee       ej                                     d	ej
                  de	e
j<                     deej
                     fd       Z ee ee      ej:                   ej6                   ej8                          ej@                                     d	ej
                  de
j<                  de	e   deej
                     fd       Z!dede	e
j                     ddfdZ"deddfd Z#e$deee	e
j                     f   fd!       Z% xZ&S )#CollectionStateMachinecollections_modelclientc                 >    t         |           i | _        || _        y N)super__init__r   r   )selfr   	__class__s     \/var/www/openai/venv/lib/python3.12/site-packages/chromadb/test/property/test_collections.pyr   zCollectionStateMachine.__init__   s        returnNc                 F    | j                   j                          i | _        y r   )r   resetr   r   s    r   r   z!CollectionStateMachine.initialize!   s    r   )targetcollr#   c                    |j                   | j                  v s$|j                  t        |j                        dk(  rht	        j
                  t              5  | j                  j                  |j                   |j                  |j                        }d d d        t               S | j                  j                  |j                   |j                  |j                        }| j                  |j                   |j                         |j                   |j                   k(  sJ |j                  | j                  |j                      k(  sJ t        |      S # 1 sw Y   t               S xY wNr   namemetadataembedding_function)r'   modelr(   lenpytestraises	Exceptionr   create_collectionr)   r   	set_modelr   r#   cs      r   create_collz"CollectionStateMachine.create_coll&   s   
 99

"MM%#dmm*<*Ay)KK11!]]'+'>'> 2  * :KK))]]#66 * 

 	tyy$--0vv"""zzTZZ		2222~# * :s   =EE')r#   c                    |j                   | j                  v rj| j                  j                  |j                         }|j                   |j                   k(  sJ |j                  | j                  |j                      k(  sJ y t        j                  t              5  | j                  j                  |j                          d d d        y # 1 sw Y   y xY wNr'   )r'   r*   r   get_collectionr(   r,   r-   r.   r1   s      r   get_collzCollectionStateMachine.get_collA   s    99

"**		*:A66TYY&&&::DII!6666y)**		*: *))s   'CCc                    |j                   | j                  v rB| j                  j                  |j                          | j	                  |j                          nHt        j                  t              5  | j                  j                  |j                          d d d        t        j                  t              5  | j                  j                  |j                          d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY wr5   )	r'   r*   r   delete_collectiondelete_from_modelr,   r-   r.   r7   )r   r#   s     r   delete_collz"CollectionStateMachine.delete_collK   s    99

"KK))tyy)9""499-y)--499-= * ]]9%KK&&DII&6 &% *) &%s   4'C,<'C8,C58Dc                     | j                   j                         }t        |      t        | j                        k(  sJ |D ]  }|| j                  v rJ  y r   )r   list_collectionsr+   r*   )r   collscollection_names      r   r>   z'CollectionStateMachine.list_collectionsW   sJ    ,,.5zS_,,,$O"djj000  %r         )	min_value	max_valuer   limitoffsetrF   rG   c                 0   | j                   j                  ||      }| j                   j                         }| j                   j                         }||||z    }||z   |kD  r%t        |      t	        ||z
  d      k(  sJ ||k(  sJ y t        |      |k(  sJ y )NrE   r   )r   r>   count_collectionsr+   max)r   rF   rG   r?   total_collections	all_colls	man_collss          r   "list_collections_with_limit_offsetz9CollectionStateMachine.list_collections_with_limit_offset_   s    
 ,,5,H KK99; KK002	fv~6	 6>--u:%6%?!CCCCI%%% u:&&&r   )r"   new_metadatar#   rO   c                    |lt        |      dk(  r^t        j                  t              5  | j                  j                  |j                  ||j                        }d d d        t               S |j                  | j                  vr-||_
        | j                  |j                  |j                         | j                  j                  |j                  ||j                        }|j                  |j                  k(  sJ |j                  | j                  |j                     k(  sJ t        |      S # 1 sw Y   t               S xY wr%   )r+   r,   r-   r.   r   get_or_create_collectionr'   r)   r   r*   r(   r0   )r   r#   rO   r2   s       r   get_or_create_collz)CollectionStateMachine.get_or_create_collu   s   8 #L(9Q(>y)KK88)'+'>'> 9  * : 99DJJ&(DMNN499dmm4 KK00!#66 1 
 vv"""zzTZZ		2222~1 * :s   3D44E)r"   r#   rO   new_namerS   c                    |j                   | j                  vrRt        j                  t              5  | j
                  j                  |j                         }d d d        t               S | j
                  j                  |j                         }| j                  |j                      }|j                   }|ut        |      dk(  r^t        j                  t              5  | j
                  j                  |j                   ||j                        }d d d        t               S ||_        |}||| j                  v rN||j                   k7  r?t        j                  t              5  |j                  ||       d d d        t               S | j                  |j                          ||_         |}| j                  ||       |j                  ||       | j
                  j                  |j                         }|j                   |j                   k(  sJ |j                  | j                  |j                      k(  sJ t        |      S # 1 sw Y   t               S xY w# 1 sw Y   t               S xY w# 1 sw Y   t               S xY w)Nr6   r   r&   )r(   r'   )r'   r*   r,   r-   r.   r   r7   r   r+   rQ   r)   r(   modifyr;   r0   )r   r#   rO   rS   r2   	_metadata_names          r   modify_collz"CollectionStateMachine.modify_coll   s    99DJJ&y)KK..DII.> *:KK&&DII&615DII1F	YY#< A%]]9-<<!YY!-+/+B+B = A .  z!(DM$I4::%(dii*?]]9-HHlHB .z!""499- DIEui(	)%0KK&&DII&6vv"""zzTZZ		2222~K *: .  z! .z!s#   'I3I%I2II/2Jr'   r(   c                 &    | j                   }|||<   y r   r*   )r   r'   r(   r*   s       r   r0   z CollectionStateMachine.set_model   s    
 

dr   c                 "    | j                   }||= y r   rZ   )r   r'   r*   s      r   r;   z(CollectionStateMachine.delete_from_model   s    

$Kr   c                     | j                   S r   )r   r!   s    r   r*   zCollectionStateMachine.model   s    {{r   )r   N)'__name__
__module____qualname__r   
strategiesExternalCollection__annotations__r   strr   typesCollectionMetadatar   r   r   r   r   r   r3   r8   r	   r<   r>   stintegersintrN   one_ofnonecollection_metadataMetadatarR   r@   rX   r0   r;   propertyr*   __classcell__)r   s   @r   r   r      s   
5566hu778899'Ky 
 \  
#9:#9#9#;<11	66	7 =4 
{;Z:: ;t ; ; 
x$%	7
 = = 	7$ 	7 &	7 
V1 1 
bkkA3r{{Q!4' 'S 'T '	'$ 
RYYwrwwy**H*HIRYYx,.Dj.D.D.FG
0++0 u~~.0 
66	7	0
0d 
k"3372779&@j&@&@&BC	,++, nn, 3-	,
 
66	7,,\ 5334 
	c d  tC%*B*B!CCD  r   r   caplogr   r   c                 `    | j                  t        j                         t        fd       y )Nc                      t               S r   )r   )r   s   r   <lambda>z"test_collections.<locals>.<lambda>   s    &<V&Dr   )	set_levelloggingERRORr
   )ro   r   s    `r   test_collectionsrv      s    
W]]#DEr   c           
         t        |       }|j                          |j                  t        j                  dd t        t        j                  d            d       \  }|j                  t        j                  dd t        t        j                  d            d       \  }|j                  |dddd	d 
       |j                  |d d 
       y )Nzjjn2yjLW1zp2T
i_  )dtypedimr&   r#   rO   ig       im)7fGeK5jr#   rO   rS   )	r   r   rR   r`   ra   r   numpyfloat32rX   )r   statev1v6s       r   test_previously_failing_oner      s    "6*E	 $$**"9SVW

  % ER $$**"9SVW

  % ER 
E$tDt   
2D4@r   c                 n   t        |       }|j                          |j                  t        j                  di t        dt        j                              d       \  }|j                  |dddd	d
dd      \  }|j                  t        j                  ddddddddt        dt        j                              dddddd       |j                  |ddid      }|j                  |d       }|j                  t        j                  dd t        d t        j                              d        y )!NC1030   )ry   rx   r&   rz   100qNYST)r   40p1nviWeL7fO7bVYWq4LEMWjCozOF5F0MzbQg
r   VS0QGhgj:Ui  ipSPFgh_   >)hA1uhUhLEEMfeC_kNweFB3DSaP6H533Ki{  i{  g?g    .G3EtXTZiv  )xVW09xUpDZAgzn1dUTalF-MYyugXZ_hKL35J2SK0l026zAi1
iF  )
r   r   rR   r`   ra   r   r   r   rX   float16)r   r   v13v15v17v18s         r   test_previously_failing_twor     se   "6*E	%%**9au}}U

  & FS  
    
FS 
**+",)  : 
 !%
  . 

(3g  C 
"
"$
"
?C	**9cW

   r   )"r,   rt   hypothesis.strategiesr`   rf   !chromadb.test.property.strategiestestrm   chromadb.apir   chromadb.api.typesapird   hypothesis.statefulr   r   r   r   r   r	   r
   r   typingr   r   r   r   r   r   r   LogCaptureFixturerv   r   r    r   r   <module>r      s      " 6 6 " " "	 	 	 0 /  HX2 XvFV55 Fy FT FA	 Ad A88	 8d 8r   