Ë
    lQêjùP  ã                   ój  — d dl mZ d dlmZmZmZmZ d dlmZ d dl	m	Z	 d dl
Z
d dlmZmZmZmZ d dlmZmZmZmZmZmZ d dlmc 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)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d d	l:m;Z;m<Z< d dl=Z=d d
l>m?Z? d dl@mAZAmBZBmCZCmDZD  G d„ de;e«      ZEy)é    )Úfutures)ÚAnyÚDictÚListÚcast)ÚUUID)Ú	overridesN)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚ	ComponentÚSystem)Úfrom_proto_metadataÚfrom_proto_update_metadataÚfrom_proto_segmentÚfrom_proto_segment_scopeÚto_proto_collectionÚto_proto_segment)ÚCreateCollectionRequestÚCreateCollectionResponseÚCreateDatabaseRequestÚCreateDatabaseResponseÚCreateSegmentRequestÚCreateSegmentResponseÚCreateTenantRequestÚCreateTenantResponseÚCountCollectionsRequestÚCountCollectionsResponseÚDeleteCollectionRequestÚDeleteCollectionResponseÚDeleteSegmentRequestÚDeleteSegmentResponseÚGetCollectionsRequestÚGetCollectionsResponseÚGetCollectionSizeRequestÚGetCollectionSizeResponseÚ GetCollectionWithSegmentsRequestÚ!GetCollectionWithSegmentsResponseÚGetDatabaseRequestÚGetDatabaseResponseÚGetSegmentsRequestÚGetSegmentsResponseÚGetTenantRequestÚGetTenantResponseÚResetStateResponseÚUpdateCollectionRequestÚUpdateCollectionResponseÚUpdateSegmentRequestÚUpdateSegmentResponse)ÚSysDBServicerÚadd_SysDBServicer_to_server)ÚEmpty)Ú
CollectionÚMetadataÚSegmentÚSegmentScopec                   óh  ‡ — e Zd ZU dZej
                  ed<   eed<   i Ze	e
ef   ed<   i Ze	e
ee
   f   ed<   i Ze	e
e	e
e	e
ef   f   f   ed<   i Ze	e
e	e
ef   f   ed<   defˆ fd	„Zed(ˆ fd„«       Zed(ˆ fd„«       Zed(ˆ fd„«       Z ed¬«      dedej2                  d
efd„«       Z ed¬«      dedej2                  d
efd„«       Z ed¬«      dedej2                  d
e fd„«       Z! ed¬«      de"dej2                  d
e#fd„«       Z$ ed¬«      de%dej2                  d
e&fd„«       Z'dedej2                  d
e&fd„Z( ed¬«      de)dej2                  d
e*fd„«       Z+ ed¬«      de,dej2                  d
e-fd„«       Z. ed¬«      de/dej2                  d
e0fd„«       Z1 ed¬«      de2dej2                  d
e3fd„«       Z4 ed¬«      de5dej2                  d
e6fd„«       Z7 ed¬«      de8dej2                  d
e9fd„«       Z: ed¬«      de;dej2                  d
e<fd „«       Z= ed¬«      de>dej2                  d
e?fd!„«       Z@ ed¬«      deAdej2                  d
eBfd"„«       ZC ed¬«      deDdej2                  d
eEfd#„«       ZF ed¬«      deGdej2                  d
eHfd$„«       ZId%eJd&eKj˜                  d
dfd'„ZMˆ xZNS ))ÚGrpcMockSysDBz•A mock sysdb implementation that can be used for testing the grpc client. It stores
    state in simple python data structures instead of a database.Ú_serverÚ_server_portÚ	_segmentsÚ_collection_to_segmentsÚ$_tenants_to_databases_to_collectionsÚ_tenants_to_database_to_idÚsystemc                 ób   •— |j                   j                  d«      | _        t        ‰| �  |«      S )NÚchroma_server_grpc_port)ÚsettingsÚrequirer=   ÚsuperÚ__init__)ÚselfrB   Ú	__class__s     €úa/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/db/impl/grpc/server.pyrH   zGrpcMockSysDB.__init__H   s+   ø€ Ø"ŸO™O×3Ñ3Ð4MÓNˆÔÜ‰wÑ Ó'Ð'ó    ÚreturnNc                 ó,  •— t        j                  t        j                  d¬«      «      | _        t        | | j                  «       | j                  j                  d| j                  › �«       | j                  j                  «        t        ‰| �!  «       S )Né
   )Úmax_workersz[::]:)
