§
    ˜ŠtjùP  ã                   ór  — 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¦  «        ZEdS )é    )Ú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                   ó¬  ‡ — 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j        d
efd„¦   «         Z ed¬¦  «        dedej        d
efd„¦   «         Z ed¬¦  «        dedej        d
e fd„¦   «         Z! ed¬¦  «        de"dej        d
e#fd„¦   «         Z$ ed¬¦  «        de%dej        d
e&fd„¦   «         Z'dedej        d
e&fd„Z( ed¬¦  «        de)dej        d
e*fd„¦   «         Z+ ed¬¦  «        de,dej        d
e-fd„¦   «         Z. ed¬¦  «        de/dej        d
e0fd„¦   «         Z1 ed¬¦  «        de2dej        d
e3fd„¦   «         Z4 ed¬¦  «        de5dej        d
e6fd„¦   «         Z7 ed¬¦  «        de8dej        d
e9fd„¦   «         Z: ed¬¦  «        de;dej        d
e<fd „¦   «         Z= ed¬¦  «        de>dej        d
e?fd!„¦   «         Z@ ed¬¦  «        deAdej        d
eBfd"„¦   «         ZC ed¬¦  «        deDdej        d
eEfd#„¦   «         ZF ed¬¦  «        deGdej        d
eHfd$„¦   «         ZId%eJd&eKjL        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                 ó„   •— |j                              d¦  «        | _        t          ¦   «                              |¦  «        S )NÚchroma_server_grpc_port)ÚsettingsÚrequirer=   ÚsuperÚ__init__)ÚselfrB   Ú	__class__s     €úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/db/impl/grpc/server.pyrH   zGrpcMockSysDB.__init__H   s4   ø€ Ø"œO×3Ò3Ð4MÑNÔNˆÔÝ‰wŒw×Ò Ñ'Ô'Ð'ó    ÚreturnNc                 ó<  •— t          j        t          j        d¬¦  «        ¦  «        | _        t          | | j        ¦  «         | j                             d| j        › �¦  «         | j                             ¦   «          t          ¦   «                              ¦   «         S )Né
   )Úmax_workersz[::]:)
