Ë
    lQêjY›  ã                   ó  — U 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 d dlmZ d dlZd dlZd dlmZ d dlmc mZ d dlZd dlmZ d dlmZmZ d dlm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(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d d	l1m2Z2m3Z3m4Z4 d d
lm5Z5 d dl6m7Z7m8Z8m9Z9 d dl:m;Z; ejx                  j{                  d «       ddddœZ> G d„ de?«      Z@ G d„ de@«      ZA G d„ de@«      ZB G d„ de@«      ZC G d„ de«      ZDdZE ejŒ                  eEd¬«      ZGdZH ejŒ                  eHd¬«      ZI ejŒ                  eEd¬«      ZJeJj—                  d„ «      ZJeGj—                  d„ «      ZGeIj—                  d „ «      ZI ej˜                  d!d"¬#«      ZM ejœ                  d$d$d$d%d&d'¬(«      ZOeGeMeO ej                   «       gZQeee
eReSeTeUf         eVd)<   d*ej2                  e   d+ej2                  e   d,ej2                  e   fd-„ZWd.ZXej²                  ej´                  ej¶                  gZ\ejº                  ej¼                  ej¾                  gZ`ejÂ                  d/ejÄ                  d,eTfd0„«       Zc ejÈ                   ejÊ                  «        ejÌ                  eG ejÈ                  eQŽ «      «      Zgd1eRd2eRd3ejÐ                  d,ejH                  fd4„Zid1eRd2eRd3ejÐ                  d,ej
                  jÔ                  e   fd5„Zk G d6„ d7ejF                  e!   «      Zl G d8„ d9ejF                  e!   «      Zmd1eRd3ejÐ                  d,ej2                  ejF                  e"      fd:„Zne  G d;„ d<«      «       Zoe; G d=„ d>e«      «       ZpejÂ                  d/ejÄ                  d,e(fd?„«       ZqejÂ                  d/ejÄ                  d,e)fd@„«       ZrejÂ                  d/ejÄ                  d,ee&   fdA„«       ZsejÂ                  d/ejÄ                  d,ee'   fdB„«       ZtejÂ                  d/ejÄ                  d,ee7   fdC„«       Zue  G dD„ dE«      «       ZvdFe	eTef   d,e	eTef   fdG„ZwdHe(d,e	eTef   fdI„ZxejÂ                  d/ejÄ                  d,ee&e	eTef   f   fdJ„«       ZyejÂ                  d/ejÄ                  d,evfdK„«       Zze  G dL„ dMeo«      «       Z{ejÂ                  d$d$dd ejø                  d$«      dNdNfd/ejÄ                  dOeUdPeUdQeeU   dReeU   dSej2                  eU   dTeRdUeRd,e{fdV„«       Z}ejÂ                  	 	 drd/ejÄ                  dWe{dXeRdYeeR   d,eejJ                     f
dZ„«       Z~ejÂ                  d/ejÄ                  dWe{d,ejþ                  fd[„«       Z€ejÂ                   e}«       eGdd\dd dfd/ejÄ                  d]ee{   d^eeT   dXeRdYeRd_eeR   d`eRdaeeR   d,eAfdb„«       Z�dce2d,ee   fdd„Z‚ejÂ                  d/ejÄ                  dWe{d,e�j                  fde„«       Z„ejÂ                  d/ejÄ                  dWe{d,e�j
                  fdf„«       Z†dgee�j                     d,ee�j                     fdh„Z‡dgee�j
                     d,ee�j
                     fdi„ZˆejÂ                  d/ejÄ                  dWe{d,e�j                  fdj„«       Z‰ejÂ                  d/ejÄ                  dWe{d,e�j
                  fdk„«       ZŠ G dl„ dme«      Z‹ejÂ                  	 dsd/ejÄ                  dnej2                  e{   doej2                  eA   dpeUd,e‹f
dq„«       ZŒy)té    N)ÚAnyÚOptionalÚListÚDictÚUnionÚcastÚTuple)Ú	TypedDict)ÚSearchStrategy)ÚSimpleEmbeddingFunctionÚ$DeterministicSparseEmbeddingFunction)ÚNOT_CLUSTER_ONLY)Ú	dataclass)Ú	DocumentsÚ
EmbeddableÚEmbeddingFunctionÚ
EmbeddingsÚMetadataÚSchemaÚCollectionMetadataÚVectorIndexConfigÚSparseVectorIndexConfigÚStringInvertedIndexConfigÚIntInvertedIndexConfigÚFloatInvertedIndexConfigÚBoolInvertedIndexConfigÚHnswIndexConfigÚSpannIndexConfigÚSpace)ÚLiteralValueÚWhereOperatorÚLogicalOperator)Úis_spann_disabled_mode)ÚCreateCollectionConfigurationÚCreateSpannConfigurationÚCreateHNSWConfiguration)Úregister_embedding_functioné€   )úhnsw:construction_efúhnsw:search_efúhnsw:Mc                   ó,   ‡ — e Zd ZdZdZdefˆ fd„Zˆ xZS )Ú_TruncatedReprDictz`Dict subclass that truncates its repr to avoid overwhelming output in hypothesis error messages.éè  Úreturnc                 óx   •— t         ‰| �  «       }t        |«      | j                  k  r|S |d | j                   dz   S )Nz...})ÚsuperÚ__repr__ÚlenÚ_REPR_MAX_LEN)ÚselfÚfullÚ	__class__s     €úf/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/property/strategies.pyr2   z_TruncatedReprDict.__repr__R   s@   ø€ Ü‰wÑÓ!ˆÜˆt‹9˜×*Ñ*Ò*ØˆKØÐ(�d×(Ñ(Ð)¨FÑ2Ð2ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   Ústrr2   Ú__classcell__)r7   s   @r8   r-   r-   M   s   ø„ Ùjà€Mð3˜#÷ 3ñ 3r9   r-   c                   ó,  — e Zd ZU dZeej                  eej                     f   ed<   e	eej                  ej                  f      ed<   e	eee	ej                        ej                  f      ed<   e	eeej                     ej                  f      ed<   y)Ú	RecordSetz|
    A generated set of embeddings, ids, metadatas, and documents that
    represent what a user would pass to the API.
    ÚidsÚ
embeddingsÚ	metadatasÚ	documentsN)r:   r;   r<   r=   r   ÚtypesÚIDr   Ú__annotations__r   r   Ú	Embeddingr   ÚDocument© r9   r8   rA   rA   Y   s�   … ñð
 
ˆu�x‰x˜˜eŸh™h™Ð'Ñ	(Ó(Ø˜˜u×/Ñ/°·±Ð@ÑAÑBÓBØ˜˜d 8¨E¯N©NÑ#;Ñ<¸e¿n¹nÐLÑMÑNÓNØ˜˜d 5§>¡>Ñ2°E·N±NÐBÑCÑDÔDr9   rA   c                   ó´   — e Zd ZU dZeej                     ed<   eej                     ed<   eeeej                           ed<   eeej                        ed<   y)ÚNormalizedRecordSetz;
    A RecordSet, with all fields normalized to lists.
    rB   rC   rD   rE   N)r:   r;   r<   r=   r   rF   rG   rH   r   r   r   rJ   rK   r9   r8   rM   rM   e   sU   … ñð 
ˆe�h‰h‰ÓØ˜×)Ñ)Ñ*Ó*Ø˜˜X e§n¡nÑ5Ñ6Ñ7Ó7Ø˜˜UŸ^™^Ñ,Ñ-Ô-r9   rM   c                   ó¨   — e Zd ZU dZeej                     ed<   ej                  ed<   ee	ej                        ed<   ee	ej                        ed<   y)ÚStateMachineRecordSetzO
    Represents the internal state of a state machine in hypothesis tests.
    rB   rC   rD   rE   N)r:   r;   r<   r=   r   rF   rG   rH   r   r   r   rJ   rK   r9   r8   rO   rO   p   sK   … ñð 
ˆe�h‰h‰ÓØ× Ñ Ó Ø�H˜UŸ^™^Ñ,Ñ-Ó-Ø�H˜UŸ^™^Ñ,Ñ-Ô-r9   rO   c                   óœ   — e Zd ZU dZej
                  ed<   eej                     ed<   eej                     ed<   eej                     ed<   y)ÚRecordz$
    A single generated record.
    ÚidÚ	embeddingÚmetadataÚdocumentN)r:   r;   r<   r=   rF   rG   rH   r   rI   r   rJ   rK   r9   r8   rQ   rQ   {   s?   … ñð 	�‰ƒLØ˜Ÿ™Ñ(Ó(Ø�u—~‘~Ñ&Ó&Ø�u—~‘~Ñ&Ô&r9   rQ   z@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_é   )ÚalphabetÚmin_sizez?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-é   c                 óž   — | j                  d«       xr: | j                  d«       xr& | j                  d«       xr | j                  d«       S )NÚ_ú-)Ú
startswithÚendswith©Úss    r8   ú<lambda>ra   �   s~   € ÀÇÁÈcÓARÐ=Rò  >]Ð[\×[gÑ[gÐhkÓ[lÐWlò  >]Ðuv×uÑuð  ADó  vEð  rEò  >]ð  NO÷  NXñ  NXð  Y\ó  N]ð  J]€ r9   c                 ó&   — | j                  d«       S ©NÚ_sa©r]   r_   s    r8   ra   ra   ”   s   € ¨1¯<©<¸Ó+>Ð'>€ r9   c                 ó&   — | j                  d«       S rc   re   r_   s    r8   ra   ra   •   s   € ÀÇÁÈeÓATÐ=T€ r9   é   €éÿÿÿ©Ú	min_valueÚ	max_valueFé    g    €„.Ág    €„.A)Úallow_infinityÚ	allow_nanÚallow_subnormalÚwidthrj   rk   Úsafe_valuesÚ
strategy_aÚ
strategy_br/   c                 óð   — t        j                  t        j                  | |«      t        j                  | t        j                  «       «      t        j                  t        j                  «       |«      «      S ©N)ÚstÚone_ofÚtuplesÚnone)rr   rs   s     r8   Úone_or_bothrz   ­   sK   € ô �9‰9Ü
�	‰	�*˜jÓ)Ü
�	‰	�*œbŸg™g›iÓ(Ü
�	‰	”"—'‘'“)˜ZÓ(óð r9   zCabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_./+Údrawc                 ój  — t        j                  d«      }t        j                  d«      }t        j                  d«      } | t        j                  |«      «      j	                  «       }t        j                  |j                  |«       «       t        j                  |j                  |«       «       |S )Nz'^[a-zA-Z][a-zA-Z0-9-]{1,60}[a-zA-Z0-9]$z^([0-9]{1,3}\.){3}[0-9]{1,3}$z\.\.)	ÚreÚcompilerv   Ú
from_regexÚstripÚ
hypothesisÚassumeÚmatchÚsearch)r{   Ú_collection_name_reÚ_ipv4_address_reÚ_two_periods_reÚnames        r8   Úcollection_namer‰   À   s‹   € äŸ*™*Ð%OÓPÐÜ—z‘zÐ"BÓCÐÜ—j‘j Ó)€Oá”R—]‘]Ð#6Ó7Ó8×>Ñ>Ó@€DÜ×ÑÐ*×0Ñ0°Ó6Ð6Ô7Ü×Ñ˜/×0Ñ0°Ó6Ð6Ô7à€Kr9   ÚdimÚcountÚdtypec           	      ó¸   — t        t        j                  t        j                  j                  dd|| f¬«      j                  |«      j                  «       «      }|S ©Ng      ð¿ç      ð?)ÚlowÚhighÚsize)r   rF   r   ÚnpÚrandomÚuniformÚastypeÚtolist)rŠ   r‹   rŒ   rC   s       r8   Úcreate_embeddingsr˜   Ô   sU   € ô
 $(Ü×Ñä�I‰I×ÑØØØ˜S�\ð ó ÷
 ‰V�E‹]ß‰V‹Xó$€Jð Ðr9   c                 óh   — t         j                  j                  dd|| f¬«      j                  |«      S rŽ   )r“   r”   r•   r–   )rŠ   r‹   rŒ   s      r8   Úcreate_embeddings_ndarrayrš   é   s8   € ô
 �9‰9×ÑØØØ�Sˆ\ð ó ÷ �fˆUƒmð	r9   c                   óx   — e Zd Zdedej
                  ddfd„Zdej                  dej                  fd„Z
defd„Zy)	Úhashing_embedding_functionrŠ   rŒ   r/   Nc                 ó    — || _         || _        y ru   ©rŠ   rŒ   )r5   rŠ   rŒ   s      r8   Ú__init__z#hashing_embedding_function.__init__ö   s   € ØˆŒØˆ�
r9   Úinputc                 óÞ  — |D �cg c]=  }t        t        j                  |j                  d«      «      j	                  «       «      ‘Œ? }}|D �cg c]9  }|| j
                  t        |«      z  z  |d | j
                  t        |«      z   z   ‘Œ; }}|D ��cg c]>  }t        j                  |D �cg c]  }t        |d«      dz  ‘Œ c}| j                  ¬«      ‘Œ@ }}}|S c c}w c c}w c c}w c c}}w )Nzutf-8é   g      .@)rŒ   )ÚlistÚhashlibÚsha256ÚencodeÚ	hexdigestrŠ   r3   r“   ÚarrayÚintrŒ   )r5   r    ÚtextÚhashed_textsÚpadded_textsÚcharrC   s          r8   Ú__call__z#hashing_embedding_function.__call__ú   së   € ð PUö
ØGKŒD”—‘ §¡¨GÓ 4Ó5×?Ñ?ÓAÕBð
ˆð 
ð %ö
àð �D—H‘H¤ D£	Ñ)Ñ*¨TÐ2H°D·H±H¼sÀ4»yÑ4HÐ-IÓIð
ˆð 
ð %÷(
àô �H‰H°tÖ<¨t”c˜$ “m dÓ*Ò<ÀDÇJÁJÖOð(
ˆ
ñ (
ð
 Ðùò
ùò
ùò =ùó(
s$   …ACÁ>CÂC)Â*C$Ã C)Ã$C)c                 ó<   — d| j                   › d| j                  › d�S )Nzhashing_embedding_function(dim=z, dtype=ú)rž   ©r5   s    r8   r2   z#hashing_embedding_function.__repr__  s   € Ø0°·±°
¸(À4Ç:Á:À,ÈaÐPÐPr9   )r:   r;   r<   r©   ÚnptÚ	DTypeLikerŸ   rF   r   r   r®   r>   r2   rK   r9   r8   rœ   rœ   õ   sK   „ ð˜Cð ¨¯©ð ¸$ó ð˜eŸo™oð °%×2BÑ2Bó ð&Q˜#ô Qr9   rœ   c                   ó   — e Zd Zdedefd„Zy)Ú"not_implemented_embedding_functionr    r/   c                 ó   — J d«       ‚)Nz*This embedding function is not implementedrK   )r5   r    s     r8   r®   z+not_implemented_embedding_function.__call__  s   € ØBÐBÓBˆur9   N)r:   r;   r<   r   r   r®   rK   r9   r8   rµ   rµ     s   „ ðC˜ið C¨Jô Cr9   rµ   c           	      ój   — t        j                  t        t        t           t        | |«      «      «      S ru   )rv   Újustr   r   r   rœ   rž   s     r8   Úembedding_function_strategyr¹     s-   € ô �7‰7ÜÔœzÑ*Ô,FÀsÈEÓ,RÓSóð r9   c                   ój   — e Zd ZU dZeed<   eej                     ed<   eej                  e
      ed<   y)ÚExternalCollectiona  
    An external view of a collection.

    This strategy only contains information about a collection that a client of Chroma
    sees -- that is, it contains none of Chroma's internal bookkeeping. It should
    be used to test the API and client code.
    rˆ   rT   Úembedding_functionN)r:   r;   r<   r=   r>   rH   r   rF   r   r   r   rK   r9   r8   r»   r»     s3   … ñð ƒIØ�u—~‘~Ñ&Ó&Ø  ×!8Ñ!8¸Ñ!DÑEÔEr9   r»   c                   ó   — e Zd ZdZdefd„Zy)ÚSimpleIpEmbeddingFunctionz>Simple embedding function with ip space for persistence tests.r/   c                  ó   — y)NÚiprK   r±   s    r8   Údefault_spacez'SimpleIpEmbeddingFunction.default_space1  s   € Ør9   N)r:   r;   r<   r=   r>   rÁ   rK   r9   r8   r¾   r¾   -  s   „ áHð˜sô r9   r¾   c                 ó  — d}d}d}d}d} | t        j                  «       «      r | t        j                  g d¢«      «      } | t        j                  «       «      r't         | t        j                  dd¬«      «      ¬«      } | t        j                  «       «      r3 | t        j
                  t        j                  d«      t        «      «      } | t        j                  g d¢«      «      }|d	k(  �r%t         | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  d
d¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd¬«      }�nÑ|dk(  �rËt         | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd | t        j                  «       «      r | t        j                  dd¬«      «      nd¬«      }t        t        t        |«      ||||¬«      S )z\Generate VectorIndexConfig with optional space, embedding_function, source_key, hnsw, spann.N©ÚcosineÚl2rÀ   rV   r.   ri   ©rŠ   ú	#document)ÚhnswÚspannry   rÈ   é   é'  r�   ç      @)Úef_constructionÚmax_neighborsÚ	ef_searchÚsync_thresholdÚresize_factorrÉ   r(   é@   éÈ   é2   é   éd   )Úsearch_nprobeÚwrite_nproberÍ   rÏ   rÎ   Úreassign_neighbor_countÚsplit_thresholdÚmerge_threshold)Úspacer¼   Ú
source_keyrÈ   rÉ   )rv   ÚbooleansÚsampled_fromr¾   Úintegersrw   r¸   Ú	safe_textr   Úfloatsr   r   r   r   )r{   rÜ   r¼   rÝ   rÈ   rÉ   Úindex_choices          r8   Úvector_index_config_strategyrä   5  sç  € ð €EØÐØ€JØ€DØ€EáŒB�K‰K‹MÔÙ”R—_‘_Ò%;Ó<Ó=ˆáŒB�K‰K‹MÔÜ6Ù”R—[‘[¨1¸Ô=Ó>ô
Ðñ ŒB�K‰K‹MÔÙœ"Ÿ)™)¤B§G¡G¨KÓ$8¼)ÓDÓEˆ
áœŸ™Ò(AÓBÓC€Là�vÓÜá”B—K‘K“MÔ"ñ !¤§¡°qÀDÔ!IÔJàá”B—K‘K“MÔ"ñ œrŸ{™{°QÀ$ÔGÔHàá”B—K‘K“MÔ"ñ œ2Ÿ;™;°¸dÔCÔDàá”B—K‘K“MÔ"ñ  ¤§¡°aÀ5Ô IÔJàá”B—K‘K“MÔ"ñ œrŸy™y°3À#ÔFÔGàô
Šð" 
˜Ó	 Ü á”B—K‘K“MÔ"ñ œrŸ{™{°QÀ#ÔFÔGàá”B—K‘K“MÔ"ñ œbŸk™k°AÀÔDÔEàá”B—K‘K“MÔ"ñ !¤§¡°qÀCÔ!HÔIàá”B—K‘K“MÔ"ñ œ2Ÿ;™;°¸cÔBÔCàá”B—K‘K“MÔ"ñ œrŸ{™{°QÀ"ÔEÔFàá”B—K‘K“MÔ"ñ %)¬¯©¸qÈBÔ)OÔ$Pàá”B—K‘K“MÔ"ñ !¤§¡°rÀSÔ!IÔJàá”B—K‘K“MÔ"ñ !¤§¡°rÀSÔ!IÔJàô1
ˆô6 Ü”5˜%Ó Ø-ØØØôð r9   c                 ó@  — d}d}d} | t        j                  «       «      r=t        «       } | t        j                  t        j                  d«      t
        «      «      } | t        j                  «       «      r | t        j                  «       «      }t        |||¬«      S )zTGenerate SparseVectorIndexConfig with optional embedding_function, source_key, bm25.NrÇ   )r¼   rÝ   Úbm25)rv   rÞ   r   rw   r¸   rá   r   )r{   r¼   rÝ   ræ   s       r8   Ú#sparse_vector_index_config_strategyrç   ‚  s}   € ð ÐØ€JØ€DáŒB�K‰K‹MÔÜAÓCÐÙœ"Ÿ)™)¤B§G¡G¨KÓ$8¼)ÓDÓEˆ
áŒB�K‰K‹MÔÙ”B—K‘K“MÓ"ˆä"Ø-ØØôð r9   c                 ó˜  —  | t        j                  «       «      ryt        «       } | t        j                  dd¬«      «      }d}t	        |«      D �]ö  } | t        j
                  ddg«      «      } | t        j
                  g d¢«      «      } | t        j                  «       «      }d}|r|d	k7  r | t        «      }|dk(  rö|d
k(  r|j                  t        «       |¬«       Œ“|dk(  r|j                  t        «       |¬«       Œ´|dk(  r|j                  t        «       |¬«       ŒÕ|dk(  r|j                  t        «       |¬«       Œö|d	k(  r% | t        «       «      }	|j                  |	d¬«       �Œ |dk(  s�Œ't        r�Œ/|r�Œ3 | t        «       «      }
|€ | t        «      }|j                  |
|¬«       d}�Œh|dk(  s�Œo|d
k(  r|j                  t        «       |¬«       �Œ‘|dk(  r|j                  t        «       |¬«       �Œ³|dk(  r|j                  t        «       |¬«       �ŒÕ|dk(  s�ŒÜ|j                  t        «       |¬«       �Œù |S )zKGenerate a Schema object with various create_index/delete_index operations.Nr   é   ri   FÚcreate_indexÚdelete_index)Ústring_invertedÚint_invertedÚfloat_invertedÚbool_invertedÚvectorÚsparse_vectorrð   rì   ©ÚconfigÚkeyrí   rî   rï   rñ   T)rv   rÞ   r   rà   Úrangerß   rá   rê   r   r   r   r   rä   r#   rç   rë   )r{   ÚschemaÚnum_operationsÚsparse_index_createdr[   Ú	operationÚconfig_typeÚuse_keyrô   Úvector_configÚsparse_configs              r8   Úschema_strategyrþ   —  s-  € ñ ŒB�K‰K‹MÔØä‹X€Fñ œ"Ÿ+™+°¸QÔ?Ó@€NØ Ðä�>Ó"ó 6OˆÙœŸ™¨.¸.Ð)IÓJÓKˆ	ÙÜ�O‰Oòó	ó
ˆñ ”r—{‘{“}Ó%ˆØˆÙ�{ hÒ.á”y“/ˆCà˜Ò&ØÐ/Ò/Ø×#Ñ#Ô+DÓ+FÈCÐ#ÕPØ Ò.Ø×#Ñ#Ô+AÓ+CÈÐ#ÕMØÐ 0Ò0Ø×#Ñ#Ô+CÓ+EÈ3Ð#ÕOØ Ò/Ø×#Ñ#Ô+BÓ+DÈ#Ð#ÕNØ Ò(Ù $Ô%AÓ%CÓ D�Ø×#Ñ#¨=¸dÐ#ÖCà˜Ô.ß.Û,á $Ô%HÓ%JÓ K�à�;Ùœy›/�CØ×#Ñ#¨=¸cÐ#ÔBØ'+Ò$à˜.Ô(ØÐ/Ò/Ø×#Ñ#Ô+DÓ+FÈCÐ#ÖPØ Ò.Ø×#Ñ#Ô+AÓ+CÈÐ#ÖMØÐ 0Ò0Ø×#Ñ#Ô+CÓ+EÈ3Ð#ÖOØ Ô/Ø×#Ñ#Ô+BÓ+DÈ#Ð#ÖNðm6Oðr €Mr9   c                 óÊ  — i } | t        j                  «       «      r  | t        j                  g d¢«      «      |d<    | t        j                  «       «      r  | t        j                  dd¬«      «      |d<    | t        j                  «       «      r  | t        j                  dd¬«      «      |d<    | t        j                  «       «      r  | t        j                  dd¬«      «      |d<    | t        j                  «       «      r  | t        j                  d	d
¬«      «      |d<    | t        j                  «       «      r  | t        j                  dd¬«      «      |d<   |r|S dS )z'Generate metadata with hnsw parameters.rÃ   ú
hnsw:spacerV   r.   ri   r)   r*   r+   r�   rÌ   zhnsw:resize_factorrÊ   rË   úhnsw:sync_thresholdN)rv   rÞ   rß   rà   râ   )r{   rT   s     r8   Úmetadata_with_hnsw_strategyr  ß  s  € ð $&€HáŒB�K‰K‹MÔÙ!%¤b§o¡oÒ6LÓ&MÓ!Nˆ�ÑÙŒB�K‰K‹MÔÙ+/Ü�K‰K !¨tÔ4ó,
ˆÐ'Ñ(ñ ŒB�K‰K‹MÔÙ%)¬"¯+©+ÀÈTÔ*RÓ%SˆÐ!Ñ"ÙŒB�K‰K‹MÔÙ!¤"§+¡+¸ÀTÔ"JÓKˆ�ÑÙŒB�K‰K‹MÔÙ)-¬b¯i©iÀ#ÐQTÔ.UÓ)VˆÐ%Ñ&ÙŒB�K‰K‹MÔÙ*.Ü�K‰K !¨uÔ5ó+
ˆÐ&Ñ'ñ  ˆ8Ð) TÐ)r9   c                 óö  — i } | t        j                  «       «      r*t         | t        j                  dd¬«      «      ¬«      |d<    | t        j                  g d¢«      «      }|dk(  r,t         | t        j                  g d¢«      «      ¬	«      |d
<   �n`|dk(  r,t         | t        j                  g d¢«      «      ¬	«      |d<   �n/|d
k(  rãi } | t        j                  «       «      r  | t        j                  g d¢«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<   ||d
<   �nG|dk(  �rAi } | t        j                  «       «      r  | t        j                  g d¢«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd¬«      «      |d<    | t        j                  dd ¬«      «      |d!<   ||d<   |r|S d"S )#zEGenerate CreateCollectionConfiguration with mutual exclusivity rules.rV   r.   ri   rÆ   r¼   )Úspace_only_hnswÚspace_only_spannrÈ   rÉ   ry   r  rÃ   )rÜ   rÈ   r  rÉ   rÜ   rÍ   rÏ   rÎ   rÊ   rË   rÐ   r�   rÌ   rÑ   r(   r×   rÒ   rØ   rÓ   rÙ   rÔ   rÚ   rÕ   rÖ   rÛ   N)rv   rÞ   r¾   rà   rß   r&   r%   râ   )r{   ÚconfigurationÚconfig_choiceÚhnsw_configÚspann_configs        r8   Úcreate_configuration_strategyr
  ø  sž  € ð
 46€Mñ ŒB�K‰K‹MÔÜ.GÙ”R—[‘[¨1¸Ô=Ó>ô/
ˆÐ*Ñ+ñ
 Ü
�‰ÚLó	
ó€Mð Ð)Ò)Ü 7Ù”r—‘Ò'=Ó>Ó?ô!
ˆ�fÓð 
Ð,Ò	,Ü!9Ù”r—‘Ò'=Ó>Ó?ô"
ˆ�gÓð 
˜&Ò	 à/1ˆÙ”—‘“ÔÙ#'¬¯©Ò8NÓ(OÓ#PˆK˜Ñ Ù)-¬b¯k©kÀAÐQUÔ.VÓ)WˆÐ%Ñ&Ù#'¬¯©¸aÈ4Ô(PÓ#Qˆ�KÑ Ù'+¬B¯K©KÀ!ÈtÔ,TÓ'Uˆ�OÑ$Ù(,¬R¯[©[À1ÐPUÔ-VÓ(WˆÐ$Ñ%Ù'+¬B¯I©IÀÈsÔ,SÓ'Tˆ�OÑ$Ø +ˆ�fÓØ	˜'Ó	!à13ˆÙ”—‘“ÔÙ$(¬¯©Ò9OÓ)PÓ$QˆL˜Ñ!Ù(,¬R¯[©[À1ÐPSÔ-TÓ(Uˆ�_Ñ%Ù'+¬B¯K©KÀ!ÈrÔ,RÓ'Sˆ�^Ñ$Ù*.¬r¯{©{ÀQÐRUÔ/VÓ*WˆÐ&Ñ'Ù$(¬¯©¸qÈCÔ)PÓ$Qˆ�[Ñ!Ù(,¬R¯[©[À1ÐPRÔ-SÓ(Tˆ�_Ñ%Ù26Ü�K‰K !¨rÔ2ó3
ˆÐ.Ñ/ñ +/¬r¯{©{ÀRÐSVÔ/WÓ*XˆÐ&Ñ'Ù*.¬r¯{©{ÀRÐSVÔ/WÓ*XˆÐ&Ñ'Ø!-ˆ�gÑá)ˆ=Ð3¨tÐ3r9   c                   óf   — e Zd ZU dZee   ed<   ee   ed<   ee   ed<   ee	e
ef      ed<   e
ed<   y)ÚCollectionInputCombinationz4
    Input tuple for collection creation tests.
    rT   r  rö   Úschema_vector_infoÚkindN)r:   r;   r<   r=   r   r   rH   r$   r   r   r>   r   rK   r9   r8   r  r  3  sD   … ñð Ð)Ñ*Ó*ØÐ9Ñ:Ó:Ø�VÑÓØ   c¨3 h¡Ñ0Ó0Ø