ÚgrpcÚserverr   ÚThreadPoolExecutorr<   r4   Úadd_insecure_portr=   ÚstartrG   ©rI   rJ   s    €rK   rU   zGrpcMockSysDB.startL   sh   ø€ ä—{‘{¤7×#=Ñ#=È"Ô#MÓNˆŒÜ# D¨$¯,©,Ô7Ø�‰×&Ñ&¨¨t×/@Ñ/@Ð.AÐ'BÔCØ�‰×ÑÔÜ‰w‰}‹ÐrL   c                 óV   •— | j                   j                  d «       t        ‰| �  «       S ©N)r<   ÚstoprG   rV   s    €rK   rY   zGrpcMockSysDB.stopT   s!   ø€ à�‰×Ñ˜$ÔÜ‰w‰|‹~ÐrL   c                 ó  •— i | _         i | _        i | j                  t        <   i | j                  t           t        <   i | j                  t        <   t        d¬«      | j                  t           t        <   t        ‰| �  «       S )Nr   )Úint)r>   r@   r   r
   rA   r   rG   Úreset_staterV   s    €rK   r\   zGrpcMockSysDB.reset_stateY   sq   ø€ àˆŒØ46ˆÔ1àDFˆ×1Ñ1´.ÑAØVXˆ×1Ñ1´.ÑAÔBRÑSØ:<ˆ×'Ñ'¬Ñ7ÜLPÐUVÌKˆ×'Ñ'¬Ñ7Ô8HÑIÜ‰wÑ"Ó$Ð$rL   F)Úcheck_signatureÚrequestÚcontextc                 ó¬  — |j                   }|j                  }|| j                  vr.|j                  t        j
                  j                  d|› d�«       || j                  |   v r.|j                  t        j
                  j                  d|› d�«       i | j                  |   |<   t        |j                  ¬«      | j                  |   |<   t        «       S )NúTenant ú
 not foundú	Database ú already exists©Úhex)ÚtenantÚnamer@   ÚabortrQ   Ú
StatusCodeÚ	NOT_FOUNDÚALREADY_EXISTSr   ÚidrA   r   )rI   r^   r_   rg   Údatabases        rK   ÚCreateDatabasezGrpcMockSysDB.CreateDatabased   s¼   € ð —‘ˆØ—<‘<ˆØ˜×BÑBÑBØ�M‰Mœ$Ÿ/™/×3Ñ3°w¸v¸hÀjÐ5QÔRØ�t×@Ñ@ÀÑHÑHØ�M‰MÜ—‘×.Ñ.°)¸H¸:À_Ð0Uôð GIˆ×1Ñ1°&Ñ9¸(ÑCÜ<@ÀWÇZÁZÔ<Pˆ×'Ñ'¨Ñ/°Ñ9Ü%Ó'Ð'rL   c                 ó¤  — |j                   }|j                  }|| j                  vr.|j                  t        j
                  j                  d|› d�«       || j                  |   vr.|j                  t        j
                  j                  d|› d�«       | j                  |   |   }t        t        j                  |j                  ||¬«      ¬«      S )Nra   rb   rc   )rm   rh   rg   )rn   )rg   rh   r@   ri   rQ   rj   rk   rA   r)   ÚprotoÚDatabaserf   )rI   r^   r_   rg   rn   rm   s         rK   ÚGetDatabasezGrpcMockSysDB.GetDatabaset   s¯   € ð —‘ˆØ—<‘<ˆØ˜×BÑBÑBØ�M‰Mœ$Ÿ/™/×3Ñ3°w¸v¸hÀjÐ5QÔRØ˜4×DÑDÀVÑLÑLØ�M‰Mœ$Ÿ/™/×3Ñ3°yÀÀ