ÚgrpcÚserverr   ÚThreadPoolExecutorr<   r4   Úadd_insecure_portr=   ÚstartrG   ©rI   rJ   s    €rK   rU   zGrpcMockSysDB.startL   s|   ø€ å”{¥7Ô#=È"Ð#MÑ#MÔ#MÑNÔNˆŒÝ# D¨$¬,Ñ7Ô7Ð7ØŒ×&Ò&Ð'B¨tÔ/@Ð'BÐ'BÑCÔCÐCØŒ×ÒÑÔÐÝ‰wŒw�}Š}‰ŒÐrL   c                 óx   •— | j                              d ¦  «         t          ¦   «                              ¦   «         S ©N)r<   ÚstoprG   rV   s    €rK   rY   zGrpcMockSysDB.stopT   s+   ø€ àŒ×Ò˜$ÑÔÐÝ‰wŒ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µ.ÑAØVXˆÔ1µ.ÔAÕBRÑSØ:<ˆÔ'­Ñ7ÝLPÐUVÈKÉKÌKˆÔ'­Ô7Õ8HÑIÝ‰wŒw×"Ò"Ñ$Ô$Ð$rL   F)Úcheck_signatureÚrequestÚcontextc                 ót  — |j         }|j        }|| j        vr)|                     t          j        j        d|› d�¦  «         || j        |         v r)|                     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Ð5Q¸vÐ5QÐ5QÐ5QÑRÔRÐRØ�tÔ@ÀÔHÐHÐHØ�MŠMÝ”Ô.Ð0U¸HÐ0UÐ0UÐ0Uñô ð ð GIˆÔ1°&Ô9¸(ÑCÝ<@ÀWÄZÐ<PÑ<PÔ<PˆÔ'¨Ô/°Ñ9Ý%Ñ'Ô'Ð'rL   c                 ól  — |j         }|j        }|| j        vr)|                     t          j        j        d|› d�¦  «         || j        |         vr)|                     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Ð5Q¸vÐ5QÐ5QÐ5QÑRÔRÐRØ˜4ÔDÀVÔLÐLÐLØ�MŠM�$œ/Ô3Ð5UÀÐ5UÐ5UÐ5UÑVÔVÐVØÔ,¨VÔ4°XÔ>ˆÝ"Ý”^ r¤v°HÀVÐLÑLÔLð
ñ 
ô 
ð 	
rL   c                 ó¸   — |j         }|| j        v r)|                     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ƒ   sm   € ð ”ˆØ�TÔ>Ð>Ð>Ø�MŠMÝ”Ô.Ð0Q¸&Ð0QÐ0QÐ0Qñô ð ð =?ˆÔ1°&Ñ9Ø24ˆÔ'¨Ñ/Ý#Ñ%Ô%Ð%rL   c                 óº   — |j         }|| j        vr)|                     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�   se   € ð ”ˆØ˜ÔBÐBÐBØ�MŠM�$œ/Ô3Ð5Q¸vÐ5QÐ5QÐ5QÑRÔRÐRÝ Ý”< VÐ,Ñ,Ô,ð
ñ 
ô 
ð 	
rL   c                 óV   — t          |j        ¦  «        }|                      ||¦  «        S rX   )r   ÚsegmentÚCreateSegmentHelper)rI   r^   r_   r|   s       rK   ÚCreateSegmentzGrpcMockSysDB.CreateSegmentž   s)   € õ % W¤_Ñ5Ô5ˆØ×'Ò'¨°Ñ9Ô9Ð9rL   r|   c                 óÎ   — |d         j         | j        v r/|                     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¥   si   € ð �4Œ=Ô ¤Ð.Ð.Ø�MŠMÝ”Ô.Ø9˜7 4œ=Ð9Ð9Ð9ñô ð ð -4ˆŒ�w˜t”}Ô(Ñ)Ý$Ñ&Ô&Ð&rL   c                 ó¤   — |j         }|| j        v r| j        |= t          ¦   «         S |                     t          j        j        d|› d�¦  «         d S )Nr€   rb   )rm   r>   r!   ri   rQ   rj   rk   )rI   r^   r_   Úid_to_deletes       rK   ÚDeleteSegmentzGrpcMockSysDB.DeleteSegment°   sd   € ð ”zˆØ˜4œ>Ð)Ð)Ø”˜|Ð,Ý(Ñ*Ô*Ð*à�MŠMÝ”Ô)Ð+N°lÐ+NÐ+NÐ+Nñô ð ð ð rL   c                 ó(  — |                      d¦  «        rt          |j        ¬¦  «        nd }|                      d¦  «        r|j        nd }|                      d¦  «        rt	          |j        ¦  «        nd }t          |j        ¬¦  «        }g }| j                             ¦   «         D ]S}|r|d         |k    rŒ|r|d         |k    rŒ |r|d         |k    rŒ/|r|d         |k    rŒ>| 	                    |¦  «         ŒTt          d„ |D ¦   «         ¬¦  «        S )Nrm   re   ÚtypeÚscopeÚ
collectionc                 ó,   — g | ]}t          |¦  «        ‘ŒS © ©r   ©Ú.0r|   s     rK   ú
<listcomp>z-GrpcMockSysDB.GetSegments.<locals>.<listcomp>Ö   s!   € ÐNÐNÐN°GÕ& wÑ/Ô/ÐNÐNÐNrL   )Úsegments)ÚHasFieldr   rm   r…   r   r†   r‡   r>   ÚvaluesÚappendr+   )	rI   r^   r_   Ú	target_idÚtarget_typeÚtarget_scopeÚtarget_collectionÚfound_segmentsr|   s	            rK   ÚGetSegmentszGrpcMockSysDB.GetSegments½   sZ  € ð -4×,<Ò,<¸TÑ,BÔ,BÐL•D˜WœZÐ(Ñ(Ô(Ð(Èˆ	Ø&-×&6Ò&6°vÑ&>Ô&>ÐH�g”l�lÀDˆð ×Ò Ñ(Ô(ðÕ$ W¤]Ñ3Ô3Ð3àð 	õ
 ! WÔ%7Ð8Ñ8Ô8ÐàˆØ”~×,Ò,Ñ.Ô.ð 		+ð 		+ˆGØð ˜W Tœ]¨iÒ7Ð7ØØð ˜w vœ°+Ò=Ð=ØØð  ¨Ô 0°LÒ @Ð @ØØ ð  W¨\Ô%:Ð>OÒ%OÐ%OØØ×!Ò! 'Ñ*Ô*Ð*Ð*Ý"ØNÐN¸~ÐNÑNÔNð
ñ 
ô 
ð 	
rL   c                 óò  — t          |j        ¦  «        }|j        | j        vr+|                     t
          j        j        d|› d�¦  «         d S | j        |j                 }|                     d¦  «        rUt          t          t          t          f         |d         ¦  «        }|d         €i |d<   |                      ||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Ñ'Ô'ˆØÔ 4¤>Ð1Ð1Ø�MŠMÝ”Ô)Ð+N°lÐ+NÐ+NÐ+Nñô ð ð ð ð ”n \Ô%5Ô6ˆGØ×Ò 
