§
    ˜ŠtjY›  ã                   óâ  — 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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jF        eEd¬¦  «        ZGdZH ejF        eHd¬¦  «        ZI ejF        eEd¬¦  «        ZJeJ K                    d„ ¦  «        ZJeG K                    d„ ¦  «        ZGeI K                    d „ ¦  «        ZI ejL        d!d"¬#¦  «        ZM ejN        d$d$d$d%d&d'¬(¦  «        ZOeGeMeO ejP        ¦   «         gZQeee
eReSeTeUf                           eVd)<   d*ej        e         d+ej        e         d,ej        e         fd-„ZWd.ZXejY        ejZ        ej[        gZ\ej]        ej^        ej_        gZ`eja        d/ejb        d,eTfd0„¦   «         Zc ejd         eje        ¦   «          ejf        eG ejd        eQŽ ¦  «        ¦  «        Zgd1eRd2eRd3ejh        d,ej$        fd4„Zid1eRd2eRd3ejh        d,ej        jj        e         fd5„Zk G d6„ d7ej#        e!         ¦  «        Zl G d8„ d9ej#        e!         ¦  «        Zmd1eRd3ejh        d,ej        ej#        e"                  fd:„Zne  G d;„ d<¦  «        ¦   «         Zoe; G d=„ d>e¦  «        ¦   «         Zpeja        d/ejb        d,e(fd?„¦   «         Zqeja        d/ejb        d,e)fd@„¦   «         Zreja        d/ejb        d,ee&         fdA„¦   «         Zseja        d/ejb        d,ee'         fdB„¦   «         Zteja        d/ejb        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ja        d/ejb        d,ee&e	eTef         f         fdJ„¦   «         Zyeja        d/ejb        d,evfdK„¦   «         Zze  G dL„ dMeo¦  «        ¦   «         Z{eja        d$d$dd ej|        d$¦  «        dNdNfd/ejb        dOeUdPeUdQeeU         dReeU         dSej        eU         dTeRdUeRd,e{fdV„¦   «         Z}eja        	 	 drd/ejb        dWe{dXeRdYeeR         d,eej%                 f
dZ„¦   «         Z~eja        d/ejb        dWe{d,ej        fd[„¦   «         Z€eja         e}¦   «         eGdd\dd dfd/ejb        d]ee{         d^eeT         dXeRdYeRd_eeR         d`eRdaeeR         d,eAfdb„¦   «         Z�dce2d,ee         fdd„Z‚eja        d/ejb        dWe{d,ejƒ        fde„¦   «         Z„eja        d/ejb        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ja        d/ejb        dWe{d,ejƒ        fdj„¦   «         Z‰eja        d/ejb        dWe{d,ej…        fdk„¦   «         ZŠ G dl„ dme¦  «        Z‹eja        	 dsd/ejb        dnej        e{         doej        eA         dpeUd,e‹f
dq„¦   «         ZŒdS )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                 óœ   •— t          ¦   «                              ¦   «         }t          |¦  «        | j        k    r|S |d | j        …         dz   S )Nz...})ÚsuperÚ__repr__ÚlenÚ_REPR_MAX_LEN)ÚselfÚfullÚ	__class__s     €ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/test/property/strategies.pyr2   z_TruncatedReprDict.__repr__R   sJ   ø€ Ý‰wŒw×ÒÑ!Ô!ˆÝˆt‰9Œ9˜Ô*Ò*Ð*ØˆKØÐ(�dÔ(Ð(Ô)¨FÑ2Ð2ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   Ústrr2   Ú__classcell__)r7   s   @r8   r-   r-   M   sO   ø€ € € € € ØjÐjà€Mð3˜#ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 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<   dS )Ú	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˜˜eœhœÐ'Ô	(Ð(Ð(Ñ(Ø˜˜uÔ/°´Ð@ÔAÔBÐBÐBÑBØ˜˜d 8¨E¬NÔ#;Ô<¸e¼nÐLÔMÔNÐNÐNÑNØ˜˜d 5¤>Ô2°E´NÐBÔCÔDÐDÐDÑDÐ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<   dS )Ú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   sy   € € € € € € ðð ð 
ˆeŒhŒÐÐÑØ˜Ô)Ô*Ð*Ð*Ñ*Ø˜˜X e¤nÔ5Ô6Ô7Ð7Ð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<   dS )Ú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   so   € € € € € € ðð ð 
ˆeŒ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<   dS )Ú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   {   sb   € € € € € € ðð ð 	Œ€L€L�LØ˜œÔ(Ð(Ð(Ñ(Ø�u”~Ô&Ð&Ð&Ñ&Ø�u”~Ô&Ð&Ð&Ñ&Ð&Ð&r9   rQ   z@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_é   )ÚalphabetÚmin_sizez?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-é   c                 ó²   — |                       d¦  «         oA|                       d¦  «         o+|                      d¦  «         o|                      d¦  «         S )NÚ_ú-)Ú
startswithÚendswith©Úss    r8   ú<lambda>ra   �   s’   € ÀÇÂÈcÑARÔARÐ=Rð  >]Ð[\×[gÒ[gÐhkÑ[lÔ[lÐWlð  >]Ðuv×uÒuð  ADñ  vEô  vEð  rEð  >]ð  NO÷  NXò  NXð  Y\ñ  N]ô  N]ð  J]€ r9   c                 ó.   — |                       d¦  «         S ©NÚ_sa©r]   r_   s    r8   ra   ra   ”   s   € ¨1¯<ª<¸Ñ+>Ô+>Ð'>€ r9   c                 ó.   — |                       d¦  «         S rc   re   r_   s    r8   ra   ra   •   s   € ÀÇÂÈeÑATÔ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   ­   sQ   € õ Œ9Ý
Œ	�*˜jÑ)Ô)Ý
Œ	�*�bœg™iœiÑ(Ô(Ý
Œ	•"”'‘)”)˜ZÑ(Ô(ñô ð r9   zCabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_./+Údrawc                 ó|  — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        } | t          j        |¦  «        ¦  «                             ¦   «         }t          j        |                     |¦  «         ¦  «         t          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ÔPÐÝ”zÐ"BÑCÔCÐÝ”j Ñ)Ô)€Oà�•R”]Ð#6Ñ7Ô7Ñ8Ô8×>Ò>Ñ@Ô@€DÝÔÐ*×0Ò0°Ñ6Ô6Ð6Ñ7Ô7Ð7ÝÔ˜/×0Ò0°Ñ6Ô6Ð6Ñ7Ô7Ð7à€Kr9   ÚdimÚcountÚdtypec           	      óÈ   — t          t          j        t          j                             dd|| f¬¦  «                             |¦  «                             ¦   «         ¦  «        }|S ©Ng      ð¿ç      ð?)ÚlowÚhighÚsize)r   rF   r   ÚnpÚrandomÚuniformÚastypeÚtolist)rŠ   r‹   rŒ   rC   s       r8   Úcreate_embeddingsr˜   Ô   s^   € õ
 $(ÝÔåŒI×ÒØØØ˜S�\ð ñ ô ÷
 ŠV�E‰]Œ]ßŠV‰XŒXñ$ô $€Jð Ðr9   c                 óp   — t           j                             dd|| f¬¦  «                             |¦  «        S rŽ   )r“   r”   r•   r–   )rŠ   r‹   rŒ   s      r8   Úcreate_embeddings_ndarrayrš   é   s=   € õ
 Œ9×ÒØØØ�Sˆ\ð ñ ô ÷ ‚fˆU�m„mð	r9   c                   ó\   — 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dS )	Úhashing_embedding_functionrŠ   rŒ   r/   Nc                 ó"   — || _         || _        d S ru   ©rŠ   rŒ   )r5   rŠ   rŒ   s      r8   Ú__init__z#hashing_embedding_function.__init__ö   s   € ØˆŒØˆŒ