È*Ð5UÔVØ×,Ñ,¨VÑ4°XÑ>ˆÜ"Ü—^‘^ r§v¡v°HÀVÔLô
ð 	
rL   c                 óâ   — |j                   }|| j                  v r.|j                  t        j                  j
                  d|› d�«       i | j                  |<   i | j                  |<   t        «       S )Nra   rd   )rh   r@   ri   rQ   rj   rl   rA   r   ©rI   r^   r_   rg   s       rK   ÚCreateTenantzGrpcMockSysDB.CreateTenantƒ   sj   € ð —‘ˆØ�T×>Ñ>Ñ>Ø�M‰MÜ—‘×.Ñ.°'¸&¸ÀÐ0Qôð =?ˆ×1Ñ1°&Ñ9Ø24ˆ×'Ñ'¨Ñ/Ü#Ó%Ð%rL   c                 óÒ   — |j                   }|| j                  vr.|j                  t        j                  j
                  d|› d�«       t        t        j                  |¬«      ¬«      S )Nra   rb   )rh   )rg   )	rh   r@   ri   rQ   rj   rk   r-   rq   ÚTenantru   s       rK   Ú	GetTenantzGrpcMockSysDB.GetTenant�   sU   € ð —‘ˆØ˜×BÑBÑBØ�M‰Mœ$Ÿ/™/×3Ñ3°w¸v¸hÀjÐ5QÔRÜ Ü—<‘< VÔ,ô
ð 	
rL   c                 óP   — t        |j                  «      }| j                  ||«      S rX   )r   ÚsegmentÚCreateSegmentHelper)rI   r^   r_   r{   s       rK   ÚCreateSegmentzGrpcMockSysDB.CreateSegmentž   s%   € ô % W§_¡_Ó5ˆØ×'Ñ'¨°Ó9Ð9rL   r{   c                 óæ   — |d   j                   | j                  v r1|j                  t        j                  j
                  d|d   › d�«       || j                  |d   j                   <   t        «       S )Nrm   úSegment rd   )rf   r>   ri   rQ   rj   rl   r   )rI   r{   r_   s      rK   r|   z!GrpcMockSysDB.CreateSegmentHelper¥   sf   € ð �4‰=×Ñ §¡Ñ.Ø�M‰MÜ—‘×.Ñ.Ø˜7 4™=˜/¨Ð9ôð -4ˆ�‰�w˜t‘}×(Ñ(Ñ)Ü$Ó&Ð&rL   c                 óÂ   — |j                   }|| j                  v r| j                  |= t        «       S |j                  t        j
                  j                  d|› d�«       y )Nr   rb   )rm   r>   r!   ri   rQ   rj   rk   )rI   r^   r_   Úid_to_deletes       rK   ÚDeleteSegmentzGrpcMockSysDB.DeleteSegment°   sR   € ð —z‘zˆØ˜4Ÿ>™>Ñ)Ø—‘˜|Ð,Ü(Ó*Ð*à�M‰MÜ—‘×)Ñ)¨X°l°^À:Ð+NõrL   c                 ó  — |j                  d«      rt        |j                  ¬«      nd }|j                  d«      r|j                  nd }|j                  d«      rt	        |j
                  «      nd }t        |j                  ¬«      }g }| j                  j                  «       D ]?  }|r	|d   |k7  rŒ|r	|d   |k7  rŒ|r	|d   |k7  rŒ$|r	|d   |k7  rŒ/|j                  |«       ŒA t        |D �cg c]  }t        |«      ‘Œ c}¬«      S c c}w )Nrm   re   ÚtypeÚscopeÚ
collection)Úsegments)ÚHasFieldr   rm   r„   r   r…   r†   r>   ÚvaluesÚappendr+   r   )	rI   r^   r_   Ú	target_idÚtarget_typeÚtarget_scopeÚtarget_collectionÚfound_segmentsr{   s	            rK   ÚGetSegmentszGrpcMockSysDB.GetSegments½   s  € ð -4×,<Ñ,<¸TÔ,B”D˜WŸZ™ZÕ(Èˆ	Ø&-×&6Ñ&6°vÔ&>�g—l’lÀDˆð ×Ñ Ô(ô % W§]¡]Ô3àð 	ô
 ! W×%7Ñ%7Ô8ÐàˆØ—~‘~×,Ñ,Ó.ò 		+ˆGÙ˜W T™]¨iÒ7ØÙ˜w v™°+Ò=ØÙ ¨Ñ 0°LÒ @ØÙ  W¨\Ñ%:Ð>OÒ%OØØ×!Ñ! 'Õ*ð		+ô #Ø?MÖN°GÔ& wÕ/ÒNô