Ñ+Ô+ð ?Ý�d¥3­ 8œn¨g°jÔ.AÑBÔB�Ø˜:Ô&Ð.Ø*,�G˜JÑ'Ø×$Ò$ V¨WÔ-=Ñ>Ô>Ð>Ø×ÒÐ 0Ñ1Ô1ð )°gÔ6Lð )Ø&(�˜
Ñ#Ý(Ñ*Ô*Ð*rL   c                 ó°  ‡— |j         Š|j        }|j        }|| j        vr)|                     t
          j        j        d|› d�¦  «         || j        |         vr)|                     t
          j        j        d|› d�¦  «         | j                             ¦   «         D ]¬\  }}|                     ¦   «         D ]’\  }}|j	        |v r„||j        k    s||j        k    r4|                     t
          j        j
        d|j	        › d|› d|› �¦  «         ŒX|j        s3|                     t
          j        j
        d|j	        › d|› d|› �¦  «         Œ“Œ­| j        |         |         }	ˆfd„|	                     ¦   «         D ¦   «         }
t          |
¦  «        dk    sJ ‚t          |
¦  «        d	k    rV|j        r&|
d	         }t          t          |¦  «        d
¬¦  «        S |                     t
          j        j
        d‰› d�¦  «         t!          j        |j        ¦  «        }t'          |j	        ¬¦  «        }t)          ||j         |d t+          |j        ¦  «        |j        ||d	¬¦	  «	        }g }|j        D ]³}t3          |¦  «        }|d         j        | j        v rX|D ]&}|                      t;          |¬¦  «        |¦  «         Œ'|                     t
          j        j
        d|d         › d�¦  «         |                      ||¦  «         |                     |d         j        ¦  «         Œ´||	|j	        <   |› d|› d|j	        › �}|| j         |<   t          t          |¦  «        d¬¦  «        S )Nra   rb   rc   úCollection z already exists in tenant z
 database c                 ó,   •— g | ]}|d          ‰k    ¯|‘ŒS rx   r‰   )rŒ   ÚcÚcollection_names     €rK   r�   z2GrpcMockSysDB.CreateCollection.<locals>.<listcomp>  s'   ø€ ÐSÐSÐS˜°a¸´iÀ?Ò6RÐ6R�1Ð6RÐ6RÐ6RrL   é   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_   rg   rn   Úsearch_tenantÚ	databasesÚsearch_databaseÚsearch_collectionsÚcollectionsÚmatchesÚexisting_collectionr§   rm   Únew_collectionÚsegments_addedÚsegment_protor|   ÚsÚcollection_unique_keyr¤   s                       @rK   ÚCreateCollectionzGrpcMockSysDB.CreateCollectioní   sî  ø€ ð "œ,ˆØ”ˆØÔ#ˆØ˜ÔBÐBÐBØ�MŠM�$œ/Ô3Ð5Q¸vÐ5QÐ5QÐ5QÑRÔRÐRØ˜4ÔDÀVÔLÐLÐLØ�MŠM�$œ/Ô3Ð5UÀÐ5UÐ5UÐ5UÑVÔVÐVð Ô6×<Ò<Ñ>Ô>ð	ð 	ñ 
