
    LKii                         S SK Jr  S SKJrJr  S SKJrJr  S SKrS SK	J
r
JrJrJr  S SKJr  SS jrSS jrSS	 jr\ " S
 S\\   5      5       rSS jrg)    )embedding_functions)EmbeddingFunctionregister_embedding_function)DictAnyN)
EmbeddingsSpace
EmbeddableSparseEmbeddingFunction)validation_contextc                  B    1 Skn U [         R                  " 5       :X  d   eg)a  
Ensure that `get_builtins` is consistent after the ef migration.

This test is intended to be temporary until the ef migration is complete as
these expected builtins are likely to grow as long as users add new
embedding functions.

REMOVE ME ON THE NEXT EF ADDITION
>    ONNXMiniLM_L6_V2Bm25EmbeddingFunctionJinaEmbeddingFunctionMorphEmbeddingFunctionNomicEmbeddingFunctionCohereEmbeddingFunctionOllamaEmbeddingFunctionOpenAIEmbeddingFunctionBasetenEmbeddingFunctionDefaultEmbeddingFunctionMistralEmbeddingFunctionOpenCLIPEmbeddingFunctionRoboflowEmbeddingFunctionText2VecEmbeddingFunctionVoyageAIEmbeddingFunctionHuggingFaceEmbeddingServerChromaBm25EmbeddingFunctionGooglePalmEmbeddingFunctionInstructorEmbeddingFunctionTogetherAIEmbeddingFunctionGoogleGenaiEmbeddingFunctionHuggingFaceEmbeddingFunctionGoogleVertexEmbeddingFunctionAmazonBedrockEmbeddingFunction ChromaCloudQwenEmbeddingFunction ChromaLangchainEmbeddingFunction FastembedSparseEmbeddingFunction"ChromaCloudSpladeEmbeddingFunction"HuggingFaceSparseEmbeddingFunction#GoogleGenerativeAiEmbeddingFunction$CloudflareWorkersAIEmbeddingFunction$SentenceTransformerEmbeddingFunctionN)r   get_builtins)expected_builtinss    Z/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/chromadb/test/ef/test_ef.pytest_get_builtins_holdsr1      s%    !F  3 @ @ BBBB    c                      [        [        S5      (       d   e[        R                  " 5       n U c   e[        U [        5      (       d  [        U [
        5      (       d   eg g )Nr   )hasattrr   r   
isinstancer   r   )
default_efs    r0   test_default_ef_existsr7   A   sc    &(BCCCC$==?J!!!j"344
+9 9   94r2   c                  X   [         R                  " 5        H  n U S:X  a  M  [        [         U 5      (       d   e[        [	        [         U 5      [
        5      (       d   e[        [	        [         U 5      [        5      (       a  Ml  [        [	        [         U 5      [        5      (       a  M   e   g )Nr'   )	r   r.   r4   r5   getattrtype
issubclassr   r   )efs    r0   test_ef_importsr=   K   s    !..033*B////'"5r:DAAAA',.?
 
 3R8:QRR	S S 1r2   c                       \ rS rSrSS\4S jjr\" S5      S\S\4S j5       r	\
S\4S j5       rS\\\4   4S	 jr\
S
\\\4   SS 4S j5       rS\4S jrSrg)CustomEmbeddingFunctionW   dimc                     Xl         g )N_dim)selfrA   s     r0   __init__ CustomEmbeddingFunction.__init__Y   s    	r2   custom_ef_callinputreturnc                     [        S5      e)NThis is a test exception)	Exception)rE   rI   s     r0   __call__ CustomEmbeddingFunction.__call__\   s    233r2   c                      g)N	custom_ef rR   r2   r0   nameCustomEmbeddingFunction.name`   s    r2   c                     SU R                   0$ )NrA   rC   rE   s    r0   
get_config"CustomEmbeddingFunction.get_configd   s    tyy!!r2   configc                     [        U S   S9$ )NrA   )rA   )r?   )rY   s    r0   build_from_config)CustomEmbeddingFunction.build_from_configg   s    &6%=99r2   c                     g)NcosinerR   rV   s    r0   default_space%CustomEmbeddingFunction.default_spacek   s    r2   rC   N)   )__name__
__module____qualname____firstlineno__intrF   r   r
   r   rN   staticmethodstrrS   r   r   rW   r[   r	   r_   __static_attributes__rR   r2   r0   r?   r?   W   s    C  ()4j 4Z 4 *4 #  "DcN " :$sCx. :5N : :u r2   r?   c                     [        5       n [        R                  " [        5       nU " S/5        S S S 5        SnU S3n[	        WR
                  5      U:X  d   eUR
                  R                  U4:X  d   eg ! , (       d  f       NN= f)Nz	test datarL   z in custom_ef_call.)r?   pytestraisesrM   rh   valueargs)rQ   excinfooriginal_msgexpected_msgs       r0   &test_validation_context_with_custom_efrr   o   su    ')I	y	!W;-  
" .L"^#67Lw}}---==,000 
"	!s   
A77
B)rJ   N)chromadb.utilsr   "chromadb.utils.embedding_functionsr   r   typingr   r   rk   chromadb.api.typesr   r	   r
   r   $chromadb.api.models.CollectionCommonr   r1   r7   r=   r?   rr   rR   r2   r0   <module>rx      s]    .    D-C`	S /
;  .	1r2   