ð 	
ùÚNs   Ã.Dc                 óò  — t        |j                  «      }|j                  | j                  vr/|j	                  t
        j                  j                  d|› d�«       y | j                  |j                     }|j                  d«      rFt        t        t        t        f   |d   «      }|d   €i |d<   | j                  ||j                  «       |j                  d«      r|j                  ri |d<   t!        «       S )Nr   rb   ÚmetadataÚreset_metadata)r   rm   rf   r>   ri   rQ   rj   rk   rˆ   r   r   Ústrr   Ú_merge_metadatar’   r“   r2   )rI   r^   r_   Úid_to_updater{   Útargets         rK   ÚUpdateSegmentzGrpcMockSysDB.UpdateSegmentÙ   sÚ   € ô ˜GŸJ™JÓ'ˆØ×Ñ 4§>¡>Ñ1Ø�M‰MÜ—‘×)Ñ)¨X°l°^À:Ð+Nõð —n‘n \×%5Ñ%5Ñ6ˆGØ×Ñ 
Ô+Üœd¤3¬ 8™n¨g°jÑ.AÓB�Ø˜:Ñ&Ð.Ø*,�G˜JÑ'Ø×$Ñ$ V¨W×-=Ñ-=Ô>Ø×ÑÐ 0Ô1°g×6LÒ6LØ&(�˜
Ñ#Ü(Ó*Ð*rL   c                 óh  — |j                   }|j                  }|j                  }|| j                  vr.|j	                  t
        j                  j                  d|› d�«       || j                  |   vr.|j	                  t
        j                  j                  d|› d�«       | j                  j                  «       D ]Ò  \  }}|j                  «       D ]º  \  }}	|j                  |	v sŒ||j                  k7  s||j                  k7  r>|j	                  t
        j                  j                  d|j                  › d|› d|› �«       Œq|j                  rŒ~|j	                  t
        j                  j                  d|j                  › d|› d|› �«       Œ¼ ŒÔ | j                  |   |   }
|
j                  «       D �cg c]  }|d   |k(  sŒ|‘Œ }}t        |«      dk  sJ ‚t        |«      d	kD  rU|j                  r|d	   }t        t        |«      d
¬«      S |j	                  t
        j                  j                  d|› d�«       t!        j"                  |j$                  «      }t'        |j                  ¬«      }t)        ||j                   |d t+        |j,                  «      |j.                  ||d	¬«	      }g }|j0                  D ]¬  }t3        |«      }|d   j4                  | j6                  v rT|D ]  }| j9                  t;        |¬«      |«       Œ  |j	                  t
        j                  j                  d|d   › d�«       | j=                  ||«       |j?                  |d   j4                  «       Œ® ||