ØØà7@·²Ñ7HÔ7Hð ð Ñ3�Ð!3Ø”:Ð!3Ð3Ð3à%¨¬Ò7Ð7Ø*¨gÔ.>Ò>Ð>àŸšÝ œOÔ:Øz¨'¬*ÐzÐzÐP]ÐzÐzÐixÐzÐzñô ð ð ð %Ô2ð ð  ŸšÝ œOÔ:Øz¨'¬*ÐzÐzÐP]ÐzÐzÐixÐzÐzñô ð øðð& Ô?ÀÔGÈÔQˆØSÐSÐSÐS˜k×0Ò0Ñ2Ô2ÐSÑSÔSˆÝ�7‰|Œ|˜qÒ Ð Ð Ð Ýˆw‰<Œ<˜!ÒÐØÔ$ð Ø&-¨a¤jÐ#Ý/Ý2Ð3FÑGÔGØ!ðñ ô ð ð �MŠMÝ”Ô.Ø>˜oÐ>Ð>Ð>ñô ð õ
 "œZ¨Ô(FÑGÔGÐå�g”jÐ!Ñ!Ô!ˆÝ#ØØ”Ø1Ø"Ý(¨Ô)9Ñ:Ô:ØÔ'ØØØð

ñ 

ô 

ˆð ˆà$Ô-ð 	5ð 	5ˆMÝ(¨Ñ7Ô7ˆGØ�tŒ}Ô  D¤NÐ2Ð2à'ð Lð L�AØ×&Ò&Õ';¸qÐ'AÑ'AÔ'AÀ7ÑKÔKÐKÐKØ—’Ý”OÔ2Ø=˜w tœ}Ð=Ð=Ð=ñô ð ð ×$Ò$ W¨gÑ6Ô6Ð6Ø×!Ò! '¨$¤-Ô"3Ñ4Ô4Ð4Ð4à"0ˆ�G”JÑØ#)Ð CÐ C¨HÐ CÐ C°w´zÐ CÐ CÐØ>LˆÔ$Ð%:Ñ;Ý'Ý*¨>Ñ:Ô:Øð
ñ 
ô 
ð 	
rL   c                 óò  — |j         }|j        }|j        }|| j        vr)|                     t
          j        j        d|› d�¦  «         || j        |         vr)|                     t
          j        j        d|› d�¦  «         | j        |         |         }||v r7||= |› d|› d|› �}| j        |         }|r|D ]
}	| j	        |	= Œt          ¦   «         S |                     t
          j        j        d|› d�¦  «         d S )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Ð5Q¸vÐ5QÐ5QÐ5QÑRÔRÐRØ˜4ÔDÀVÔLÐLÐLØ�MŠM�$œ/Ô3Ð5UÀÐ5UÐ5UÐ5UÑVÔVÐVØÔ?ÀÔGÈÔQˆØ˜KÐ'Ð'Ø˜MÐ*Ø'-Ð$JÐ$J°Ð$JÐ$J¸=Ð$JÐ$JÐ!ØÔ6Ð7LÔMˆKØð 3Ø"-ð 3ð 3�JØœ zÐ2Ð2Ý+Ñ-Ô-Ð-à�MŠMÝ”Ô)Ð+R¸Ð+RÐ+RÐ+Rñô ð ð ð rL   c           
      óŽ  — |                      d¦  «        rt          |j        ¬¦  «        nd }|                      d¦  «        r|j        nd }i }| j                             ¦   «         D ]z\  }}|                     ¦   «         D ]`\  }}	|j        dk    r||j        k    rŒ|j        dk    r||j        k    rŒ3|                     |	¦  «         t          d|› d|› d|	› �¦  «         ŒaŒ{g }
| 
                    ¦   «         D ]5}|r|d         |k    rŒ|r|d         |k    rŒ |
                     |¦  «         Œ6t          d„ |
D ¦   «         ¬	¦  «        S )
Nrm   re   rh   Ú úTenant: ú, Database: ú, Collections: c                 ó,   — g | ]}t          |¦  «        ‘ŒS r‰   )r   )rŒ   r‡   s     rK   r�   z0GrpcMockSysDB.GetCollections.<locals>.<listcomp>{  s.   € ð ð ð Ø4>Õ# JÑ/Ô/ðð ð rL   )r¶   )r�   r   rm   rh   r@   r¬   rg   rn   ÚupdateÚprintr�   r‘   r#   )rI   r^   r_   r’   Útarget_nameÚallCollectionsrg   r³   rn   r¶   Úfound_collectionsr‡   s               rK   ÚGetCollectionszGrpcMockSysDB.GetCollectionsa  s¸  € ð -4×,<Ò,<¸TÑ,BÔ,BÐL•D˜WœZÐ(Ñ(Ô(Ð(Èˆ	Ø&-×&6Ò&6°vÑ&>Ô&>ÐH�g”l�lÀDˆàˆØ!%Ô!J×!PÒ!PÑ!RÔ!Rð 		ð 		ÑˆF�IØ)2¯ªÑ):Ô):ð ð Ñ%�˜+Ø”> RÒ'Ð'¨F°g´nÒ,DÐ,DØØÔ# rÒ)Ð)¨h¸'Ô:JÒ.JÐ.JØØ×%Ò% kÑ2Ô2Ð2ÝØY˜vÐYÐY°8ÐYÐYÈKÐYÐYñô ð ð ðð ÐØ(×/Ò/Ñ1Ô1ð 	1ð 	1ˆJØð ˜Z¨Ô-°Ò:Ð:ØØð ˜z¨&Ô1°[Ò@Ð@ØØ×$Ò$ ZÑ0Ô0Ð0Ð0Ý%ðð ØBSðñ ô ð
ñ 
ô 
ð 	
rL   c                 ó¨   — t          |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€  sV   € õ (Ø”>ØÔ%ð
ñ 
ô 
ˆð ×)Ò)¨'°7Ñ;Ô;ˆÝ'­c°+Ô2IÑ.JÔ.JÐKÑKÔKÐKrL   c                 ó"   — t          d¬¦  «        S )Nr   )Útotal_records_post_compaction)r%   ©rI   r^   r_   s      rK   ÚGetCollectionSizezGrpcMockSysDB.GetCollectionSize‹  s   € õ )Ø*+ð
ñ 
ô 
ð 	
rL   c           
      óÖ  ‡ — i }‰ j                              ¦   «         D ]L\  }}|                     ¦   «         D ]2\  }}|                     |¦  «         t          d|› d|› d|› �¦  «         Œ3ŒM|                     |j        d ¦  «        }|€.|                     t          j        j	        d|j        › d�¦  «         |j
        › d|j        › d|j        › �}	ˆ fd„‰ j        |	         D ¦   «         }
d„ |
D ¦   «         t          j        t          j        t          j        hk    r+|                     t          j        j        d	|› d
|
› �¦  «         t%          t'          |¦  «        d„ |
D ¦   «         ¬¦  «        S )NrÆ   rÇ   rÈ   zCollection with id rb   r«   c                 ó*   •— g | ]}‰j         |         ‘ŒS r‰   )r>   )rŒ   rm   rI   s     €rK   r�   z;GrpcMockSysDB.GetCollectionWithSegments.<locals>.<listcomp>¦  s0   ø€ ð 
ð 
ð 
àð ŒN˜2Ôð
ð 
ð 
rL   c                 ó   — h | ]
}|d          ’ŒS )r†   r‰   r‹   s     rK   ú	<setcomp>z:GrpcMockSysDB.GetCollectionWithSegments.<locals>.<setcomp>ª  s   € Ð5Ð5Ð5 ˆG�GÔÐ5Ð5Ð5rL   z#Incomplete segments for collection z: c                 ó,   — g | ]}t          |¦  «        ‘ŒS r‰   rŠ   r‹   s     rK   r�   z;GrpcMockSysDB.GetCollectionWithSegments.<locals>.<listcomp>¶  s!   € ÐHÐHÐH°GÕ& wÑ/Ô/ÐHÐHÐHrL   )r‡   rŽ   )r@   r¬   rÊ   rË   Úgetrm   ri   rQ   rj   rk   rg   rn   r?   r9   ÚMETADATAÚRECORDÚVECTORÚINTERNALr'   r   )rI   r^   r_   rÍ   rg   r³   rn   r¶   r‡   r½   rŽ   s   `          rK   ÚGetCollectionWithSegmentsz'GrpcMockSysDB.GetCollectionWithSegments“  sØ  ø€ ð ˆØ!%Ô!J×!PÒ!PÑ!RÔ!Rð 	ð 	ÑˆF�IØ)2¯ªÑ):Ô):ð ð Ñ%�˜+Ø×%Ò% kÑ2Ô2Ð2ÝØY˜vÐYÐY°8ÐYÐYÈKÐYÐYñô ð ð ðð
 $×'Ò'¨¬