„Ir9   r  Úitemsc                 ó\   — | j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}S c c}}w ru   )r  )r  ÚkÚvs      r8   Únon_none_itemsr  @  s(   € Ø"Ÿ[™[›]×<‘T�Q˜¨a©mˆAˆq‰DÓ<Ð<ùÓ<s   ”
(Ÿ(ró   c                 ób  — d }| j                   �>t        | j                   d«      r(t        t        | j                   j	                  «       «      }| j
                  | j                  r| j                  j                  d¬«      nd | j                  r| j                  j                  d¬«      |dœS d |dœS )NrÁ   T)Úexclude_none)rÜ   rÈ   rÉ   Ú embedding_function_default_space)	r¼   Úhasattrr   r>   rÁ   rÜ   rÈ   Ú
model_dumprÉ   )ró   Úembedding_default_spaces     r8   Úvector_index_to_dictr  D  s¦   € Ø-1ÐØ× Ñ Ð,´Ø×!Ñ! ?ô2ô #'¤s¨F×,EÑ,E×,SÑ,SÓ,UÓ"VÐð —‘Ø=C¿[º[�—‘×&Ñ&°DÐ&Ô9ÈdØ?E¿|º|�—‘×(Ñ(°dÐ(Ó;Ø,Cñ	ð ð RVØ,Cñ	ð r9   c                 óv   — t        «       } | t        «       «      }|j                  |d ¬«       |t        |«      fS )Nrò   )r   rä   rê   r  )r{   rö   rü   s      r8   Ú_schema_input_strategyr  S  s=   € ô ‹X€FÙÔ5Ó7Ó8€MØ
×Ñ˜}°$ÐÔ7ØÔ'¨Ó6Ð6Ð6r9   c                 ó,  —  | t        j                  g d¢«      «      }d}d}d}d}|dv r  | t        «       j                  d„ «      «      }|dv r  | t	        «       j                  d„ «      «      }|dk(  r | t        «       «      \  }}t        |||||¬«      S )	zY
    Generate compatible combinations of metadata, configuration, and schema inputs.
    )ry   rT   r  Úmetadata_configurationrö   N)rT   r  c                 ó*   — | d uxr t        | «      dkD  S )Nr   )r3   ©Úvalues    r8   ra   z8metadata_configuration_schema_strategy.<locals>.<lambda>y  s   € ˜e¨4Ð/ÒB´C¸³JÀ±N€ r9   )r  r  c                 óª   — | d uxrN | j                  d«      d uxr t        | d   «      dkD  xs& | j                  d«      d uxr t        | d   «      dkD  S )NrÈ   r   rÉ   )Úgetr3   r   s    r8   ra   z8metadata_configuration_schema_strategy.<locals>.<lambda>€  sb   € ˜e¨4Ð/ò à—Y‘Y˜vÓ&¨dÐ2ÒM´s¸5À¹=Ó7IÈAÑ7Mò TØŸ	™	 'Ó*°$Ð6ÒR¼3¸uÀW¹~Ó;NÐQRÑ;Rð r9   rö   )rT   r  rö   r  r  )rv   rß   r  Úfilterr
  r  r  )r{   ÚchoicerT   r  rö   Úschema_infos         r8   Ú&metadata_configuration_schema_strategyr'  ]  sÀ   € ñ Ü
�‰òó	
ó
€Fð .2€HØ=A€MØ#€FØ,0€KàÐ7Ñ7ÙÜ'Ó)×0Ñ0ÙBóó
ˆð Ð<Ñ<ÙÜ)Ó+×2Ñ2ñóó
ˆð �ÒÙ"Ô#9Ó#;Ó<Ñˆ�ä%ØØ#ØØ&Øôð r9   c                   ó¶   — e Zd ZU dZej
                  ed<   eed<   ej                  ed<   e