|j                  <   |› d|› d|j                  › �}|| j@                  |<   t        t        |«      d¬«      S c c}w )Nra   rb   rc   úCollection z already exists in tenant z
 database rh   é   r   F)r†   Úcreatedrd   re   )	rm   rh   Úconfiguration_jsonÚserialized_schemar’   Ú	dimensionrn   rg   Úversionrm   )rm   r   ú:T)!rh   rg   rn   r@   ri   rQ   rj   rk   Úitemsrm   rl   Úget_or_creater‰   Úlenr   r   ÚjsonÚloadsÚconfiguration_json_strr   r6   r   r’   rŸ   r‡   r   rf   r>   r‚   r    r|   rŠ   r?   )rI   r^   r_   Úcollection_namerg   rn   Úsearch_tenantÚ	databasesÚsearch_databaseÚsearch_collectionsÚcollectionsÚcÚmatchesÚexisting_collectionr�   rm   Únew_collectionÚsegments_addedÚsegment_protor{   ÚsÚcollection_unique_keys                         rK   ÚCreateCollectionzGrpcMockSysDB.CreateCollectioní   s�  € ð "Ÿ,™,ˆØ—‘ˆØ×#Ñ#ˆØ˜×BÑBÑBØ�M‰Mœ$Ÿ/™/×3Ñ3°w¸v¸hÀjÐ5QÔRØ˜4×DÑDÀVÑLÑLØ�M‰Mœ$Ÿ/™/×3Ñ3°yÀÀ
È*Ð5UÔVð ×6Ñ6×<Ñ<Ó>ò	ñ 
ØØà7@·±Ó7Hò Ñ3�Ð!3Ø—:‘:Ð!3Ò3à%¨¯©Ò7Ø*¨g×.>Ñ.>Ò>àŸ™Ü ŸO™O×:Ñ:Ø)¨'¯*©*¨Ð5OÐP]ÈÐ^hÐixÐhyÐzõð %×2Ó2ð  Ÿ™Ü ŸO™O×:Ñ:Ø)¨'¯*©*¨Ð5OÐP]ÈÐ^hÐixÐhyÐzõñð		ð. ×?Ñ?ÀÑGÈÑQˆØ)×0Ñ0Ó2ÖS˜°a¸±iÀ?Ó6R’1ÐSˆÐSÜ�7‹|˜qÒ Ð Ð Üˆw‹<˜!ÒØ×$Ò$Ø&-¨a¡jÐ#Ü/Ü2Ð3FÓGØ!ôð ð �M‰MÜ—‘×.Ñ.Ø˜oÐ.¨oÐ>ôô
 "ŸZ™Z¨×(FÑ(FÓGÐä�g—j‘jÔ!ˆÜ#ØØ—‘Ø1Ø"Ü(¨×)9Ñ)9Ó:Ø×'Ñ'ØØØô

ˆð ˆà$×-Ñ-ò 	5ˆMÜ(¨Ó7ˆGØ�t‰}× Ñ  D§N¡NÑ2à'ò L�AØ×&Ñ&Ô';¸qÔ'AÀ7ÕKðLà—‘Ü—O‘O×2Ñ2Ø˜w t™}˜o¨_Ð=ôð ×$Ñ$ W¨gÔ6Ø×!Ñ! '¨$¡-×"3Ñ"3Õ4ð	5ð #1ˆ�G—J‘JÑØ#) (¨!¨H¨:°Q°w·z±z°lÐ CÐØ>Lˆ×$Ñ$Ð%:Ñ;Ü'Ü*¨>Ó:Øô
ð 	
ùòc Ts   Æ3N/ÇN/c                 óB  — |j                   }|j                  }|j                  }|| j                  vr.|j	                  t
        j                  j                  d|› d�«       || j                  |   vr.|j	                  t
        j                  j                  d|› d�«       | j                  |   |   }||v r<||= |› d|› d|› �}| j                  |   }|r|D ]  }	| j                  |	= Œ t        «       S |j	                  t
        j                  j                  d|› d�«       y )Nra   rb   rc   r¡   rš   )rm   rg   rn   r@   ri   rQ   rj   rk   r?   r>   r   )
rI   r^   r_   Úcollection_idrg   rn   r­   rµ   Úsegment_idsÚ
segment_ids
             rK   ÚDeleteCollectionzGrpcMockSysDB.DeleteCollectionH  s  € ð  Ÿ
™
ˆØ—‘ˆØ×#Ñ#ˆØ˜×BÑBÑBØ�M‰Mœ$Ÿ/™/×3Ñ3°w¸v¸hÀjÐ5QÔRØ˜4×DÑDÀVÑLÑLØ�M‰Mœ$Ÿ/™/×3Ñ3°yÀÀ
È*Ð5UÔVØ×?Ñ?ÀÑGÈÑQˆØ˜KÑ'Ø˜MÐ*Ø'- h¨a°¨z¸¸=¸/Ð$JÐ!Ø×6Ñ6Ð7LÑMˆKÙØ"-ò 3�JØŸ™ zÑ2ð3ä+Ó-Ð-à�M‰MÜ—‘×)Ñ)¨[¸¸ÀzÐ+RõrL   c           
      óœ  — |j                  d«      rt        |j                  ¬«      nd }|j                  d«      r|j                  nd }i }| j                  j                  «       D ]€  \  }}|j                  «       D ]h  \  }}	|j                  dk7  r||j                  k7  rŒ%|j                  dk7  r||j                  k7  rŒD|j                  |	«       t        d|› d|› d|	› �«       Œj Œ‚ g }