ˆ
ˆ
r9   Úinputc                 óX   ‡ — d„ |D ¦   «         }ˆ fd„|D ¦   «         }ˆ fd„|D ¦   «         }|S )Nc           	      óš   — g | ]H}t          t          j        |                     d ¦  «        ¦  «                             ¦   «         ¦  «        ‘ŒIS )zutf-8)ÚlistÚhashlibÚsha256ÚencodeÚ	hexdigest)Ú.0Útexts     r8   ú
<listcomp>z7hashing_embedding_function.__call__.<locals>.<listcomp>ü   sO   € ð 
ð 
ð 
ØGK�D•” §¢¨GÑ 4Ô 4Ñ5Ô5×?Ò?ÑAÔAÑBÔBð
ð 
ð 
r9   c           	      ó„   •— g | ]<}|‰j         t          |¦  «        z  z  |d ‰j         t          |¦  «        z  …         z   ‘Œ=S ru   )rŠ   r3   ©r¨   r©   r5   s     €r8   rª   z7hashing_embedding_function.__call__.<locals>.<listcomp>   sX   ø€ ð 
ð 
ð 
àð �D”H¥ D¡	¤	Ñ)Ñ*¨TÐ2H°D´H½sÀ4¹y¼yÑ4HÐ2HÔ-IÑIð
ð 
ð 
r9   c                 óZ   •— g | ]'}t          j        d „ |D ¦   «         ‰j        ¬¦  «        ‘Œ(S )c                 ó4   — g | ]}t          |d ¦  «        dz  ‘ŒS )é   g      .@)Úint)r¨   Úchars     r8   rª   zBhashing_embedding_function.__call__.<locals>.<listcomp>.<listcomp>  s%   € Ð<Ð<Ð<¨t•c˜$ ‘m”m dÑ*Ð<Ð<Ð<r9   )rŒ   )r“   ÚarrayrŒ   r¬   s     €r8   rª   z7hashing_embedding_function.__call__.<locals>.<listcomp>  sI   ø€ ð (
ð (
ð (
àõ ŒHÐ<Ð<°tÐ<Ñ<Ô<ÀDÄJÐOÑOÔOð(
ð (
ð (
r9   rK   )r5   r    Úhashed_textsÚpadded_textsrC   s   `    r8   Ú__call__z#hashing_embedding_function.__call__ú   sy   ø€ ð
ð 
ØOTð
ñ 
ô 
ˆð
ð 
ð 
ð 
à$ð
ñ 
ô 
ˆð(
ð (
ð (
ð (
à$ð(
ñ (
ô (
ˆ
ð
 Ðr9   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   € ØP°´ÐPÐPÀ4Ä:ÐPÐPÐPÐPr9   )r:   r;   r<   r°   ÚnptÚ	DTypeLikerŸ   rF   r   r   rµ   r>   r2   rK   r9   r8   rœ   rœ   õ   sˆ   € € € € € ð˜Cð ¨¬ð ¸$ð ð ð ð ð˜eœoð °%Ô2Bð ð ð ð ð&Q˜#ð Qð Qð Qð Qð Qð Qr9   rœ   c                   ó   — e Zd Zdedefd„ZdS )Ú"not_implemented_embedding_functionr    r/   c                 ó   — J d¦   «         ‚)NFz*This embedding function is not implementedrK   )r5   r    s     r8   rµ   z+not_implemented_embedding_function.__call__  s   € ØBÐBÑBÔBˆur9   N)r:   r;   r<   r   r   rµ   rK   r9   r8   r¼   r¼     s>   € € € € € ðC˜ið C¨Jð Cð Cð Cð Cð Cð Cr9   r¼   c           	      ó‚   — t          j        t          t          t                   t          | |¦  «        ¦  «        ¦  «        S ru   )rv   Újustr   r   r   rœ   rž   s     r8   Úembedding_function_strategyrÀ     s6   € õ Œ7ÝÕ�zÔ*Õ,FÀsÈEÑ,RÔ,RÑSÔ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<   dS )Ú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Â     sS   € € € € € € ðð ð €I€I�IØ�u”~Ô&Ð&Ð&Ñ&Ø  Ô!8¸Ô!DÔEÐEÐEÑEÐEÐEr9   rÂ   c                   ó   — e Zd ZdZdefd„ZdS )ÚSimpleIpEmbeddingFunctionz>Simple embedding function with ip space for persistence tests.r/   c                 ó   — dS )NÚiprK   r¸   s    r8   Údefault_spacez'SimpleIpEmbeddingFunction.default_space1  s   € Øˆtr9   N)r:   r;   r<   r=   r>   rÈ   rK   r9   r8   rÅ   rÅ   -  s5   € € € € € àHÐ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        ¦   «         ¦  «        r5 | 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  sX  € ð €EØÐØ€JØ€DØ€Eà€t�BŒK‰MŒMÑÔð >Ø�•R”_Ð%;Ð%;Ð%;Ñ<Ô<Ñ=Ô=ˆà€t�BŒK‰MŒMÑÔð 
Ý6Ø�•R”[¨1¸Ð=Ñ=Ô=Ñ>Ô>ð
ñ 
ô 
Ðð €t�BŒK‰MŒMÑÔð FØ�T�"œ)¥B¤G¨KÑ$8Ô$8½)ÑDÔDÑEÔEˆ
à�4�œÐ(AÐ(AÐ(AÑBÔBÑCÔC€Là�vÒÑÝàˆt•B”K‘M”MÑ"Ô"ð˜D˜D¥¤°qÀDÐ!IÑ!IÔ!IÑJÔJÐJààˆt•B”K‘M”MÑ"Ô"ð˜$˜$�rœ{°QÀ$ÐGÑGÔGÑHÔHÐHààˆt•B”K‘M”MÑ"Ô"ð�d�d�2œ;°¸dÐCÑCÔCÑDÔDÐDààˆt•B”K‘M”MÑ"Ô"ð˜4˜4¥¤°aÀ5Ð IÑ IÔ IÑJÔJÐJààˆt•B”K‘M”MÑ"Ô"ð˜$˜$�rœy°3À#ÐFÑFÔFÑGÔGÐGàð
ñ 
ô 
ˆ‰ð" 
˜Ò	 Ñ	 Ý àˆt•B”K‘M”MÑ"Ô"ð˜$˜$�rœ{°QÀ#ÐFÑFÔFÑGÔGÐGààˆt•B”K‘M”MÑ"Ô"ð˜˜�bœk°AÀÐDÑDÔDÑEÔEÐEààˆt•B”K‘M”MÑ"Ô"ð˜D˜D¥¤°qÀCÐ!HÑ!HÔ!HÑIÔIÐIààˆt•B”K‘M”MÑ"Ô"ð�d�d�2œ;°¸cÐBÑBÔBÑCÔCÐCààˆt•B”K‘M”MÑ"Ô"ð˜$˜$�rœ{°QÀ"ÐEÑEÔEÑFÔFÐFààˆt•B”K‘M”MÑ"Ô"ð% D D­¬¸qÈBÐ)OÑ)OÔ)OÑ$PÔ$PÐ$Pààˆt•B”K‘M”MÑ"Ô"ð˜D˜D¥¤°rÀSÐ!IÑ!IÔ!IÑJÔJÐJààˆt•B”K‘M”MÑ"Ô"ð˜D˜D¥¤°rÀSÐ!IÑ!IÔ!IÑJÔJÐJàð1
ñ 
ô 
ˆõ6 Ý•5˜%Ñ Ô Ø-ØØØðñ ô ð r9   c                 ó`  — d}d}d} | t          j        ¦   «         ¦  «        rCt          ¦   «         } | 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à€t�BŒK‰MŒMÑÔð FÝAÑCÔCÐØ�T�"œ)¥B¤G¨KÑ$8Ô$8½)ÑDÔDÑEÔEˆ
à€t�BŒK‰MŒMÑÔð #Øˆt•B”K‘M”MÑ"Ô"ˆå"Ø-ØØðñ ô ð r9   c                 ó‚  —  | t          j        ¦   «         ¦  «        rdS t          ¦   «         } | t          j        dd¬¦  «        ¦  «        }d}t	          |¦  «        D �]`} | t          j        ddg¦  «        ¦  «        } | t          j        g d¢¦  «        ¦  «        } | t          j        ¦   «         ¦  «        }d}|r|d	k    r | t          ¦  «        }|dk    �r2|d
k    r$|                     t          ¦   «         |¬¦  «         Œ¨|dk    r$|                     t          ¦   «         |¬¦  «         ŒÒ|dk    r$|                     t          ¦   «         |¬¦  «         Œü|dk    r%|                     t          ¦   «         |¬¦  «         �Œ'|d	k    r0 | t          ¦   «         ¦  «        }	|                     |	d¬¦  «         �Œ]|dk    rKt          sD|sB | t          ¦   «         ¦  «        }
|€ | t          ¦  «        }|                     |
|¬¦  «         d}�Œ°|dk    rª|d
k    r%|                     t          ¦   «         |¬¦  «         �Œá|dk    r%|                     t          ¦   «         |¬¦  «         �Œ|dk    r%|                     t          ¦   «         |¬¦  «         �Œ7|dk    r#|                     t          ¦   «         |¬¦  «         �Œb|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"  € ð €t�BŒK‰MŒMÑÔð Øˆtå‰XŒX€Fð �T�"œ+°¸QÐ?Ñ?Ô?Ñ@Ô@€NØ Ðå�>Ñ"Ô"ð 6Oñ 6OˆØ�D�œ¨.¸.Ð)IÑJÔJÑKÔKˆ	Ø�dÝŒOðð ð ñ	ô 	ñ
ô 
ˆð �$•r”{‘}”}Ñ%Ô%ˆØˆØð 	"�{ hÒ.Ð.à�$•y‘/”/ˆCà˜Ò&Ñ&ØÐ/Ò/Ð/Ø×#Ò#Õ+DÑ+FÔ+FÈCÐ#ÑPÔPÐPÐPØ Ò.Ð.Ø×#Ò#Õ+AÑ+CÔ+CÈÐ#ÑMÔMÐMÐMØÐ 0Ò0Ð0Ø×#Ò#Õ+CÑ+EÔ+EÈ3Ð#ÑOÔOÐOÐOØ Ò/Ð/Ø×#Ò#Õ+BÑ+DÔ+DÈ#Ð#ÑNÔNÐNÑNØ Ò(Ð(Ø $ Õ%AÑ%CÔ%CÑ DÔ D�Ø×#Ò#¨=¸dÐ#ÑCÔCÐCÑCà˜Ò.Ð.Ý.ð /à,ð /ð !% Õ%HÑ%JÔ%JÑ KÔ K�à�;Ø˜$�y™/œ/�CØ×#Ò#¨=¸cÐ#ÑBÔBÐBØ'+Ð$ùà˜.Ò(Ð(ØÐ/Ò/Ð/Ø×#Ò#Õ+DÑ+FÔ+FÈCÐ#ÑPÔPÐPÑPØ Ò.Ð.Ø×#Ò#Õ+AÑ+CÔ+CÈÐ#ÑMÔMÐMÑMØÐ 0Ò0Ð0Ø×#Ò#Õ+CÑ+EÔ+EÈ3Ð#ÑOÔOÐOÑOØ Ò/Ð/Ø×#Ò#Õ+BÑ+DÔ+DÈ#Ð#ÑNÔNÐNùð €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|n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à€t�BŒK‰MŒMÑÔð OØ!% ¥b¤oÐ6LÐ6LÐ6LÑ&MÔ&MÑ!NÔ!Nˆ�ÑØ€t�BŒK‰MŒMÑÔð 
Ø+/¨4ÝŒK !¨tÐ4Ñ4Ô4ñ,
ô ,
ˆÐ'Ñ(ð €t�BŒK‰MŒMÑÔð TØ%) T­"¬+ÀÈTÐ*RÑ*RÔ*RÑ%SÔ%SˆÐ!Ñ"Ø€t�BŒK‰MŒMÑÔð LØ!˜T¥"¤+¸ÀTÐ"JÑ"JÔ"JÑKÔKˆ�ÑØ€t�BŒK‰MŒMÑÔð WØ)-¨­b¬iÀ#ÐQTÐ.UÑ.UÔ.UÑ)VÔ)VˆÐ%Ñ&Ø€t�BŒK‰MŒMÑÔð 
Ø*.¨$ÝŒK !¨uÐ5Ñ5Ô5ñ+
ô +
ˆÐ&Ñ'ð  Ð)ˆ8ˆ8 TÐ)r9   c                 ón  — i } | t          j        ¦   «         ¦  «        r0t           | t          j        dd¬¦  «        ¦  «        ¬¦  «        |d<    | t          j        g d¢¦  «        ¦  «        }|dk    r2t           | t          j        g d¢¦  «        ¦  «        ¬	¦  «        |d
<   �n‹|dk    r2t           | t          j        g d¢¦  «        ¦  «        ¬	¦  «        |d<   �nS|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
<   �n\|dk    �rUi } | 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|n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ð €t�BŒK‰MŒMÑÔð 
Ý.GØ�•R”[¨1¸Ð=Ñ=Ô=Ñ>Ô>ð/
ñ /
ô /
ˆÐ*Ñ+ð
 �DÝ
ŒØLÐLÐLñ	
ô 	
ñô €Mð Ð)Ò)Ð)Ý 7Ø�$•r”Ð'=Ð'=Ð'=Ñ>Ô>Ñ?Ô?ð!
ñ !
ô !
ˆ�fÑÑð 
Ð,Ò	,Ð	,Ý!9Ø�$•r”Ð'=Ð'=Ð'=Ñ>Ô>Ñ?Ô?ð"
ñ "
ô "
ˆ�gÑÑð 
˜&Ò	 Ð	 à/1ˆØˆ4•”‘”ÑÔð 	QØ#' 4­¬Ð8NÐ8NÐ8NÑ(OÔ(OÑ#PÔ#PˆK˜Ñ Ø)-¨­b¬kÀAÐQUÐ.VÑ.VÔ.VÑ)WÔ)WˆÐ%Ñ&Ø#' 4­¬¸aÈ4Ð(PÑ(PÔ(PÑ#QÔ#Qˆ�KÑ Ø'+ t­B¬KÀ!ÈtÐ,TÑ,TÔ,TÑ'UÔ'Uˆ�OÑ$Ø(,¨­R¬[À1ÐPUÐ-VÑ-VÔ-VÑ(WÔ(WˆÐ$Ñ%Ø'+ t­B¬IÀÈsÐ,SÑ,SÔ,SÑ'TÔ'Tˆ�OÑ$Ø +ˆ�fÑÑØ	˜'Ò	!Ñ	!à13ˆØˆ4•”‘”ÑÔð 	RØ$( D­¬Ð9OÐ9OÐ9OÑ)PÔ)PÑ$QÔ$QˆL˜Ñ!Ø(,¨­R¬[À1ÐPSÐ-TÑ-TÔ-TÑ(UÔ(Uˆ�_Ñ%Ø'+ t­B¬KÀ!ÈrÐ,RÑ,RÔ,RÑ'SÔ'Sˆ�^Ñ$Ø*.¨$­r¬{ÀQÐRUÐ/VÑ/VÔ/VÑ*WÔ*WˆÐ&Ñ'Ø$( D­¬¸qÈCÐ)PÑ)PÔ)PÑ$QÔ$Qˆ�[Ñ!Ø(,¨­R¬[À1ÐPRÐ-SÑ-SÔ-SÑ(TÔ(Tˆ�_Ñ%Ø26°$ÝŒK !¨rÐ2Ñ2Ô2ñ3
ô 3
ˆÐ.Ñ/ð +/¨$­r¬{ÀRÐSVÐ/WÑ/WÔ/WÑ*XÔ*XˆÐ&Ñ'Ø*.¨$­r¬{ÀRÐSVÐ/WÑ/WÔ/WÑ*XÔ*XˆÐ&Ñ'Ø!-ˆ�gÑà)Ð3ˆ=ˆ=¨tÐ3r9   c                   ó†   — 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<   dS )Ú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  ss   € € € € € € ðð ð Ð)Ô*Ð*Ð*Ñ*ØÐ9Ô:Ð:Ð:Ñ:Ø�VÔÐÐÑØ   c¨3 h¤Ô0Ð0Ð0Ñ0Ø
€I€I�I€I€Ir9   r  Úitemsc                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — i | ]
\  }}|®||“ŒS ru   rK   ©r¨   ÚkÚvs      r8   ú
<dictcomp>z"non_none_items.<locals>.<dictcomp>A  s   € Ð<Ð<Ð<‘T�Q˜¨a¨mˆAˆq¨m¨m¨mr9   ©r  r  s    r8   Únon_none_itemsr  @  s   € Ø<Ð<˜UŸ[š[™]œ]Ð<Ñ<Ô<Ð<r9   rú   c                 ó6  — d }| j         �At          | j         d¦  «        r,t          t          | j                              ¦   «         ¦  «        }| j        | j        r| j                             d¬¦  «        nd | j        r| j                             d¬¦  «        n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ô 2Ð,õ #'¥s¨FÔ,E×,SÒ,SÑ,UÔ,UÑ"VÔ"VÐð ”Ø=C¼[ÐR�”×&Ò&°DÐ&Ñ9Ô9Ð9ÈdØ?E¼|ÐU�”×(Ò(°dÐ(Ñ;Ô;Ð;ÐQUØ,Cð	ð ð r9   c                 óœ   — t          ¦   «         } | t          ¦   «         ¦  «        }|                     |d ¬¦  «         |t          |¦  «        fS )Nrù   )r   rë   rñ   r%  )r{   rý   r  s      r8   Ú_schema_input_strategyr'  S  sP   € õ ‰XŒX€FØ�DÕ5Ñ7Ô7Ñ8Ô8€MØ
×Ò˜}°$ÐÑ7Ô7Ð7ØÕ'¨Ñ6Ô6Ð6Ð6r9   c                 ót  —  | t          j        g d¢¦  «        ¦  «        }d}d}d}d}|dv r+ | t          ¦   «                              d„ ¦  «        ¦  «        }|dv r+ | t	          ¦   «                              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                 ó0   — | d uot          | ¦  «        dk    S )Nr   )r3   ©Úvalues    r8   ra   z8metadata_configuration_schema_strategy.<locals>.<lambda>y  s   € ˜e¨4Ð/ÐBµC¸±J´JÀ²N€ r9   )r  r)  c                 óÊ   — | d uo_|                       d¦  «        d urt          | d         ¦  «        dk    p/|                       d¦  «        d uot          | d         ¦  «        dk    S )NrÏ   r   rÐ   )Úgetr3   r+  s    r8   ra   z8metadata_configuration_schema_strategy.<locals>.<lambda>€  sn   € ˜e¨4Ð/ð à—Y’Y˜vÑ&Ô&¨dÐ2ÐMµs¸5À¼=Ñ7IÔ7IÈAÒ7Mð TØŸ	š	 'Ñ*Ô*°$Ð6ÐR½3¸uÀW¼~Ñ;NÔ;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_strategyr2  ]  s  € ð ˆTÝ
Œðð ð ñ	
ô 	
ñ
ô 
€Fð .2€HØ=A€MØ#€FØ,0€KàÐ7Ð7Ð7Ø�4Ý'Ñ)Ô)×0Ò0ØBÐBñô ñ
ô 
ˆð Ð<Ð<Ð<Ø˜Ý)Ñ+Ô+×2Ò2ðð ñô ñ
ô 
ˆð �ÒÐØ"˜dÕ#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<   d
S )Ú
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>   r8  Úboolr9  r:  r   r$   rK   r9   r8   r4  r4  ”  s•   € € € € € € ðð ð 	Œ	€M€M�MØ€N€N�NØŒ=ÐÐÑØœÐ'Ð'Ñ'Ø! #œYÐ&Ð&Ñ&Ø€M�4ÐÐÑØ €N�DÐ Ð Ñ ØAEÐ�xÐ =Ô>ÐEÐEÑEÐEÐEr9   r4  iÐ  Úadd_filterable_dataÚwith_hnsw_paramsr9  r8  Úwith_persistent_hnsw_paramsÚmax_hnsw_batch_sizeÚmax_hnsw_sync_thresholdc                 óz  — |du r|du rJ ‚ | t          ¦   «         ¦  «        } | t          ¦  «        }	 | t          j        dd¬¦  «        ¦  «        }
 | t          j        t
          ¦  «        ¦  «        } | |¦  «        }|r|st          d¦  «        ‚|r·|	€i }	|	                     t          ¦  «         |rY | t          j        d|¬¦  «        ¦  «        |	d<    | t          j        dt          |	d         |g¦  «        ¬¦  «        ¦  «        |	d	<    | t          j
        ¦   «         ¦  «        r" | t          j        g d
