Ë
    lQêj·5  ã                   ó`  — U d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d dl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Z d dlmZmZ d dlmZmZmZ d d	l m!Z! d d
l"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)c m*c mZ d dl+m)c m*c m,Z, d dl-m.Z/ d dl0Z0d dl1Z1d dl2m3Z3 d dl4m5Z6 d dl7m8Z8m9Z9m:Z: ddgZ; e0jx                  d«      Z=g d¢Z>dee?   fd„Z@de	e?e
f   de	e?e
f   fd„ZAdej„                  dej†                  de3ddfd„ZDdej„                  dej†                  de3ddfd„ZEdeDfdeEfgZFeee?eej„                  ej†                  e3gdf   f      eGd <   d!e?dej„                  dej†                  de3ddf
d"„ZHd#e
d!e?defd$„ZId%ee?   deee?e3f      fd&„ZJ e@«       ZK ej˜                  «       ZM ejœ                  d# eJeK«      ¬'«      deee?e3f   ddf   fd(„«       ZO G d)„ d*ee   «      ZPd!e?de3d+ej„                  d,ej†                  d-eddfd.„ZQ ej¤                   ej¦                  d/d/d0d0 ej¨                  «       ¬1«      d2¬3«      ZUej¬                  ej„                     eGd4<    eeU ej®                  eUd5¬6«      ¬7«       ed¬8«      d9ee?e3f   d+ej„                  d,ej†                  ddfd:„«       «       ZXy);é    )Ú
ConnectionN)Ú	GeneratorÚListÚTupleÚDictÚAnyÚCallableÚType)ÚgivenÚsettings)Úrequest)Úconfig)ÚConfigurationParameterÚ$EmbeddingsQueueConfigurationInternal)Ú	DocumentsÚEmbeddingFunctionÚ
Embeddings)ÚSqliteDB)Ú,trigger_vector_segments_max_seq_id_migration)ÚSegmentManager)ÚLocalSegmentManager)Úversion)ÚSettings)ÚClient)Úswitch_to_versionÚinstall_versionÚget_path_to_version_installz0.4.1z0.5.3z^[0-9]+\.[0-9]+\.[0-9]+$)ÚpydanticÚpydantic_settingsÚnumpyÚ
tokenizersÚreturnc            
      óÒ  — d} t        j                  t        j                  t        j                  | «      «      «      }|d   }t        |j                  «       «      }|D �cg c]  }t        j                  |«      sŒ|‘Œ }}|D �cg c]&  }t        d„ |j                  |g «      D «       «      s|‘Œ( }}|j                  t        j                  ¬«       t        |d   gz   S c c}w c c}w )zFReturns the pinned minimum version and the latest version of chromadb.z#https://pypi.org/pypi/chromadb/jsonÚreleasesc              3   ó@   K  — | ]  }|j                  d d«      –— Œ y­w)ÚyankedFN)Úget)Ú.0Úfiles     úv/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/property/test_cross_version_persist.pyú	<genexpr>zversions.<locals>.<genexpr>7   s   è ø€ ÒM°�4—8‘8˜H e×,ÑMùs   ‚©Úkeyéÿÿÿÿ)ÚjsonÚloadr   ÚurlopenÚRequestÚlistÚkeysÚ
version_reÚmatchÚanyr'   ÚsortÚpackaging_versionÚVersionÚBASELINE_VERSIONS)ÚurlÚdatar$   ÚversionsÚvs        r*   r>   r>   ,   sË   € à
/€CÜ�9‰9”W—_‘_¤W§_¡_°SÓ%9Ó:Ó;€DØ�JÑ€HÜ�H—M‘M“OÓ$€Hà#Ö;�a¤z×'7Ñ'7¸Õ':’Ð;€HÐ;ð öàÜÑM¸¿¹ÀaÈÓ9LÔMÔMò 	
ð€Hð ð
 ‡M�MÔ'×/Ñ/€MÔ0Ü ¨¡˜~Ñ-Ð-ùò <ùòs   Á CÁ;CÂ+C$Úmetadatac                 óž   — | j                  d„ | j                  «       D «       «       | j                  d„ | j                  «       D «       «       | S )Nc              3   ó4   K  — | ]  \  }}|d u sŒ|df–— Œ y­w)Té   N© ©r(   Úkr?   s      r*   r+   z_bool_to_int.<locals>.<genexpr>>   s   è ø€ ÒE™t˜q !¸1Àº9�Q˜”FÑEùó   ‚�	c              3   ó4   K  — | ]  \  }}|d u sŒ|df–— Œ y­w)Fr   NrD   rE   s      r*   r+   z_bool_to_int.<locals>.<genexpr>?   s   è ø€ ÒF™t˜q !¸1Àº:�Q˜”FÑFùrG   )ÚupdateÚitems)r@   s    r*   Ú_bool_to_intrK   =   s9   € Ø‡O�OÑE x§~¡~Ó'7ÔEÔEØ‡O�OÑF x§~¡~Ó'7ÔFÔFØ€Oó    Ú
collectionÚ
embeddingsr   c                 ó  — | j                   }|�t        |«       |d   �bt        |d   t        «      r*|d   D ]!  }|€Œt        |t        «      sŒt        |«       Œ# y t        |d   t        «      r|d   }t        |«       y y y )NÚ	metadatas)r@   rK   Ú
isinstancer3   Údict)rM   rN   r   Úcollection_metadatar@   s        r*   Ú_patch_boolean_metadatarT   C   s‘   € ð %×-Ñ-ÐØÐ&ÜÐ(Ô)à�+ÑÐ*Ü�j Ñ-¬tÔ4Ø& {Ñ3ò +�ØÑ'¬J°xÄÕ,FÜ  Õ*ñ+ô ˜
 ;Ñ/´Ô6Ø! +Ñ.ˆHÜ˜Õ"ð 7ð +rL   c                 ó   — d|_         y )Nz"chromadb.telemetry.posthog.Posthog)Úchroma_telemetry_impl)rM   rN   r   s      r*   Ú_patch_telemetry_clientrW   X   s   € ð &J€HÕ"rL   z0.4.3ú0.4.14Úversion_patchesr   c                 óŒ   — t         D ];  \  }}t        j                  | «      t        j                  |«      k  sŒ2 ||||«       Œ= y)zwOverride aspects of the collection and embeddings, before testing, to account for
    breaking changes in old versions.N)rY   r9   r:   )r   rM   rN   r   Úpatch_versionÚpatchs         r*   Úpatch_for_versionr]   j   sJ   € ô !0ò 4Ñˆ�uÜ×$Ñ$ WÓ-Ô1B×1JÑ1JØó2
ó 
ñ �*˜j¨(Õ3ñ	4rL   Úmodulec                 ó°   — t        j                  |«      t        j                  d«      k  r| j                  j                  S | j                  j                  S )NrX   )r9   r:   ÚapiÚAPIÚ	ServerAPI)r^   r   s     r*   Úapi_import_for_versionrc   z   s?   € Ü× Ñ  Ó)Ô->×-FÑ-FÀxÓ-PÒPØ�z‰z�~‰~ÐØ�:‰:×ÑÐrL   r>   c                 óž   — | D �cg c]=  }|t        dt        j                  v rdndddddddt        j                  «       ¬«      f‘Œ? c}S c c}w )NÚCHROMA_RUST_BINDINGS_TEST_ONLYz!chromadb.api.rust.RustBindingsAPIúchromadb.api.segment.SegmentAPIz chromadb.db.impl.sqlite.SqliteDBz7chromadb.segment.impl.manager.local.LocalSegmentManagerT)Úchroma_api_implÚchroma_sysdb_implÚchroma_producer_implÚchroma_consumer_implÚchroma_segment_manager_implÚallow_resetÚis_persistentÚpersist_directory)r   ÚosÚenvironÚtempfileÚmkdtemp)r>   r   s     r*   Úconfigurationsrs   €   sf   € ð"  ö!ð  ð Üà3´r·z±zÑAñ !Dà6Ø"DØ%GØ%GØ,eØ Ø"Ü"*×"2Ñ"2Ó"4ôò	
òð ùò s   …AA
)ÚscopeÚparamsc              #   ó  K  — | j                   }|d   }t        |i «       |–— t        |«      }t        j                  |«       |d   j
                  }t        j                  j                  |«      rt        j                  |d¬«       y y ­w)Nr   rC   T)Úignore_errors)	Úparamr   r   ÚshutilÚrmtreern   ro   ÚpathÚexists)r   Úconfigurationr   r{   Ú	data_paths        r*   Úversion_settingsr   ›   sr   è ø€ à—M‘M€MØ˜AÑ€Gä�G˜RÔ Ø
Òä& wÓ/€DÜ
‡M�M�$Ôà˜aÑ ×2Ñ2€IÜ	‡w�w‡~�~�iÔ Ü�‰�i¨tÖ4ð !ùs   ‚B	Bc                   ó0   — e Zd Zdedefd„Zdededdfd„Zy)Únot_implemented_efÚinputr"   c                 ó   — J d«       ‚)Nz'Embedding function should not be calledrD   )Úselfr‚   s     r*   Ú__call__znot_implemented_ef.__call__¬   s   € Ø?Ð?Ó?ˆurL   ÚargsÚkwargsNc                  ó   — y ©NrD   )r„   r†   r‡   s      r*   Ú__init__znot_implemented_ef.__init__¯   s   € ØrL   )Ú__name__Ú
__module__Ú__qualname__r   r   r…   r   rŠ   rD   rL   r*   r�   r�   «   s2   „ ð@˜ið @¨Jó @ð˜cð ¨Sð °Tô rL   r�   Úcollection_strategyÚembeddings_strategyÚconnc                 óˆ  ‡— 	 t        | t        «      }dt        j                  v r2t	        j
                  | «      t	        j
                  d«      k  rd|_        |j                  j                  |«      }|j                  t        || «      «      }|j                  «        |j                  «        t	        j
                  | «      t	        j
                  d«      k\  r/|j                  j                  j                  j!                  |«      }|j#                  |j$                  |j&                  t)        «       ¬«      } |j*                  d
i |¤Ž t-        j.                  |«      }	|j1                  «       t3        |	d   xs g «      k(  sJ ‚|j5                  «       }
|
d   }t7        |	d   «      D ��ci c]  \  }}||“Œ
 c}}Št9        |ˆfd„¬	«      }||	d   k(  sJ ‚|j                  t:        «      j=                  «         |j>                  d
i |¤Ž |j=                  «        y c c}}w # t@        $ r}|jC                  |«       |‚d }~ww xY w)Nre   z0.7.0rf   z0.5.4)Únamer@   Úembedding_functionrN   Úidsc                 ó   •— ‰|    S r‰   rD   )ÚidÚembedding_id_to_indexs    €r*   ú<lambda>z9persist_generated_data_with_old_version.<locals>.<lambda>Þ   s   ø€ Ð7LÈRÑ7P€ rL   r,   rD   )"r   ÚVERSIONED_MODULESro   rp   r9   r:   rg   r   ÚSystemÚinstancerc   ÚstartÚresetr`   Úclientr   Úfrom_systemÚcreate_collectionr’   r@   r�   ÚaddÚ
invariantsÚwrap_allÚcountÚlenr'   Ú	enumerateÚsortedr   ÚstopÚupsertÚ	ExceptionÚsend)r   r   rŽ   r�   r�   Ú
old_moduleÚsystemr`   ÚcollÚcheck_embeddingsÚresultÚ
actual_idsÚir–   Úer—   s                  @r*   Ú'persist_generated_data_with_old_versionr´   ³   sþ  ø€ ð1Ü& wÔ0AÓBˆ
à+¬r¯z©zÑ9Ô>O×>WÑ>WØó?
ä×%Ñ% gÓ.ò?/ð (IˆHÔ$Ø×"Ñ"×)Ñ)¨(Ó3ˆØ�o‰oÔ4°ZÀÓIÓJˆØ�‰Œà�	‰	Œô
 ×$Ñ$ WÓ-Ô1B×1JÑ1JÈ7Ó1SÒSØ—.‘.×'Ñ'×.Ñ.×:Ñ:¸6ÓBˆCØ×$Ñ$Ø$×)Ñ)Ø(×1Ñ1ä1Ó3ð	 %ó 
ˆð 	ˆ�‰Ñ'Ð&Ò'ô
 &×.Ñ.Ð/BÓCÐà�z‰z‹|œsÐ#3°LÑ#AÒ#GÀRÓHÒHÐHÐHà—‘“ˆØ˜E‘]ˆ
Ü4=Ð>NÈuÑ>UÓ4V× W©5¨1¨b  Q¡Ó WÐÜ˜JÓ,PÔQˆ
ØÐ-¨eÑ4Ò4Ð4Ð4ð
 	�‰Ô+Ó,×1Ñ1Ô3Øˆ�‰Ñ*Ð)Ò*ð 	�‰�ùó !Xøô ò Ø�	‰	�!ŒØˆûðús+   ƒF&H  Æ)HÆ6A#H  ÈH  È 	IÈ)H<È<ITé
   )Úwith_hnsw_paramsÚhas_embeddingsÚmax_hnsw_sync_thresholdÚmax_hnsw_batch_sizeÚwith_persistent_hnsw_paramsr®   r,   Úcollection_stéÈ   )Úmax_size)rŽ   r�   )Údeadliner   c                 ó>  — | \  }}|d   i k(  rd |d<   |d   �;t        |d   t        «      r(|d   D �cg c]  }|�t        |«      dkD  r|nd ‘Œ c}|d<   t        ||||«       d |_        i |_        t        j                  d«      }t        j                  «       \  }}|j                  t        |||||f¬«      }	|	j                  «        |	j                  «        |j                  «       r|j                  «       }
|
‚|	j                  «        t!        j"                  |«      }|j                  «        t%        j&                  |«      }|j)                  |j*                  t-        «       ¬«      }|j/                  t0        «      }t3        j4                  |«      t3        j4                  d«      k  r)|j                   j7                  d«      j8                  du sJ ‚|j;                  t=        t?        dd	«      g«      «       d
t@        jB                  v rtE        jF                  ||«       n:tI        ||j/                  tJ        «      «       |jM                  |jN                  «       tE        jP                  ||gd	«        |jR                  di |¤Ž tE        jF                  ||«       tE        jT                  ||«       tE        jV                  ||«       tE        jX                  ||«       tE        jZ                  ||«       tE        jP                  ||gd	«       |j]                  «        y c c}w )NrP   r   Úspawn)Útargetr†   )r’   r“   z0.5.7Úautomatically_purgeFTre   rD   )/rQ   r3   r¥   r]   r“   Úknown_metadata_keysÚmultiprocessingÚget_contextÚPipeÚProcessr´   rœ   ÚjoinÚpollÚrecvÚcloser   rš   ÚClientCreatorrŸ   Úget_collectionr’   r�   r›   r   r9   r:   Úget_parameterÚvalueÚ
set_configr   r   ro   rp   r¢   r¤   r   r   Ú	purge_logr–   Úlog_size_below_maxr¡   Úmetadatas_matchÚdocuments_matchÚ	ids_matchÚann_accuracyr¨   )r   rŽ   r�   r   r   ÚmÚctxÚconn1Úconn2Úpr³   r­   rž   r®   Úembeddings_queues                  r*   Útest_cycle_versionsrÝ   ü   sâ  € ð )Ñ€GˆXð ˜;Ñ'¨2Ò-Ø+/Ð˜KÑ(Ø˜;Ñ'Ð3¼
Ø˜KÑ(¬$ô9ð
 )¨Ñ5ö,
àð �œc !›f qšj‰A¨dÑ2ò,
Ð˜KÑ(ô
 �gÐ2Ð4GÈÔRð .2ÐÔ*Ø.0ÐÔ+ô
 ×
%Ñ
% gÓ
.€CÜ"×'Ñ'Ó)�L€Eˆ5Ø�‰Ü6Ø�xÐ!4Ð6IÈ5ÐQð 	ó 	€Að ‡G�G„IØ‡F�F„Hà‡z�z„|Ø�J‰J‹LˆØˆà‡G�G„Iô �]‰]˜8Ó$€FØ
‡L�L„NÜ×&Ñ& vÓ.€FØ× Ñ Ø ×%Ñ%Ü-Ó/ð !ó €Dð
 —‘¤xÓ0Ðô × Ñ  Ó)Ô,=×,EÑ,EØó-ò ð ×#Ñ#×1Ñ1Ð2GÓH×NÑNÐRWÑWð	
ØWð ×ÑÜ,Ü#Ð$9¸4Ó@ÐAó	
ôð (¬2¯:©:Ñ5ä×Ñ˜Ð2Õ3ä4Ø˜fŸo™o¬nÓ=ô	
ð 	×"Ñ" 4§7¡7Ô+Ü×!Ñ! &¨4¨&°$Ô7ð €D‡H�HÑ#Ð"Ò#ä×Ñ�TÐ.Ô/Ü×Ñ˜tÐ%8Ô9Ü×Ñ˜tÐ%8Ô9Ü×Ñ˜Ð2Ô3Ü×Ñ˜DÐ"5Ô6Ü×!Ñ! &¨4¨&°$Ô7ð ‡K�K…Mùòe,
s   ²L)YÚmultiprocessing.connectionr   ro   ry   rq   Útypingr   r   r   r   r   r	   r
   Ú
hypothesisr   r   Úhypothesis.strategiesÚ
strategiesÚstÚpytestr/   Úurllibr   Úchromadbr   Úchromadb.api.configurationr   r   Úchromadb.api.typesr   r   r   Úchromadb.db.impl.sqliter   Úchromadb.ingest.impl.utilsr   Úchromadb.segmentr   Ú#chromadb.segment.impl.manager.localr   Ú!chromadb.test.property.strategiesÚtestÚpropertyÚ!chromadb.test.property.invariantsr¢   Ú	packagingr   r9   ÚrerÄ   Úchromadb.configr   Úchromadb.api.clientr   rÌ   Ú!chromadb.test.utils.cross_versionr   r   r   r;   Úcompiler5   r™   Ústrr>   rK   Ú
CollectionÚ	RecordSetrT   rW   rY   Ú__annotations__r]   rc   rs   Útest_old_versionsrr   Úbase_install_dirÚfixturer   r�   r´   ÚsharedÚcollectionsÚbooleansr»   ÚSearchStrategyÚ
recordsetsrÝ   rD   rL   r*   ú<module>r     s•  ðÞ 1Û 	Û Û ß D× DÑ Dß &Ý "Û Û Ý Ý ÷÷ HÑ GÝ ,Ý SÝ +Ý Cß 6Ó 6ß 6Ó 6Ý 2Û 	Û Ý $Ý 7÷ñ ð ˜gÐ&Ð ØˆR�Z‰ZÐ3Ó4€
ò MÐ ð.�$�s‘)ó .ð"˜4  S ™>ð ¨d°3¸°8©nó ð#Ø×%Ñ%ð#à×$Ñ$ð#ð ð#ð 
ó	#ð*JØ×%Ñ%ðJà×$Ñ$ðJð ðJð 
ó	Jð Ð%Ð&ØÐ&Ð'ðð �Ø	ˆ#ˆx˜×.Ñ.°
×0DÑ0DÀhÐOÐQUÐUÑVÐ
VÑWñó ð4Øð4à×%Ñ%ð4ð ×$Ñ$ð4ð ð	4ð
 
ó4ð   3ð  °ð  ¸ó  ð˜T #™Yð ¨4°°c¸8°mÑ0DÑ+Eó ñ* “JÐ Ø#�8×#Ñ#Ó%Ð ð
 €‡��h¡~Ð6GÓ'HÔIð5 ¨5°°h°Ñ+?ÀÀtÐ+KÑ!Lò 5ó Jð5ôÐ*¨9Ñ5ô ð8Øð8àð8ð $×.Ñ.ð8ð $×-Ñ-ð	8ð
 ð8ð 
ó8ðx ;D¸"¿)¹)Ø€J×ÑØØà "ØØ$/ B§K¡K£Môð 	ô
;€ˆr× Ñ  ×!6Ñ!6Ñ7ó 
ñ Ø%Ø-˜
×-Ñ-¨mÀcÔJôñ 
�4ÔðcØ˜C ˜MÑ*ðcà#×.Ñ.ðcð $×-Ñ-ðcð 
ò	có ó	ñ
crL   