|j                  «       D ])  }|r	|d   |k7  rŒ|r	|d   |k7  rŒ|
j                  |«       Œ+ t        |
D �cg c]  }t        |«      ‘Œ c}¬«      S c c}w )	Nrm   re   rh   Ú úTenant: ú, Database: ú, Collections: )r­   )rˆ   r   rm   rh   r@   r¢   rg   rn   ÚupdateÚprintr‰   rŠ   r#   r   )rI   r^   r_   r‹   Útarget_nameÚallCollectionsrg   rª   rn   r­   Úfound_collectionsr†   s               rK   ÚGetCollectionszGrpcMockSysDB.GetCollectionsa  s_  € ð -4×,<Ñ,<¸TÔ,B”D˜WŸZ™ZÕ(Èˆ	Ø&-×&6Ñ&6°vÔ&>�g—l’lÀDˆàˆØ!%×!JÑ!J×!PÑ!PÓ!Rò 		ÑˆF�IØ)2¯©Ó):ò Ñ%�˜+Ø—>‘> RÒ'¨F°g·n±nÒ,DØØ×#Ñ# rÒ)¨h¸'×:JÑ:JÒ.JØØ×%Ñ% kÔ2ÜØ˜v˜h l°8°*¸OÈKÈ=ÐYõñð		ð ÐØ(×/Ñ/Ó1ò 	1ˆJÙ˜Z¨Ñ-°Ò:ØÙ˜z¨&Ñ1°[Ò@ØØ×$Ñ$ ZÕ0ð	1ô &àBSöØ4>Ô# JÕ/òô
ð 	
ùòs   Ä/E	c                 ó¦   — t        |j                  |j                  ¬«      }| j                  ||«      }t	        t        |j                  «      ¬«      S )N)rg   rn   )Úcount)r"   rg   rn   rÆ   r   r¤   r­   )rI   r^   r_   r­   s       rK   ÚCountCollectionszGrpcMockSysDB.CountCollections€  sH   € ô (Ø—>‘>Ø×%Ñ%ô
ˆð ×)Ñ)¨'°7Ó;ˆÜ'¬c°+×2IÑ2IÓ.JÔKÐKrL   c                 ó   — t        d¬«      S )Nr   )Útotal_records_post_compaction)r%   ©rI   r^   r_   s      rK   ÚGetCollectionSizezGrpcMockSysDB.GetCollectionSize‹  s   € ô )Ø*+ô
ð 	
rL   c           
      óp  — i }| j                   j                  «       D ]B  \  }}|j                  «       D ]*  \  }}|j                  |«       t        d|› d|› d|› �«       Œ, ŒD |j	                  |j
                  d «      }|€8|j                  t        j                  j                  d|j
                  › d�«       |j                  › d|j                  › d|j
                  › �}	| j                  |	   D �
cg c]  }
| j                  |
   ‘Œ }}
|D �ch c]  }|d   ’Œ	 c}t        j                  t        j                   t        j"                  hk7  r0|j                  t        j                  j$                  d|› d	|› �«       t'        t)        |«      |D �cg c]  }t+        |«      ‘Œ c}¬
«      S c c}
w c c}w c c}w )Nr¾   r¿   rÀ   zCollection with id rb   r¡   r…   z#Incomplete segments for collection z: )r†   r‡   )r@   r¢   rÁ   rÂ   Úgetrm   ri   rQ   rj   rk   rg   rn   r?   r>   r9   ÚMETADATAÚRECORDÚVECTORÚINTERNALr'   r   r   )rI   r^   r_   rÄ   rg   rª   rn   r­   r†   rµ   rm   r‡   r{   s                rK   ÚGetCollectionWithSegmentsz'GrpcMockSysDB.GetCollectionWithSegments“  s»  € ð ˆØ!%×!JÑ!J×!PÑ!PÓ!Rò 	ÑˆF�IØ)2¯©Ó):ò Ñ%�˜+Ø×%Ñ% kÔ2ÜØ˜v˜h l°8°*¸OÈKÈ=ÐYõñð	ð $×'Ñ'¨¯
©
°DÓ9ˆ
ØÐØ�M‰MÜ—‘×)Ñ)Ð-@ÀÇÁÀÈJÐ+Wôð × Ñ Ð!  :×#6Ñ#6Ð"7°q¸¿¹¸ÐEð 	ð
 ×2Ñ2Ð3HÑIö