¢¦  «        ¦  «        |	d<   d}t          s$|	r|	                     dd¦  «        nd}|dddœ}d|i}i }|rUt          |¦  «        dk     rB | t          ¦  «        } | t          j        t           Ž ¦  «        ||<   t          |¦  «        dk     °B|€ | 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   r5  rŒ   r6  r8  r7  r9  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À   r4  r;  Úuuid4)r{   r>  r?  r9  r8  r@  rA  rB  rˆ   rT   r5  rŒ   Úuse_persistent_hnsw_paramsr:  Úspann_spacer  r6  rû   r7  rÃ   s                       r8   ÚcollectionsrR  ¨  s’  € ð   5Ð(Ð(¨}ÀÐ/EÐ/EÐ/EÐGàˆ4•Ñ!Ô!Ñ"Ô"€DØˆtÕ'Ñ(Ô(€HØ�•R”[¨1¸Ð=Ñ=Ô=Ñ>Ô>€IØˆD•”¥Ñ-Ô-Ñ.Ô.€Eà!% Ð&AÑ!BÔ!BÐà!ð 
Ð*:ð 
ÝØNñ
ô 
ð 	
ð ð SØÐØˆHØ�ŠÕ(Ñ)Ô)Ð)Ø%ð 	Ø.2¨dÝ” aÐ3JÐKÑKÔKñ/ô /ˆHÐ*Ñ+ð +/¨$Ý”ØÝ!Ø!Ð"7Ô8Ð:MÐNñô ðñ ô ñ+ô +ˆHÐ&Ñ'ð ˆ4•”‘”ÑÔð 	Sð &* T­"¬/Ð:PÐ:PÐ:PÑ*QÔ*QÑ%RÔ%RˆH�\Ñ"àAEÐå!ð 
à:BÐL�h—l’l <°Ñ6Ô6Ð6Èˆð !ØØ'(ð2
ð 2
ˆð �\ð
Ðð >@ÐØð EÝÐ%Ñ&Ô&¨Ò*Ð*Ø�$•y‘/”/ˆCØ'+ t­B¬Iµ{Ð,CÑ'DÔ'DÐ Ñ$õ Ð%Ñ&Ô&¨Ò*Ð*ð ÐØ˜�Rœ[™]œ]Ñ+Ô+ˆØÐ$Ð$Ð$õ ð )Øð 	)Ð0ð 	)Ø&* dÝ”Õ-¸ÀAÐFÑFÔFñ'ô 'Ð#Ð#ð ')Ð#Ð#àð 	)Ð0ð 	)Ø&* d­2¬8µIÈÐTUÐ+VÑ+VÔ+VÑ&WÔ&WÐ#Ð#à&(Ð#àð 1ØˆˆàÐ!Ø!˜T¥"¤+¡-¤-Ñ0Ô0ˆNØÐ%Ð%Ð%à˜Õ9¸)ÀUÑKÔKÑLÔLÐåÝŒ:‰<Œ<ØØØØØ/Ø#Ø 7Ø%Ø-Ø+ðñ ô ð r9   Ú
collectionrX   rF  c                 ó‚  —  | t          j        t          t          j        t          Ž ||¬¦  «        ¦  «        }|j        rx|j                             ¦   «         D ]	}||v r||= Œ
d„ |j                             ¦   «         D ¦   «         }|                      | t          j	        i |¬¦  «        ¦  «        ¦  «         |i k    rdS |S )zMStrategy for generating metadata that could be a part of the given collectionrE  c                 ó‚   — i | ]<\  }}t          |t          t          t          f¦  «        ¯'|t	          j        |¦  «        “Œ=S rK   )Ú
isinstancer>   r°   Úfloatrv   r¿   r  s      r8   r  zmetadata.<locals>.<dictcomp>.  sT   € ð O
ð O
ð O
á��1Ý˜!�c¥3­Ð.Ñ/Ô/ðO
Ø�rŒw�q‰zŒzðO
ð O
ð O
r9   )ÚoptionalN)
rv   Údictionariesrè   rw   rq   r6  Úkeysr  rJ  Úfixed_dictionaries)r{   rS  rX   rF  rT   rû   Úsampling_dicts          r8   rT   rT     sé   € ð  $˜tÝ
ŒÝ•r”y¥+Ð.¸ÈHð	
ñ 	
ô 	
ñ ô  €Hð Ô%ð 
QØÔ1×6Ò6Ñ8Ô8ð 	"ð 	"ˆCØ�hˆˆØ˜S�MøðO
ð O
à"Ô6×<Ò<Ñ>Ô>ðO
ñ O
ô O
ˆð
 	�Š˜˜�RÔ2°2ÀÐNÑNÔNÑOÔOÑPÔPÐPà�2‚~€~ØˆtØ€Or9   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                     |¦  «        S d}|j        rt          j        |j        ¦  «        }n)t          j        dt          j        |¬¦  «        ¬¦  «        }t          j        dt          j        |¬¦  «        ¬¦  «        } | t          j        t          j        ||¦  «        d¬¦  «        ¦  «        }d                     |¦  «        S )	zNStrategy for generating documents that could be a part of the given collection)ÚCcÚCsÚPcÚPorY   )Úblacklist_categories)rX   rW   rV   ©rX   ú )r^  r_  )	r   r7  rv   ræ   r©   Ú