j                  ed<   ee   ed<   dZeed<   dZeed	<   d
Zee   ed<   y
)Ú
Collectionzë
    An internal view of a collection.

    This strategy contains all the information Chroma uses internally to manage a
    collection. It is a superset of ExternalCollection and should be used to test
    internal Chroma logic.
    rR   Ú	dimensionrŒ   Úknown_metadata_keysÚknown_document_keywordsFÚhas_documentsÚhas_embeddingsNÚcollection_config)r:   r;   r<   r=   ÚuuidÚUUIDrH   r©   r²   r³   rF   r   r   r>   r-  Úboolr.  r/  r   r$   rK   r9   r8   r)  r)  ”  sZ   … ñð 	�	‰	ƒMØƒNØ�=‰=ÓØŸ™Ó'Ø! #™YÓ&Ø€M�4ÓØ €N�DÓ ØAEÐ�xÐ =Ñ>ÔEr9   r)  iÐ  Úadd_filterable_dataÚwith_hnsw_paramsr.  r-  Úwith_persistent_hnsw_paramsÚmax_hnsw_batch_sizeÚmax_hnsw_sync_thresholdc                 óÖ  — |du r|du rJ ‚ | t        «       «      } | t        «      }	 | t        j                  dd¬«      «      }
 | t        j                  t
        «      «      } | |«      }|r|st        d«      ‚|r£|	€i }	|	j                  t        «       |rN | t        j                  d|¬«      «      |	d<    | t        j                  dt        |	d   |g«      ¬«      «      |	d	<    | t        j                  «       «      r  | t        j                  g d