°DÑ9Ô9ˆ
ØÐØ�MŠMÝ”Ô)Ð+WÀÄÐ+WÐ+WÐ+Wñô ð ð Ô ÐEÐE :Ô#6ÐEÐE¸¼ÐEÐEð 	ð
ð 
ð 
ð 
àÔ2Ð3HÔIð
ñ 
ô 
ˆð 6Ð5¨HÐ5Ñ5Ô5ÝÔ!ÝÔÝÔð:
ò 
ð 
ð
 �MŠMÝ”Ô(ØN°jÐNÐNÀHÐNÐNñô ð õ
 1Ý*¨:Ñ6Ô6ØHÐH¸xÐHÑHÔHð
ñ 
ô 
ð 	
rL   c                 ó¾  — t          |j        ¦  «        }i }| j                             ¦   «         D ]*\  }}|                     ¦   «         D ]\  }}|j        |v r|}ŒŒ+|j        |vr+|                     t          j        j        d|› d�¦  «         d S ||j                 }	| 	                    d¦  «        r
|j
        |	d<   | 	                    d¦  «        r
|j        |	d<   | 	                    d¦  «        rAt          |j        ¦  «        }
d }|
�#i }|
                     ¦   «         D ]\  }}|�|||<   Œ||	d<   n!| 	                    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×!PÒ!PÑ!RÔ!Rð 	4ð 	4ÑˆF�IØ/8¯ªÑ/@Ô/@ð 4ð 4Ñ+�Ð+ØÔ#Ð'8Ð8Ð8Ø"3�Køð4ð Ô ;Ð.Ð.Ø�MŠMÝ”Ô)Ð+Q¸Ð+QÐ+QÐ+Qñô ð ð ð ð % \Ô%5Ô6ˆJØ×Ò Ñ'Ô'ð 2Ø%,¤\�
˜6Ñ"Ø×Ò Ñ,Ô,ð <Ø*1Ô*;�
˜;Ñ'Ø×Ò 
Ñ+Ô+ð 0õ
 #=¸WÔ=MÑ"NÔ"N�Ø#'Ð Ø"Ð.Ø')Ð$Ø&5×&;Ò&;Ñ&=Ô&=ð :ð :™
˜˜UØ Ð,Ø49Ð,¨SÑ1øà)9�
˜:Ñ&Ð&Ø×!Ò!Ð"2Ñ3Ô3ð 0ØÔ)ð 0Ø-/�J˜zÑ*å+Ñ-Ô-Ð-rL   c                 óF   — |                       ¦   «          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	          |¦  «        ¦  «        }|                     |¦  «         |                     ¦   «         D ]\  }}|€||v r||= Œd S rX   )r   r   r›   r   r   rÊ   r¬   )rI   rž   rë   Útarget_metadataÚsource_metadataræ   rç   s          rK   rœ   zGrpcMockSysDB._merge_metadataê  sŒ   € Ý�t¥C­ Hœ~¨vÑ6Ô6ˆÝ�t¥C­ Hœ~Õ/IÈ&Ñ/QÔ/QÑRÔRˆØ×Ò˜Ñ/Ô/Ð/à)×/Ò/Ñ1Ô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-   rz   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ð Eð Œ[ÐÐÑØÐÐÑØ$&€Iˆt�C˜�LÔ!Ð&Ð&Ñ&Ø46Ð˜T # t¨C¤y .Ô1Ð6Ð6Ñ6ð 	ð )¨$ØˆT�#�t˜C ˜OÔ,Ð,Ô-Ð-ô+ð ð ñ ð >@Ð  S¨$¨s°D¨y¬/Ð%9Ô :Ð?Ð?Ñ?ð(˜vð (ð (ð (ð (ð (ð (ð ðð ð ð ð ñ „Yðð ðð ð ð ð ñ „Yðð ð%ð %ð %ð %ð %ñ „Yð%ð €Y˜uÐ%Ñ%Ô%ð(Ø,ð(Ø7;Ô7Kð(à	ð(ð (ð (ñ &Ô%ð(ð €Y˜uÐ%Ñ%Ô%ð
Ø)ð
Ø48Ô4Hð
à	ð
ð 
ð 
ñ &Ô%ð
ð €Y˜uÐ%Ñ%Ô%ð
&Ø*ð
&Ø59Ô5Ið
&à	ð
&ð 
&ð 
&ñ &Ô%ð
&ð €Y˜uÐ%Ñ%Ô%ð
Ø'ð
Ø26Ô2Fð
à	ð
ð 
ð 
ñ &Ô%ð
ð €Y˜uÐ%Ñ%Ô%ð:Ø+ð:Ø6:Ô6Jð:à	ð:ð :ð :ñ &Ô%ð:ð	'Øð	'Ø)-Ô)=ð	'à	ð	'ð 	'ð 	'ð 	'ð €Y˜uÐ%Ñ%Ô%ð
Ø+ð
Ø6:Ô6Jð
à	ð
ð 
ð 
ñ &Ô%ð
ð €Y˜uÐ%Ñ%Ô%ð
Ø)ð
Ø48Ô4Hð
à	ð
ð 
ð 
ñ &Ô%ð
ð6 €Y˜uÐ%Ñ%Ô%ð+Ø+ð+Ø6:Ô6Jð+à	ð+ð +ð +ñ &Ô%ð+ð& €Y˜uÐ%Ñ%Ô%ðX
Ø.ðX
Ø9=Ô9MðX
à	!ðX
ð X
ð X
ñ &Ô%ðX
ðt €Y˜uÐ%Ñ%Ô%ðØ.ðØ9=Ô9Mðà	!ðð ð ñ &Ô%ðð0 €Y˜uÐ%Ñ%Ô%ð
Ø,ð
Ø7;Ô7Kð
à	ð
ð 
ð 
ñ &Ô%ð
ð< €Y˜uÐ%Ñ%Ô%ðLØ.ðLØ9=Ô9MðLà	!ðLð Lð Lñ &Ô%ðLð €Y˜uÐ%Ñ%Ô%ð
Ø/ð
Ø:>Ô:Nð
à	"ð
ð 
ð 
ñ &Ô%ð
ð €Y˜uÐ%Ñ%Ô%ð#
Ø7ð#
ØBFÔBVð#
à	*ð#
ð #
ð #
ñ &Ô%ð#
ðJ €Y˜uÐ%Ñ%Ô%ð'.Ø.ð'.Ø9=Ô9Mð'.à	!ð'.ð '.ð '.ñ &Ô%ð'.ðR €Y˜uÐ%Ñ%Ô%ð$Øð$Ø'+Ô';ð$à	ð$ð $ð $ñ &Ô%ð$ð) hð )¸Ô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;   r‰   rL   rK   ú<module>r     sí  ðØ Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )ð ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ðBð ð ð ð ð ð ð ð €€€Ø +Ð +Ð +Ð +Ð +Ð +Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðv)ð v)ð v)ð v)ð v)�M 9ñ v)ô v)ð v)ð v)ð v)rL   