charactersrM  rw   Újoin)r{   rS  rb  Úknown_words_stÚrandom_words_stÚwordss         r8   rU   rU   :  s}  € õ ð ð  8ÐØÔ-ð 	Ýœ_¨ZÔ-OÑPÔPˆNˆNåœWØÝœÐ<PÐQÑQÔQðñ ô ˆNõ
 œ'Ø¥¤ÐDXÐ!YÑ!YÔ!Yð
ñ 
ô 
ˆð �•R”X�bœi¨¸ÑHÔHÐSTÐUÑUÔUÑVÔVˆØ�xŠx˜‰ŒÐð (ÐØÔ)ð 
Ýœ¨Ô)KÑLÔLˆˆåœØÝ”]Ð8LÐMÑMÔMð
ñ 
ô 
ˆõ
 ”gØ�Rœ]Ð@TÐUÑUÔUðñ ô €Oð ˆD•”�"œ) N°OÑDÔDÈqÐQÑQÔQÑRÔ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 ]-}| 
                    ||t          |¦  «        z           ¦  «         Œ.d }|j        rG | 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   rF  ÚuniquerE  rV   r   )rB   rC   rD   rE   )r£   rv   rM  r9  r˜   r5  r3   rŒ   rT   rü   Úappendr8  rU   rå   rA   )r{   rj  rk  rX   rF  rl  rm  rn  rS  rB   rC   Únum_metadataÚgenerated_metadatasrD   ÚirE   Ú	single_idÚsingle_embeddingÚsingle_metadataÚsingle_documents                       r8   Ú
recordsetsry  e  sl  € ð �Ð)Ñ*Ô*€Jå
Øˆ�RŒX�k¨H¸xÐPTÐUÑUÔUÑVÔVñô €Cð (,€JØÔ ð YÝ& zÔ';½SÀ¹X¼XÀzÔGWÑXÔXˆ
Ø*=Ð*IÐ&Ð&ÍsÐSVÉxÌx€LØ˜$Ý
ŒÝØÐ%6ÐARðñ ô ð "Ø!ð	
ñ 	
ô 	
ñô Ðð €IÝ•3�s‘8”8‰_Œ_ð Lð LˆØ×ÒÐ,¨QµÐ5HÑ1IÔ1IÑ-IÔJÑKÔKÐKÐKà%)€IØÔð 
Ø�DÝŒH•X˜jÑ)Ô)µC¸±H´HÅsÈ3ÁxÄxÐPÑPÔPñ
ô 
ˆ	õ ˆ3�x„x�1‚}€}Ø59°T½"¼+¹-¼-Ñ5HÔ5HÐ+Q¨3¨q¬6¨6Ècˆ	ð Ð%¨$¨$­r¬{©}¬}Ñ*=Ô*=Ð%ð �qŒMˆMàð 	ð !˜D¥¤¡¤Ñ/Ô/Ð>ˆI�aŒLˆL°Yð 	ð &Ð1°d°d½2¼;¹=¼=Ñ6IÔ6IÐ1ˆI�aŒLˆLÈyð 	õ ØØ'Ø%Ø%ð	
ñ 
ô 
ð 	
õ ØØØØð	ñ ô ð r9   r,  c                 ó8  ‡ — t          ‰ t          ¦  «        rt                               ˆ fd„¦  «        S t          ‰ t          ¦  «        rt
                               ˆ fd„¦  «        S t          ‰ t          ¦  «        r)t          j        ¦   «                              ˆ fd„¦  «        S t          ‰ t          ¦  «        r,t          j
        dd¬¦  «                             ˆ fd„¦  «        S t          j        t          ‰ ¦  «        ¦  «                             ˆ fd„¦  «        S )	zi
    Returns a strategy that will generate all valid values except the input value - testing of $nin
    c                 ó   •— | ‰k    S ru   rK   ©Úxr,  s    €r8   ra   z opposite_value.<locals>.<lambda>³  s   ø€ ¨A°ªJ€ r9   c                 ó   •— | ‰k    S ru   rK   r|  s    €r8   ra   z opposite_value.<locals>.<lambda>µ  s   ø€ ¨!¨uª*€ r9   c                 ó   •— | ‰k    S ru   rK   r|  s    €r8   ra   z opposite_value.<locals>.<lambda>·  s   ø€ ¨a°5ªj€ r9   rg   rh   ri   c                 ó   •— | ‰k    S ru   rK   r|  s    €r8   ra   z opposite_value.<locals>.<lambda>º  s   ø€ �a˜5’j€ r9   c                 ó   •— | ‰k    S ru   rK   r|  s    €r8   ra   z opposite_value.<locals>.<lambda>½  s   ø€ ¸!¸uº*€ r9   )rV  rW  Úsafe_floatsr/  r>   rè   r=  rv   rå   r°   rç   Ú	from_typeÚtyper+  s   `r8   Úopposite_valuer…  ®  s  ø€ õ �%�ÑÔð FÝ×!Ò!Ð"6Ð"6Ð"6Ð"6Ñ7Ô7Ð7Ý	�E�3Ñ	Ô	ð 	FÝ×ÒÐ 4Ð 4Ð 4Ð 4Ñ5Ô5Ð5Ý	�E�4Ñ	 Ô	 ð FÝŒ{‰}Œ}×#Ò#Ð$8Ð$8Ð$8Ð$8Ñ9Ô9Ð9Ý	�E�3Ñ	Ô	ð FÝŒ{ X¸ÐCÑCÔC×JÒJØ Ð Ð Ð ñ
ô 
ð 	
õ Œ|�D ™KœKÑ(Ô(×/Ò/Ð0DÐ0DÐ0DÐ0DÑEÔEÐEr9   c                 óL  ‡ ‡— t          |j                             ¦   «         ¦  «        } ‰ t          j        |¦  «        ¦  «        }|j        |         Šdg}t          ‰t          ¦  «        r|                     g d¢¦  «         n¡t          ‰t          ¦  «        r|                     g d¢¦  «         ntt          ‰t          ¦  «        r|                     g d¢¦  «         nGt          ‰t          ¦  «        r|                     g d¢¦  «         nJ dt          ‰¦  «        › �¦   «         ‚t          ‰t          ¦  «        rC‰ ‰ t          j        ddg¦  «        ¦  «        z   Št          t          j        ‰¦  «        ¦  «        Š ‰ t          j        |¦  «        ¦  «        }|€|‰iS |d	k    r<t          ‰t          ¦  «        r‰si S ||‰gˆ ˆfd
„t          d¦  «        D ¦   «         ¢iiS |dk    r9t          ‰t          ¦  «        r‰si S ||ˆ ˆfd„t          d¦  «        D ¦   «         iiS ||‰iiS )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Š  FzUnsupported type: g�íµ ÷Æ°>g�íµ ÷Æ°¾r‰  c                 ó@   •— g | ]} ‰t          ‰¦  «        ¦  «        ‘ŒS rK   ©r…  ©r¨   r[   r{   r,  s     €€r8   rª   z where_clause.<locals>.<listcomp>ã  s+   ø€ Ð#RÐ#RÐ#RÀA D D­¸Ñ)>Ô)>Ñ$?Ô$?Ð#RÐ#RÐ#Rr9   rY   rŠ  c                 ó@   •— g | ]} ‰t          ‰¦  «        ¦  «        ‘ŒS rK   r�  r‘  s     €€r8   rª   z where_clause.<locals>.<listcomp>ç  s+   ø€ ÐIÐIÐI¸1˜4˜4¥¨uÑ 5Ô 5Ñ6Ô6ÐIÐIÐIr9   )Úsortedr6  rZ  rv   ræ   rV  r=  ÚextendrW  r°   r>   r„  r“   Úfloat32rü   )r{   rS  Ú
known_keysrû   Ú	legal_opsÚopr,  s   `     @r8   Úwhere_clauser™  À  s_  øø€ õ ˜
Ô6×;Ò;Ñ=Ô=Ñ>Ô>€Jà
ˆ$�rŒ˜zÑ*Ô*Ñ
+Ô
+€CØÔ*¨3Ô/€Eà&* V€Iå�%�ÑÔð 	9Ø×ÒÐ6Ð6Ð6Ñ7Ô7Ð7Ð7Ý	�E�5Ñ	!Ô	!ð 9Ø×ÒÐ7Ð7Ð7Ñ8Ô8Ð8Ð8Ý	�E�3Ñ	Ô	ð 9Ø×ÒÐTÐTÐTÑUÔUÐUÐUÝ	�E�3Ñ	Ô	ð 9Ø×ÒÐ6Ð6Ð6Ñ7Ô7Ð7Ð7à8Ð8­4°©;¬;Ð8Ð8Ñ8Ô8ˆuå�%�ÑÔð )à˜˜�Rœ_¨d°E¨]Ñ;Ô;Ñ<Ô<Ñ<ˆå•b”j Ñ'Ô'Ñ(Ô(ˆà˜�Rœ_¨YÑ7Ô7Ñ8Ô8€Bà	€zØ�Uˆ|ÐØ	ˆuŠˆÝ�e�SÑ!Ô!ð 	¨%ð 	ØˆIØ�b˜5ÐSÐ#RÐ#RÐ#RÐ#RÐ#RÍÈqÉÌÐ#RÑ#RÔ#RÐSÐTÐUÐUØ	ˆvŠˆÝ�e�SÑ!Ô!ð 	¨%ð 	ØˆIØ�bÐIÐIÐIÐIÐIÅÀaÁÄÐIÑIÔIÐJÐKÐKà�b˜%�[Ð!Ð!r9   c                 ód  — 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   r7  rv   ræ   rN  rè   )r{   rS  Úwordr˜  s       r8   Úwhere_doc_clauserœ  ì  sÏ   € õ ð 	#ØÔ-ð 	.Ø�4�œ¨
Ô(JÑKÔKÑLÔLˆDˆDà�4Õ,Ñ-Ô-ˆDˆDàÔ-ð 	#Ø�4�œ¨
Ô(JÑKÔKÑLÔLˆDˆDà�4�	‘?”?ˆDð
 
ˆ�bŒo˜{¨OÐ<Ñ=Ô=Ñ	>Ô	>€Bà	ˆ[ÒÐØ˜TÐ"Ð"à�_Ò$Ð$Ð$Ð$Ø Ð&Ð&r9   Úbase_stc                 óˆ   — t          j        ddg¦  «        }t          j        |t          j        | dd¬¦  «        dd¬¦  «        S ©Nz$andz$orrÑ   )rF  rX   rV   )rZ  ÚvaluesrX   rF  ©rv   ræ   rY  rM  ©r�  r˜  s     r8   Úbinary_operator_clauser£  	  óM   € õ +-¬/¸6À5¸/Ñ*JÔ*J€BÝŒ?ØÝŒx˜¨!°aÐ8Ñ8Ô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                 ój   — t          |¦  «        } | t          j        |t          ¦  «        ¦  «        }|S ru   )r™  rv   Ú	recursiver£  ©r{   rS  r�  Úwheres       r8   Úrecursive_where_clauser«  !  s0   € å˜:Ñ&Ô&€GØ˜�bœl¨7Õ4JÑKÔKÑLÔL€EØ€Lr9   c                 ój   — t          |¦  «        } | t          j        |t          ¦  «        ¦  «        }|S ru   )rœ  rv   r¨  r¦  r©  s       r8   Úrecursive_where_doc_clauser­  (  s9   € õ ˜zÑ*Ô*€GØ!% Ý
Œ�WÕ=Ñ>Ô>ñ"ô "€Eð €Lr9   c                   ó‚   — e Zd ZU eej                 ed<   eeee	e         f                  ed<   eej
                 ed<   dS )ÚFilterrª  rB   Úwhere_documentN)r:   r;   r<   r   rF   ÚWhererH   r   r>   r   ÚWhereDocumentrK   r9   r8   r¯  r¯  3  sW   € € € € € € Ø�E”KÔ Ð Ð Ñ Ø	�%˜˜T #œY˜Ô'Ô	(Ð(Ð(Ñ(Ø˜UÔ0Ô1Ð1Ð1Ñ1Ð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         }|ss | t          j        t          j        ¦   «         t          j        t          j        |¦  «        d¬¦  «        ¦  «        ¦  «        }|�t          t          |¦  «        ¦  «        }|�7t          |¦  «        dk    r$ | t          j        ¦   «         ¦  «        r|d         }|||dœS )NrB   rV   rc  r   )rª  r°  rB   )rv   rw   ry   r«  r­  rV  r>   rM  ræ   r£   Úsetr3   rå   )	r{   r³  r´  rµ  rS  Ú	recordsetr™  Úwhere_document_clauserB   s	            r8   Úfiltersrº  9  sK  € ð ��mÑ$Ô$€JØ��\Ñ"Ô"€Ià�4�œ	¥"¤'¡)¤)Õ-CÀJÑ-OÔ-OÑPÔPÑQÔQ€LØ ˜DÝ