¢«      «      |	d<   d}t        s |	r|	j                  dd«      nd}|dddœ}d|i}i }|rHt        |«      dk  r: | t        «      } | t        j                  t         Ž «      ||<   t        |«      dk  rŒ:|€ | t        j                  «       «      }|€J ‚t"        s*|r%|r# | t        j$                  t&        dd¬«      «      }n,g }n)|r%|r# | t        j$                  t        dd¬«      «      }ng }|sd}n|€ | t        j                  «       «      }|€J ‚ | t)        |
|«      «      }t+        t-        j.                  «       ||	|
|||||||¬«      S )z¦Strategy to generate a Collection object. If add_filterable_data is True, then known_metadata_keys and known_document_keywords will be populated with consistent data.FrÊ   i   ri   z@with_persistent_hnsw_params requires with_hnsw_params to be trueNrY   r  zhnsw:batch_sizerÃ   r   rÅ   é   )rÜ   rØ   rÙ   rÉ   ré   ©rX   Úmax_sizeT)rR   rˆ   rT   r*  rŒ   r+  r-  r,  r.  r¼   r/  )r‰   Úcollection_metadatarv   rà   rß   Úfloat_typesÚ
ValueErrorÚupdateÚtest_hnsw_configÚminrÞ   r#   r#  r3   rá   rw   rq   r   ÚlistsÚsafe_text_min_size_3r¹   r)  r0  Úuuid4)r{   r3  r4  r.  r-  r5  r6  r7  rˆ   rT   r*  rŒ   Úuse_persistent_hnsw_paramsr/  Úspann_spacer	  r+  rô   r,  r¼   s                       r8   ÚcollectionsrG  ¨  s�  € ð   5Ñ(¨}ÀÑ/EÐGÐGá”Ó!Ó"€DÙÔ'Ó(€HÙ”R—[‘[¨1¸Ô=Ó>€IÙ”—‘¤Ó-Ó.€Eá!%Ð&AÓ!BÐá!Ñ*:ÜØNó
ð 	
ñ ØÐØˆHØ�‰Ô(Ô)Ù%Ù.2Ü—‘ aÐ3JÔKó/ˆHÐ*Ñ+ñ +/Ü—‘ØÜ!Ø!Ð"7Ñ8Ð:MÐNóôó+ˆHÐ&Ñ'ñ ”—‘“Ôñ &*¬"¯/©/Ò:PÓ*QÓ%RˆH�\Ñ"àAEÐå!á:B�h—l‘l <°Ô6Èˆð !ØØ'(ñ2
ˆð �\ð
Ðð >@ÐÙÜÐ%Ó&¨Ò*Ù”y“/ˆCÙ'+¬B¯I©I´{Ð,CÓ'DÐ Ñ$ô Ð%Ó&¨Ó*ð ÐÙœRŸ[™[›]Ó+ˆØÐ$Ð$Ð$õ ÙÑ0Ù&*Ü—‘Ô-¸ÀAÔFó'Ñ#ð ')Ñ#áÑ0Ù&*¬2¯8©8´IÈÐTUÔ+VÓ&WÑ#à&(Ð#áØ‰àÐ!Ù!¤"§+¡+£-Ó0ˆNØÐ%Ð%Ð%áÔ9¸)ÀUÓKÓLÐäÜ�:‰:‹<ØØØØØ/Ø#Ø 7Ø%Ø-Ø+ôð r9   Ú
collectionrX   r;  c           
      ó   —  | t        j                  t        t        j                  t        Ž ||¬«      «      }|j
                  r®|j
                  j                  «       D ]
  }||v sŒ||= Œ |j
                  j                  «       D ��ci c]6  \  }}t        |t        t        t        f«      r|t        j                  |«      “Œ8 }}}|j                   | t        j                  i |¬«      «      «       |i k(  ry|S c c}}w )zMStrategy for generating metadata that could be a part of the given collectionr:  )ÚoptionalN)rv   Údictionariesrá   rw   rq   r+  Úkeysr  Ú