àð �N‰N˜2Óð
ˆð 
ð -5Ö5 ˆG�GÓÒ5Ü×!Ñ!Ü×ÑÜ×Ñð:
ò 
ð
 �M‰MÜ—‘×(Ñ(Ø5°j°\ÀÀHÀ:ÐNôô
 1Ü*¨:Ó6Ø?GÖH°GÔ& wÕ/ÒHô
ð 	
ùò
ùò 6ùò Is   Ã1F)ÄF.ÆF3
c                 óì  — t        |j                  «      }i }| j                  j                  «       D ].  \  }}|j                  «       D ]  \  }}|j                  |v sŒ|}Œ Œ0 |j                  |vr/|j                  t        j                  j                  d|› d�«       y ||j                     }	|j                  d«      r|j                  |	d<   |j                  d«      r|j                  |	d<   |j                  d«      rJt        |j                  «      }
d }|
�"i }|
j                  «       D ]  \  }}|€Œ	|||<   Œ ||	d<   t        «       S |j                  d«      r|j                  ri |	d<   t        «       S )Nrš   rb   rh   rŸ   r’   r“   )r   rm   r@   r¢   rf   ri   rQ   rj   rk   rˆ   rh   rŸ   r   r’   r“   r0   )rI   r^   r_   r–   r­   rg   rª   rn   Úmaybe_collectionsr†   Úupdate_metadataÚcleaned_metadataÚkeyÚvalues                 rK   ÚUpdateCollectionzGrpcMockSysDB.UpdateCollection¹  s�  € ô ˜GŸJ™JÓ'ˆàˆØ!%×!JÑ!J×!PÑ!PÓ!Rò 	4ÑˆF�IØ/8¯©Ó/@ò 4Ñ+�Ð+Ø×#Ñ#Ð'8Ò8Ø"3‘Kñ4ð	4ð
 ×Ñ ;Ñ.Ø�M‰MÜ—‘×)Ñ)¨[¸¸ÀjÐ+Qõð % \×%5Ñ%5Ñ6ˆJØ×Ñ Ô'Ø%,§\¡\�
˜6Ñ"Ø×Ñ Ô,Ø*1×*;Ñ*;�
˜;Ñ'Ø×Ñ 
Ô+ô
 #=¸W×=MÑ=MÓ"N�Ø#'Ð Ø"Ð.Ø')Ð$Ø&5×&;Ñ&;Ó&=ò :™
˜˜UØ Ñ,Ø49Ð,¨SÒ1ð:ð *:�
˜:Ñ&ô
 ,Ó-Ð-ð	 ×!Ñ!Ð"2Ô3Ø×)Ò)Ø-/�J˜zÑ*ä+Ó-Ð-rL   c                 ó6   — | j                  «        t        «       S rX   )r\   r.   rÌ   s      rK   Ú
ResetStatezGrpcMockSysDB.ResetStateã  s   € ð 	×ÑÔÜ!Ó#Ð#rL   r—   Úsourcec                 óò   — t        t        t        t        f   |«      }t        t        t        t        f   t	        |«      «      }|j                  |«       |j                  «       D ]  \  }}|�Œ	||v sŒ||= Œ y rX   )r   r   r”   r   r   rÁ   r¢   )rI   r—   rÞ   Útarget_metadataÚsource_metadatarÙ   rÚ   s          rK   r•   zGrpcMockSysDB._merge_metadataê  sm   € Üœt¤C¬ H™~¨vÓ6ˆÜœt¤C¬ H™~Ô/IÈ&Ó/QÓRˆØ×Ñ˜Ô/à)×/Ñ/Ó1ò 	)‰JˆC�Ø‰} ¨¢Ø# CÑ(ñ	)rL   )rM   N)OÚ__name__Ú
__module__Ú__qualname__Ú__doc__rQ   ÚServerÚ__annotations__r[   r>   r   r”   r8   r?   r   r@   r6   rA   r   r   rH   r	   rU   rY   r\   r   ÚServicerContextr   ro   r(   r)   rs   r   r   rv   r,   r-   ry   r   r   r}   r|   r    r!   r‚   r*   r+   r�   r1   r2   r˜   r   r   r¶   r   r   r»   r"   r#   rÆ   r   r   rÉ   r$   r%   rÍ   r&   r'   rÔ   r/   r0   rÛ   r5   r.   rÝ   r7   rq   ÚUpdateMetadatar•   Ú__classcell__)rJ   s   @rK   r;   r;   ;   s   ø… ñEð �[‰[ÓØÓØ$&€Iˆt�C˜�LÑ!Ó&Ø46Ð˜T # t¨C¡y .Ñ1Ó6ð 	ð )¨$ØˆT�#�t˜C ˜OÑ,Ð,Ñ-Ð-ñ+ó ð >@Ð  S¨$¨s°D¨y©/Ð%9Ñ :Ó?ð(˜võ (ð ôó ðð ôó ðð ô%ó ð%ñ ˜uÔ%ð(Ø,ð(Ø7;×7KÑ7Kð(à	ò(ó &ð(ñ ˜uÔ%ð
Ø)ð
Ø48×4HÑ4Hð
à	ò
ó &ð
ñ ˜uÔ%ð
&Ø*ð
&Ø59×5IÑ5Ið
&à	ò
&ó &ð
&ñ ˜uÔ%ð
Ø'ð
Ø26×2FÑ2Fð
à	ò
ó &ð
ñ ˜uÔ%ð:Ø+ð:Ø6:×6JÑ6Jð:à	ò:ó &ð:ð	'Øð	'Ø)-×)=Ñ)=ð	'à	ó	'ñ ˜uÔ%ð
Ø+ð
Ø6:×6JÑ6Jð
à	ò
ó &ð
ñ ˜uÔ%ð
Ø)ð
Ø48×4HÑ4Hð
à	ò
ó &ð
ñ6 ˜uÔ%ð+Ø+ð+Ø6:×6JÑ6Jð+à	ò+ó &ð+ñ& ˜uÔ%ðX
Ø.ðX
Ø9=×9MÑ9MðX
à	!òX
ó &ðX
ñt ˜uÔ%ðØ.ðØ9=×9MÑ9Mðà	!òó &ðñ0 ˜uÔ%ð
Ø,ð
Ø7;×7KÑ7Kð
à	ò
ó &ð
ñ< ˜uÔ%ðLØ.ðLØ9=×9MÑ9MðLà	!òLó &ðLñ ˜uÔ%ð
Ø/ð
Ø:>×:NÑ:Nð
à	"ò
ó &ð
ñ ˜uÔ%ð#
Ø7ð#
ØBF×BVÑBVð#
à	*ò#
ó &ð#
ñJ ˜uÔ%ð'.Ø.ð'.Ø9=×9MÑ9Mð'.à	!ò'.ó &ð'.ñR ˜uÔ%ð$Øð$Ø'+×';Ñ';ð$à	ò$ó &ð$ð) hð )¸×8LÑ8Lð )ÐQU÷ )rL   r;   )FÚ
concurrentr   Útypingr   r   r   r   Úuuidr   r	   r¥   Úchromadb.configr
   r   r   r   Úchromadb.proto.convertr   r   r   r   r   r   Úchromadb.proto.chroma_pb2rq   Ú
chroma_pb2Úchromadb.proto.coordinator_pb2r   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/   r0   r1   r2   Ú#chromadb.proto.coordinator_pb2_grpcr3   r4   rQ   Úgoogle.protobuf.empty_pb2r5   Úchromadb.typesr6   r7   r8   r9   r;   © rL   rK   ú<module>r÷      s€   ðÝ ß (Ó (Ý Ý Û ç OÓ O÷÷ ÷ *Ð )÷ ÷  ÷  ÷  ÷  ÷  ÷  ÷  ñ  ÷Bó Ý +ß FÓ Fôv)�M 9õ v)rL   