Œ	•"”'‘)”)Õ7¸
ÑCÔCÑDÔDñô Ðõ �)˜EÔ"¥CÑ(Ô(ð Ø˜ÔÐ ˆˆà˜Ôˆàð !Øˆd•2”9�RœW™YœY­¬µ´ÀÑ1EÔ1EÐPQÐ(RÑ(RÔ(RÑSÔSÑTÔTˆØˆ?å•s˜3‘x”x‘.”.ˆCð €�3˜s™8œ8 qš=˜=¨T¨Tµ"´+±-´-Ñ-@Ô-@˜=Ø�!Œfˆà!Ð5JÐSVÐWÐWÐWr9   )r   N)F)�r¤   r�   Úhypothesis.strategiesÚ
strategiesrv   Útypingr   r   r   r   r   r   r	   Útyping_extensionsr
   r;  Ú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”   ÚseedrK  Údictr-   rA   rM   rO   rQ   Úsql_alphabetr©   rè   Úsql_alphabet_minus_underscorerN  Útenant_database_namer/  rç   Úsafe_integersré   r‚  rå   rq   r°   rW  r>   r=  rH   rz   Úlegal_id_charactersÚfloat16r•  Úfloat64rH  Úint16Úint32Úint64Ú	int_typesÚ	compositeÚDrawFnr‰   rw   ry   rY  rG  rº   r˜   ÚNDArrayrš   rœ   r¼   rÀ   rÂ   rÅ   rë   rî   r  r	  r  r  r  r%  r'  r2  r4  r¿   rR  rT   rJ   rU   ry  r…  r±  r™  r²  rœ  r£  r¦  r«  r­  r¯  rº  rK   r9   r8   ú<module>rÚ     sè  ðØ €€€€Ø Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø 	€	€	€	Ø EÐ EÐ EÐ EÐ EÐ Eðð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð$ HÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð
 „	‡‚ˆqÑ Ô Ð ð.  ØØðð Ð ð	3ð 	3ð 	3ð 	3ð 	3˜ñ 	3ô 	3ð 	3ð	Eð 	Eð 	Eð 	Eð 	EÐ"ñ 	Eô 	Eð 	Eð.ð .ð .ð .ð .Ð,ñ .ô .ð .ð.ð .ð .ð .ð .Ð.ñ .ô .ð .ð'ð 'ð 'ð 'ð 'ˆYñ 'ô 'ð 'ð R€ØˆBŒG˜\°AÐ6Ñ6Ô6€	àEð ð �r”wÐ(EÐPQÐRÑRÔRÐ Ø�r”w¨¸qÐAÑAÔAÐ à+×2Ò2ð  4]ð  4]ñ  ^ô  ^Ð ð ×ÒÐ>Ð>Ñ?Ô?€	Ø+×2Ò2Ð3TÐ3TÑUÔUÐ à�”Ø )ðñ ô €ð
 ˆbŒiØØØØ