isinstancer>   r©   Úfloatr¸   r?  Úfixed_dictionaries)	r{   rH  rX   r;  rT   rô   r  r  Úsampling_dicts	            r8   rT   rT     sê   € ñ  $Ü
�‰Ü”r—y‘y¤+Ð.¸ÈHô	
ó €Hð ×%Ò%Ø×1Ñ1×6Ñ6Ó8ò 	"ˆCØ�hŠØ˜S‘Mð	"ð #×6Ñ6×<Ñ<Ó>÷O
á��1Ü˜!œc¤3¬Ð.Ô/ð Œr�w‰w�q‹z‰MðO
ˆñ O
ð
 	�‰™œR×2Ñ2°2ÀÔNÓOÔPà�2‚~ØØ€OùóO
s   Â;C:c                 ó&  — t         sÆd}|j                  r t        j                  |j                  «      }n+t        j                  dt        j
                  |¬«      ¬«      }t        j                  dt        j
                  |¬«      ¬«      } | t        j                  t        j                  ||«      d¬«      «      }dj                  |«      S d}|j                  r t        j                  |j                  «      }n+t        j                  dt        j
                  |¬«      ¬«      }t        j                  dt        j
                  |¬«      ¬«      } | t        j                  t        j                  ||«      d¬«      «      }dj                  |«      S )	zNStrategy for generating documents that could be a part of the given collection)ÚCcÚCsÚPcÚPorY   )Úblacklist_categories)rX   rW   rV   ©rX   ú )rR  rS  )	r   r,  rv   rß   rª   Ú
