
    ZiD	                     0   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ  ej	                    dej
                            dd           z   dz   Zded	efd
Zdedee         d	efdZded	efdZdedeeef         d	dfdZdededeeef         d	efdZdS )    N)
ModuleType)DictListz/worker-PYTEST_XDIST_WORKERunknownz#/persistence_test_chromadb_versionsversionreturnc                     t           dz   | z   S )N/)base_install_dirr   s    ^/root/projects/butler/venv/lib64/python3.11/site-packages/chromadb/test/utils/cross_version.pyget_path_to_version_installr      s    c!G++    versioned_modulesc                    dfdt           j                                        D             }|D ]}t           j        |= t           j                            dt          |                      dd l}|j        | k    sJ |S )Nchromadbc                     i | ]E\  }k    s7                     d z             sv st          fdD                       B|FS ).c              3   H   K   | ]}                     |d z             V  dS )r   N)
startswith).0mns     r   	<genexpr>z/switch_to_version.<locals>.<dictcomp>.<genexpr>   s3      AA!QW%%AAAAAAr   )r   any)r   r   r   module_namer   s     @r   
<dictcomp>z%switch_to_version.<locals>.<dictcomp>   s       AqLLs*++ !!!AAAA/@AAAAA "	 	
1 "!!r   r   )sysmodulesitemspathinsertr   r   __version__)r   r   old_modulesr   r   r   s    `   @r   switch_to_versionr&      s    K    K%%''  K   KNN HOOA27;;<<<OOO7****Or   c                 &    t          |           dz   S )Nz/chromadb/__init__.py)r   r   s    r   get_path_to_version_libraryr(   )   s    &w//2IIIr   dep_overridesc                     t          |           }t          j                            |          rd S t	          |           }t          d|  ||           d S )Nz
chromadb==)r(   osr"   existsr   install)r   r)   version_libraryr"   s       r   install_versionr/   -   sX    1'::O	w~~o&& &w//D"""D-88888r   pkgr"   c                    t          j        |d           t          j        ddddd| g}|                                D ]\  }}|                    | |            d| v st          d |D                       r|                    d	           |                    d
|            t          d|  d|            t          j	        |          S )NT)exist_okz-mpipz-qr-   chroma-hnswlibc              3      K   | ]}d |v V  	dS )r4   N )r   deps     r   r   zinstall.<locals>.<genexpr>A   s(      %W%W#&6#&=%W%W%W%W%W%Wr   z--no-binary=chroma-hnswlibz	--target=zInstalling chromadb version z to )
r+   makedirsr   
executabler!   appendr   print
subprocess
check_call)r0   r"   r)   commandr7   operator_versions         r   r-   r-   6   s    Kt$$$$ ~tUD$	3GG!.!4!4!6!6 3 3#1/112222 3#%W%W%W%W%W"W"W3444NN%t%%&&&	
8
8
8$
8
8999 )))r   )r   r<   r+   tempfiletypesr   typingr   r   
gettempdirenvirongetr   strr   r&   r(   r/   intr-   r6   r   r   <module>rH      s   



     				                HC 5yAACCD+, , , , , , ,s tCy Z    ,J J J J J J9S 9c3h 9D 9 9 9 9* *C *S#X *3 * * * * * *r   