ØØðñ ô €ð ØØØ€B„K�M„Mð	C€ˆT�.  s¨E°3¸Ð'<Ô!=Ô>Ô?ð ð ñ ðØÔ! #Ô&ðØ46Ô4EÀcÔ4JðàÔ�sÔðð ð ð ð Jð ð Œz˜2œ: r¤zÐ2€ØŒX�r”x ¤Ð*€	ð „ð	˜"œ)ð 	¨ð 	ð 	ð 	ñ „ð	ð  �b”iØ€B„G�I„IˆˆrŒ˜y¨)¨"¬)°[Ð*AÑBÔBñô Ð ðØ	ðàðð Œ=ðð Ôð	ð ð ð ð*	Ø	ð	àð	ð Œ=ð	ð „YÔ�sÔð		ð 	ð 	ð 	ðQð Qð Qð Qð Q Ô!8¸Ô!Cñ Qô Qð Qð8Cð Cð Cð Cð C¨Ô)@ÀÔ)Kñ Cô Cð Cð
Ø	ðØ”]ðàÔ�uÔ.¨zÔ:Ô;ðð ð ð ð ðFð Fð Fð Fð Fñ Fô Fñ „ðFð ðð ð ð ð Ð 7ñ ô ñ Ôðð „ðI r¤yð IÐ5Fð Ið Ið Iñ „ðIðX „ð¨b¬ið Ð<Sð ð ð ñ „ðð( „ðD˜"œ)ð D¨°Ô(8ð Dð Dð Dñ „ðDðN „ð* b¤ið *°HÐ=OÔ4Pð *ð *ð *ñ „ð*ð0 „ð74Ø
Œ)ð74àÐ+Ô,ð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ð 7ñ „ð7ð „ð3Ø
Œ)ð3àð3ð 3ð 3ñ „ð3ðl ðFð Fð Fð Fð FÐ#ñ Fô Fñ „ðFð& „ð !&Ø"Ø%)Ø$(Ø;B¸2¼7À5¹>¼>Ø#Ø#'ðmð mØ
Œ)ðmàðmð ðmð ˜T”Nð	mð
 ˜D”>ðmð "$Ô!2°4Ô!8ðmð ðmð !ðmð ðmð mð mñ „ðmð` „ð Ø"ð	ð Ø