charactersrB  rw   Újoin)r{   rH  rV  Úknown_words_stÚrandom_words_stÚwordss         r8   rU   rU   :  s,  € õ ð  8ÐØ×-Ò-ÜŸ_™_¨Z×-OÑ-OÓP‰NäŸW™WØÜŸ™Ð<PÔQôˆNô
 Ÿ'™'Ø¤§¡ÐDXÔ!Yô
ˆñ ”R—X‘XœbŸi™i¨¸ÓHÐSTÔUÓVˆØ�x‰x˜‹Ðð (ÐØ×)Ò)ÜŸ™¨×)KÑ)KÓL‰äŸ™ØÜ—]‘]Ð8LÔMô
ˆô
 —g‘gØœRŸ]™]Ð@TÔUô€Oñ ”—‘œ"Ÿ)™) N°OÓDÈqÔQÓR€EØ�8‰8�E‹?Ðr9   rÔ   Úcollection_strategyÚid_strategyÚnum_unique_metadataÚmin_metadata_sizeÚmax_metadata_sizec           
      ó°  —  | |«      }t         | t        j                  |||d¬«      «      «      }	d }
|j                  r*t	        |j
                  t        |	«      |j                  «      }
|�|n
t        |	«      } | t        j                  t        |||¬«      ||¬«      «      }g }t        t        |	«      «      D ]"  }|j                  ||t        |«      z     «       Œ$ d }|j                  r9 | t        j                  t        |«      t        |	«      t        |	«      ¬«      «      }t        |	«      dk(  r— | t        j                  «       «      r|	d   n|	}|
� | t        j                  «       «      r|
d   n|
} | t        j                  «       «      r|d   n|}|� | t        j                  «       «      r|d   n|}t        ||||¬«      S t        |	|
||¬«      S )NT)rX   r;  Úuniquer:  rV   r   )rB   rC   rD   rE   )r£   rv   rB  r.  r˜   r*  r3   rŒ   rT   rõ   Úappendr-  rU   rÞ   rA   )r{   r^  r_  rX   r;  r`  ra  rb  rH  rB   rC   Únum_metadataÚgenerated_metadatasrD   ÚirE   Ú	single_idÚsingle_embeddingÚsingle_metadataÚsingle_documents                       r8   Ú
recordsetsrm  e  s×  € ñ Ð)Ó*€Jä
ÙŒR�X‰X�k¨H¸xÐPTÔUÓVó€Cð (,€JØ× Ò Ü& z×';Ñ';¼SÀ»XÀz×GWÑGWÓXˆ
Ø*=Ð*IÑ&ÌsÐSVËx€LÙÜ
�‰ÜØÐ%6ÐARôð "Ø!ô	
óÐð €IÜ”3�s“8‹_ò LˆØ×ÑÐ,¨Q´Ð5HÓ1IÑ-IÑJÕKðLð &*€IØ×ÒÙÜ�H‰H”X˜jÓ)´C¸³HÄsÈ3ÃxÔPó
ˆ	ô ˆ3ƒx�1‚}Ù59¼"¿+¹+»-Ô5H¨3¨qª6Ècˆ	ð Ð%©$¬r¯{©{«}Ô*=ð �qŠMàð 	ñ !¤§¡£Ô/ˆI�aŠL°Yð 	ð &Ð1±d¼2¿;¹;»=Ô6IˆI�aŠLÈyð 	ô ØØ'Ø%Ø%ô	
ð 	
ô ØØØØô	ð r9   r!  c                 óâ  ‡ — t        ‰ t        «      rt        j                  ˆ fd„«      S t        ‰ t        «      rt
        j                  ˆ fd„«      S t        ‰ t        «      r&t        j                  «       j                  ˆ fd„«      S t        ‰ t        «      r)t        j                  dd¬«      j                  ˆ fd„«      S t        j                  t        ‰ «      «      j                  ˆ fd„«      S )	zi
    Returns a strategy that will generate all valid values except the input value - testing of $nin
    c                 ó   •— | ‰k7  S ru   rK   ©Úxr!  s    €r8   ra   z opposite_value.<locals>.<lambda>³  s   ø€ ¨A°©J€ r9   c                 ó   •— | ‰k7  S ru   rK   rp  s    €r8   ra   z opposite_value.<locals>.<lambda>µ  s   ø€ ¨!¨u©*€ r9   c                 ó   •— | ‰k7  S ru   rK   rp  s    €r8   ra   z opposite_value.<locals>.<lambda>·  s   ø€ ¨a°5©j€ r9   rg   rh   ri   c                 ó   •— | ‰k7  S ru   rK   rp  s    €r8   ra   z opposite_value.<locals>.<lambda>º  s   ø€ �a˜5‘j€ r9   c                 ó   •— | ‰k7  S ru   rK   rp  s    €r8   ra   z opposite_value.<locals>.<lambda>½  s   ø€ ¸!¸u¹*€ r9   )rM  rN  Úsafe_floatsr$  r>   rá   r2  rv   rÞ   r©   rà   Ú	from_typeÚtyper   s   `r8   Úopposite_valuery  ®  s«   ø€ ô �%œÔÜ×!Ñ!Ó"6Ó7Ð7Ü	�Eœ3Ô	Ü×ÑÓ 4Ó5Ð5Ü	�Eœ4Ô	 Ü�{‰{‹}×#Ñ#Ó$8Ó9Ð9Ü	�Eœ3Ô	Ü�{‰{ X¸ÔC×JÑJÛ ó
ð 	
ô �|‰|œD ›KÓ(×/Ñ/Ó0DÓEÐEr9   c                 ó   — t        |j                  j                  «       «      } | t        j                  |«      «      }|j                  |   }dg}t        |t        «      r|j                  g d¢«       nt        |t        «      r|j                  g d¢«       n[t        |t        «      r|j                  g d¢«       n7t        |t        «      r|j                  g d¢«       nJ dt        |«      › �«       ‚t        |t        «      r>| | t        j                  ddg«      «      z   }t        t        j                  |«      «      } | t        j                  |«      «      }|€||iS |dk(  rCt        |t        «      r|si S |||gt        d	«      D �cg c]  } | t        |«      «      ‘Œ c}¢iiS |d
k(  r@t        |t        «      r|si S ||t        d	«      D �cg c]  } | t        |«      «      ‘Œ c}iiS |||iiS c c}w c c}w )zLGenerate a filter that could be used in a query against the given collectionN)ú$eqú$neú$inú$nin)ú$gtú$ltú$lteú$gte)r  r€  r�  r‚  r{  r|  r}  r~  zUnsupported type: g�íµ ÷Æ°>g�íµ ÷Æ°¾r}  rY   r~  )Úsortedr+  rL  rv   rß   rM  r2  ÚextendrN  r©   r>   rx  r“   Úfloat32rõ   ry  )r{   rH  Ú
known_keysrô   r!  Ú	legal_opsÚopr[   s           r8   Úwhere_clauser‰  À  sÁ  € ô ˜
×6Ñ6×;Ñ;Ó=Ó>€Já
Œr�‰˜zÓ*Ó
+€CØ×*Ñ*¨3Ñ/€Eà&* V€Iä�%œÔØ×ÑÒ6Õ7Ü	�Eœ5Ô	!Ø×ÑÒ7Õ8Ü	�Eœ3Ô	Ø×ÑÒTÕUÜ	�Eœ3Ô	Ø×ÑÒ6Õ7à8Ð*¬4°«;¨-Ð8Ó8ˆuä�%œÔà™œRŸ_™_¨d°E¨]Ó;Ó<Ñ<ˆä”b—j‘j Ó'Ó(ˆáœRŸ_™_¨YÓ7Ó8€Bà	€zØ�Uˆ|ÐØ	ˆuŠÜ�eœSÔ!©%ØˆIØ�b˜5ÐSÌÈqËÖ#RÀA¡D¬¸Ó)>Õ$?Ò#RÐSÐTÐUÐUØ	ˆvŠÜ�eœSÔ!©%ØˆIØ�bÄÀaÃÖI¸1™4¤¨uÓ 5Õ6ÒIÐJÐKÐKà�b˜%�[Ð!Ð!ùò $Sùò Js   ÆG6
ÇG;c                 ój  — t         s?|j                  r& | t        j                  |j                  «      «      }nK | t        «      }n>|j                  r& | t        j                  |j                  «      «      }n | t
        «      } | t        j                  ddg«      «      }|dk(  rd|iS |dk(  sJ ‚d|iS )zPGenerate a where_document filter that could be used against the given collectionz	$containsz$not_contains)r   r,  rv   rß   rC  rá   )r{   rH  Úwordrˆ  s       r8   Úwhere_doc_clauserŒ  ì  s¥   € õ Ø×-Ò-ÙœŸ™¨
×(JÑ(JÓKÓL‰DáÔ,Ó-‰Dà×-Ò-ÙœŸ™¨
×(JÑ(JÓKÓL‰Dáœ	“?ˆDñ
 
Œb�o‰o˜{¨OÐ<Ó=Ó	>€Bà	ˆ[ÒØ˜TÐ"Ð"à�_Ò$Ð$Ð$Ø Ð&Ð&r9   Úbase_stc                 óŽ   — t        j                  ddg«      }t        j                  |t        j                  | dd¬«      dd¬«      S ©Nz$andz$orrÊ   )r;  rX   rV   )rL  ÚvaluesrX   r;  ©rv   rß   rK  rB  ©r�  rˆ  s     r8   Úbinary_operator_clauser“  	  ó@   € ô +-¯/©/¸6À5¸/Ó*J€BÜ�?‰?ØÜ�x‰x˜¨!°aÔ8ØØô	ð r9   c                 óŽ   — t        j                  ddg«      }t        j                  |t        j                  | dd¬«      dd¬«      S r�  r‘  r’  s     r8   Úbinary_document_operator_clauser–    r”  r9   c                 ó\   — t        |«      } | t        j                  |t        «      «      }|S ru   )r‰  rv   Ú	recursiver“  ©r{   rH  r�  Úwheres       r8   Úrecursive_where_clauser›  !  s'   € ä˜:Ó&€GÙœbŸl™l¨7Ô4JÓKÓL€EØ€Lr9   c                 ó\   — t        |«      } | t        j                  |t        «      «      }|S ru   )rŒ  rv   r˜  r–  r™  s       r8   Úrecursive_where_doc_clauser�  (  s.   € ô ˜zÓ*€GÙ!%Ü
�‰�WÔ=Ó>ó"€Eð €Lr9   c                   óv   — e Zd ZU eej
                     ed<   eeee	e   f      ed<   eej                     ed<   y)ÚFilterrš  rB   Úwhere_documentN)r:   r;   r<   r   rF   ÚWhererH   r   r>   r   ÚWhereDocumentrK   r9   r8   rŸ  rŸ  3  s:   … Ø�E—K‘KÑ Ó Ø	�%˜˜T #™Y˜Ñ'Ñ	(Ó(Ø˜U×0Ñ0Ñ1Ô1r9   rŸ  Úcollection_stÚrecordset_stÚinclude_all_idsc           
      ó‚  —  | |«      } | |«      } | t        j                  t        j                  «       t        |«      «      «      } | t        j                  t        j                  «       t	        |«      «      «      }t        |d   t        «      r|d   g}n|d   }|sl | t        j                  t        j                  «       t        j                  t        j                  |«      d¬«      «      «      }|�t        t        |«      «      }|�-t        |«      dk(  r | t        j                  «       «      r|d   }|||dœS )NrB   rV   rW  r   )rš  r   rB   )rv   rw   ry   r›  r�  rM  r>   rB  rß   r£   Úsetr3   rÞ   )	r{   r£  r¤  r¥  rH  Ú	recordsetr‰  Úwhere_document_clauserB   s	            r8   Úfiltersrª  9  s  € ñ �mÓ$€JÙ�\Ó"€IáœŸ	™	¤"§'¡'£)Ô-CÀJÓ-OÓPÓQ€LÙ Ü
�	‰	”"—'‘'“)Ô7¸
ÓCÓDóÐô �)˜EÑ"¤CÔ(Ø˜ÑÐ ‰à˜ÑˆáÙ”2—9‘9œRŸW™W›Y¬¯©´·±ÀÓ1EÐPQÔ(RÓSÓTˆØˆ?ä”s˜3“x“.ˆCð €œ3˜s›8 qš=©T´"·+±+³-Ô-@Ø�!‰fˆà!Ð5JÐSVÑWÐWr9   )r   N)F)�r¤   r�   Úhypothesis.strategiesÚ
strategiesrv   Útypingr   r   r   r   r   r   r	   Útyping_extensionsr
   r0  Únumpyr“   Únumpy.typingr²   Úchromadb.api.typesÚapirF   r}   Ú*hypothesis.strategies._internal.strategiesr   Ú!chromadb.test.api.test_schema_e2er   r   Úchromadb.test.conftestr   Údataclassesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úchromadb.typesr    r!   r"   r#   Ú%chromadb.api.collection_configurationr$   r%   r&   Ú"chromadb.utils.embedding_functionsr'   r”   Úseedr@  Údictr-   rA   rM   rO   rQ   Úsql_alphabetrª   rá   Úsql_alphabet_minus_underscorerC  Útenant_database_namer$  rà   Úsafe_integersrâ   rv  rÞ   rq   r©   rN  r>   r2  rH   rz   Úlegal_id_charactersÚfloat16r…  Úfloat64r=  Úint16Úint32Úint64Ú	int_typesÚ	compositeÚDrawFnr‰   rw   ry   rK  r<  r³   r˜   ÚNDArrayrš   rœ   rµ   r¹   r»   r¾   rä   rç   rþ   r  r
  r  r  r  r  r'  r)  r¸   rG  rT   rJ   rU   rm  ry  r¡  r‰  r¢  rŒ  r“  r–  r›  r�  rŸ  rª  rK   r9   r8   ú<module>rÊ     sK	  ðÜ Û Ý "ß @× @Ñ @Ý 'Û Û Ý ß "Ð "Û 	Ý E÷õ 4Ý !÷÷ ÷ ÷ ó ÷$ HÑ GÝ 9÷ñ õ