Œ)ðàðð ðð �sŒmð	ð
 ˆeŒnÔðð ð ñ „ðð@ „ð'�2”9ð '¨*ð '¸¼ð 'ð 'ð 'ñ „ð'ðT „ð 7B°k±m´mØ'0ØØð *.ØØ'+ðEð EØ
Œ)ðEà'¨
Ô3ðEð   Ô$ðEð ð	Eð
 ðEð " #œðEð ðEð   ”}ðEð ðEð Eð Eñ „ðEðPF˜,ð F¨>¸#Ô+>ð Fð Fð Fð Fð$ „ð("�r”yð ("¨jð ("¸U¼[ð ("ð ("ð ("ñ „ð("ðV „ð'˜2œ9ð '°*ð 'ÀÔATð 'ð 'ð 'ñ „ð'ð8	Ø˜EœKÔ(ð	à�E”KÔ ð	ð 	ð 	ð 	ð	Ø˜EÔ/Ô0ð	à�EÔ'Ô(ð	ð 	ð 	ð 	ð „ð ¤ð ¸
ð ÀuÄ{ð ð ð ñ „ðð „ðØ
Œ)ðØ!+ðà
Ôðð ð ñ „ðð2ð 2ð 2ð 2ð 2ˆYñ 2ô 2ð 2ð „ð
 "ð	Xð XØ
Œ)ðXàÔ$ ZÔ0ðXð Ô# IÔ.ðXð ð	Xð
 ðXð Xð Xñ „ðXð Xð Xr9   