ð
 ‡	�	‡�ˆqÔ ð.  ØØñÐ ô	3˜ô 	3ô	EÐ"ô 	Eô.Ð,ô .ô.Ð.ô .ô'ˆYô 'ð R€ØˆB�G‰G˜\°AÔ6€	àEð ð �r—w‘wÐ(EÐPQÔRÐ Ø�r—w‘w¨¸qÔAÐ à+×2Ñ2ñ  4]ó  ^Ð ð ×ÑÑ>Ó?€	Ø+×2Ñ2Ñ3TÓUÐ à�—‘Ø )ô€ð
 ˆb�i‰iØØØØ
ØØô€ð ØØØ€B‡K�KƒMð	C€ˆT�.  s¨E°3¸Ð'<Ñ!=Ñ>Ñ?ó ðØ×!Ñ! #Ñ&ðØ46×4EÑ4EÀcÑ4Jðà×Ñ�sÑóð Jð ð �z‰z˜2Ÿ:™: r§z¡zÐ2€Ø�X‰X�r—x‘x §¡Ð*€	ð ‡�ð	˜"Ÿ)™)ð 	¨ò 	ó ð	ð  �b—i‘iØ€B‡G�GƒIˆˆr�‰˜y¨)¨"¯)©)°[Ð*AÓBóÐ ðØ	ðàðð �=‰=ðð ×Ñó	ð*	Ø	ð	àð	ð �=‰=ð	ð ‡Y�Y×Ñ�sÑó		ôQ ×!8Ñ!8¸Ñ!Cô Qô8C¨×)@Ñ)@ÀÑ)Kô Cð
Ø	ðØ—]‘]ðà×Ñ�u×.Ñ.¨zÑ:Ñ;óð ÷Fð Fó ðFð ôÐ 7ó ó ðð ‡�ðI r§y¡yð IÐ5Fò Ió ðIðX ‡�ð¨b¯i©ið Ð<Sò ó ðð( ‡�ðD˜"Ÿ)™)ð D¨°Ñ(8ò Dó ðDðN ‡�ð* b§i¡ið *°HÐ=OÑ4Pò *ó ð*ð0 ‡�ð74Ø
�)‰)ð74àÐ+Ñ,ò74ó ð74ðt ÷	ð 	ó ð	ð=˜$˜s C˜x™.ð =¨T°#°s°(©^ó =ðÐ!2ð °t¸CÀ¸H±~ó ð ‡�ð7Ø
�)‰)ð7à
ˆ6�4˜˜S˜‘>Ð!Ñ"ò7ó ð7ð ‡�ð3Ø
�)‰)ð3àò3ó ð3ðl ôFÐ#ó Fó ðFð& ‡�ð !&Ø"Ø%)Ø$(Ø;B¸2¿7¹7À5»>Ø#Ø#'ñmØ
�)‰)ðmàðmð ðmð ˜T‘Nð	mð
 ˜D‘>ðmð "$×!2Ñ!2°4Ñ!8ðmð ðmð !ðmð òmó ðmð` ‡�ð Ø"ñ	Ø
�)‰)ðàðð ðð �s‰mð	ð
 ˆe�n‰nÑòó ðð@ ‡�ð'�2—9‘9ð '¨*ð '¸¿¹ò 'ó ð'ðT ‡�ñ 7B³mØ'0ØØð *.ØØ'+ñEØ
�)‰)ðEà'¨
Ñ3ðEð   Ñ$ðEð ð	Eð
 ðEð " #™ðEð ðEð   ‘}ðEð òEó ðEðPF˜,ð F¨>¸#Ñ+>ó Fð$ ‡�ð("�r—y‘yð ("¨jð ("¸U¿[º[ò ("ó ð("ðV ‡�ð'˜2Ÿ9™9ð '°*ð 'À×ATÒATò 'ó ð'ð8	Ø˜EŸKšKÑ(ð	à�E—K’KÑ ó	ð	Ø˜E×/Ò/Ñ0ð	à�E×'Ò'Ñ(ó	ð ‡�ð §¡ð ¸
ð ÀuÇ{Â{ò ó ðð ‡�ðØ
�)‰)ðØ!+ðà
×Òòó ðô2ˆYô 2ð ‡�ð
 "ñ	XØ
�)‰)ðXà×$Ñ$ ZÑ0ðXð ×#Ñ# IÑ.ðXð ð	Xð
 òXó ñXr9   