§
    ˜Štj¡O  ã                   óª  — d dl mZmZmZmZmZmZ d dlmZ d dl	m	Z	 d dl
mZmZmZmZmZ 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mZmZ d d	lmZmZm Z m!Z!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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZN d dlOZO G d„ de¦  «        ZPdS )é    )ÚListÚOptionalÚSequenceÚTupleÚUnionÚcast)ÚUUID)Ú	overrides)ÚCreateCollectionConfigurationÚ+create_collection_configuration_to_json_strÚUpdateCollectionConfigurationÚ+update_collection_configuration_to_json_strÚCollectionMetadata)ÚSchema)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSystemÚlogger)ÚSysDB)ÚNotFoundErrorÚUniqueConstraintErrorÚInternalError)Úfrom_proto_collectionÚfrom_proto_segmentÚto_proto_update_metadataÚto_proto_segmentÚto_proto_segment_scope)ÚCreateCollectionRequestÚCreateDatabaseRequestÚCreateSegmentRequestÚCreateTenantRequestÚCountCollectionsRequestÚCountCollectionsResponseÚDeleteCollectionRequestÚDeleteDatabaseRequestÚDeleteSegmentRequestÚGetCollectionsRequestÚGetCollectionsResponseÚGetCollectionSizeRequestÚGetCollectionSizeResponseÚ GetCollectionWithSegmentsRequestÚ!GetCollectionWithSegmentsResponseÚGetDatabaseRequestÚGetSegmentsRequestÚGetTenantRequestÚListDatabasesRequestÚUpdateCollectionRequestÚUpdateSegmentRequest)Ú	SysDBStub)Ú RetryOnRpcErrorClientInterceptor)ÚOtelInterceptor)ÚOpenTelemetryGranularityÚtrace_method)
Ú
CollectionÚCollectionAndSegmentsÚDatabaseÚMetadataÚOptionalArgumentÚSegmentÚSegmentScopeÚTenantÚUnspecifiedÚUpdateMetadata)ÚEmptyNc                   ó|  ‡ — e Zd ZU dZeed<   ej        ed<   eed<   e	ed<   e	ed<   de
fˆ fd„Zed3ˆ fd„¦   «         Zed3ˆ fd„¦   «         Zed3ˆ fd„¦   «         Zeefdededed	d
fd„¦   «         Zeefdeded	efd„¦   «         Zeefdeded	d
fd„¦   «         Zed
d
efdee	         dee	         ded	ee         fd„¦   «         Zeded	d
fd„¦   «         Zeded	efd„¦   «         Zeded	d
fd„¦   «         Zededed	d
fd„¦   «         Ze	 	 	 d4dedee         dee         dee         d	ee         f
d„¦   «         Z e e!¦   «         fdeded e"ee#                  d	d
fd!„¦   «         Z$ed
d
d"ee%fdeded#ee&         d$e'd%ee         d ee(         d&ee	         d'e)ded(ed	e*e+e)f         fd)„¦   «         Z,eee%fdeded(ed	d
fd*„¦   «         Z-ed
d
ee%d
d
fdee         dee         ded(edee	         dee	         d	ee+         fd+„¦   «         Z.eed
fded(ee         d	e	fd,„¦   «         Z/eded	e	fd-„¦   «         Z0 e1d.e2j3        ¦  «        ed/ed	e4fd0„¦   «         ¦   «         Z5e e!¦   «          e!¦   «          e!¦   «          e!¦   «         fdede"e         d&e"ee	                  d e"ee#                  d$e"ee6                  d	d
fd1„¦   «         Z7d3d2„Z8ˆ xZ9S )5Ú	GrpcSysDBz×A gRPC implementation of the SysDB. In the distributed system, the SysDB is also
    called the 'Coordinator'. This implementation is used by Chroma frontend servers
    to call a remote SysDB (Coordinator) service.Ú_sys_db_stubÚ_channelÚ_coordinator_urlÚ_coordinator_portÚ_request_timeout_secondsÚsystemc                 ó   •— |j                              d¦  «        | _        |j                              d¦  «        | _        |j                              d¦  «        | _        t          ¦   «                              |¦  «        S )NÚchroma_coordinator_hostÚchroma_server_grpc_portÚ$chroma_sysdb_request_timeout_seconds)ÚsettingsÚrequirerG   rH   rI   ÚsuperÚ__init__)ÚselfrJ   Ú	__class__s     €úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/db/impl/grpc/client.pyrR   zGrpcSysDB.__init__O   sl   ø€ Ø &¤× 7Ò 7Ð8QÑ RÔ RˆÔà!'¤×!8Ò!8Ð9RÑ!SÔ!SˆÔØ(.¬×(?Ò(?Ø2ñ)
ô )
ˆÔ%õ ‰wŒw×Ò Ñ'Ô'Ð'ó    ÚreturnNc                 ó<  •— t          j        | j        › d| j        › �dg¬¦  «        | _        t          ¦   «         t          ¦   «         g}t          j        | j        g|¢R Ž | _        t          | j        ¦  «        | _	        t          ¦   «                              ¦   «         S )Nú:)zgrpc.max_concurrent_streamsiè  )Úoptions)ÚgrpcÚinsecure_channelrG   rH   rF   r5   r4   Úintercept_channelr3   rE   rQ   Ústart)rS   ÚinterceptorsrT   s     €rU   r^   zGrpcSysDB.startX   s’   ø€ åÔ-ØÔ$Ð?Ð? tÔ'=Ð?Ð?Ø:Ð;ð
ñ 
ô 
ˆŒõ (Ñ)Ô)Õ+KÑ+MÔ+MÐNˆÝÔ.¨t¬}ÐL¸|ÐLÐLÐLˆŒÝ% d¤mÑ4Ô4ˆÔÝ‰wŒw�}Š}‰ŒÐrV   c                 óv   •— | j                              ¦   «          t          ¦   «                              ¦   «         S ©N)rF   ÚcloserQ   Ústop©rS   rT   s    €rU   rc   zGrpcSysDB.stopc   s)   ø€ àŒ×ÒÑÔÐÝ‰wŒw�|Š|‰~Œ~ÐrV   c                 ó�   •— | j                              t          ¦   «         ¦  «         t          ¦   «                              ¦   «         S ra   )rE   Ú
ResetStaterB   rQ   Úreset_staterd   s    €rU   rg   zGrpcSysDB.reset_stateh   s4   ø€ àÔ×$Ò$¥U¡W¤WÑ-Ô-Ð-Ý‰wŒw×"Ò"Ñ$Ô$Ð$rV   ÚidÚnameÚtenantc                 ól  — 	 t          |j        ||¬¦  «        }| j                             || j        ¬¦  «        }d S # t
          j        $ rh}t          j        d|› d|› d|› d|› �¦  «         | 	                    ¦   «         t
          j
        j        k    rt          ¦   «         ‚t          ¦   «         ‚d }~ww xY w)N©rh   ri   rj   ©ÚtimeoutzFailed to create database name z and database id ú for tenant ú due to error: )r   ÚhexrE   ÚCreateDatabaserI   r[   ÚRpcErrorr   ÚinfoÚcodeÚ
StatusCodeÚALREADY_EXISTSr   r   )rS   rh   ri   rj   ÚrequestÚresponseÚes          rU   Úcreate_databasezGrpcSysDB.create_databasem   sÒ   € ð	"Ý+¨r¬v¸DÈÐPÑPÔPˆGØÔ(×7Ò7Ø Ô!>ð 8ñ ô ˆHˆHˆHøõ Œ}ð 	"ð 	"ð 	"ÝŒKØs°$ÐsÐsÈÐsÐsÐY_ÐsÐsÐpqÐsÐsñô ð ð �vŠv‰xŒx�4œ?Ô9Ò9Ð9Ý+Ñ-Ô-Ð-Ý‘/”/Ð!øøøøð	"øøøs   ‚8< ¼B3ÁA#B.Â.B3c           	      óÒ  — 	 t          ||¬¦  «        }| j                             || j        ¬¦  «        }t	          t          |j        j        ¬¦  «        |j        j        |j        j	        ¬¦  «        S # t          j        $ re}t          j        d|› d|› d|› �¦  «         |                     ¦   «         t          j        j        k    rt#          ¦   «         ‚t%          ¦   «         ‚d }~ww xY w)N©ri   rj   rm   ©rq   rl   zFailed to get database ro   rp   )r-   rE   ÚGetDatabaserI   r:   r	   Údatabaserh   ri   rj   r[   rs   r   rt   ru   rv   Ú	NOT_FOUNDr   r   )rS   ri   rj   rx   ry   rz   s         rU   Úget_databasezGrpcSysDB.get_database~   sþ   € ð	"Ý(¨d¸6ÐBÑBÔBˆGØÔ(×4Ò4Ø Ô!>ð 5ñ ô ˆHõ Ý˜HÔ-Ô0Ð1Ñ1Ô1ØÔ&Ô+ØÔ(Ô/ðñ ô ð øõ
 Œ}ð 	"ð 	"ð 	"ÝŒKØV¨$ÐVÐV¸FÐVÐVÐSTÐVÐVñô ð ð �vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%Ý‘/”/Ð!øøøøð	"øøøs   ‚A/A2 Á2C&ÂA C!Ã!C&c           	      óL  — 	 t          ||¬¦  «        }| j                             || j        ¬¦  «         d S # t          j        $ r^}t          j        d|› d|› d|› �¦  «         |                     ¦   «         t          j	        j
        k    rt          ¦   «         ‚t          ‚d }~ww xY w)Nr}   rm   zFailed to delete database ro   rp   )r%   rE   ÚDeleteDatabaserI   r[   rs   r   rt   ru   rv   r�   r   r   )rS   ri   rj   rx   rz   s        rU   Údelete_databasezGrpcSysDB.delete_database’   sÈ   € ð	 Ý+°¸fÐEÑEÔEˆGØÔ×,Ò,Ø Ô!>ð -ñ ô ð ð ð øõ Œ}ð 	 ð 	 ð 	 ÝŒKØY¨TÐYÐY¸vÐYÐYÐVWÐYÐYñô ð ð �vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%ÝÐøøøøð	 øøøs   ‚26 ¶B#ÁABÂB#ÚlimitÚoffsetc                 óˆ  — 	 t          |||¬¦  «        }| j                             || j        ¬¦  «        }g }|j        D ]D}|                     t          t          |j        ¬¦  «        |j	        |j
        ¬¦  «        ¦  «         ŒE|S # t          j        $ r-}t          j        d|› d|› �¦  «         t          ¦   «         ‚d }~ww xY w)N)r†   r‡   rj   rm   r~   rl   z$Failed to list databases for tenant rp   )r0   rE   ÚListDatabasesrI   Ú	databasesÚappendr:   r	   rh   ri   rj   r[   rs   r   rt   r   )	rS   r†   r‡   rj   rx   ry   ÚresultsÚproto_databaserz   s	            rU   Úlist_databaseszGrpcSysDB.list_databases¡   sþ   € ð	"Ý*°¸vÈfÐUÑUÔUˆGØÔ(×6Ò6Ø Ô!>ð 7ñ ô ˆHð ')ˆGØ"*Ô"4ð ð �Ø—’ÝÝ NÔ$5Ð6Ñ6Ô6Ø+Ô0Ø-Ô4ðñ ô ñô ð ð ð ˆNøÝŒ}ð 	"ð 	"ð 	"ÝŒKØQ°vÐQÐQÈaÐQÐQñô ð õ  ‘/”/Ð!øøøøð		"øøøs   ‚BB ÂCÂ(B<Â<Cc                 óR  — 	 t          |¬¦  «        }| j                             || j        ¬¦  «        }d S # t          j        $ rb}t          j        d|› d|› �¦  «         |                     ¦   «         t          j	        j
        k    rt          ¦   «         ‚t          ¦   «         ‚d }~ww xY w)N©ri   rm   zFailed to create tenant rp   )r!   rE   ÚCreateTenantrI   r[   rs   r   rt   ru   rv   rw   r   r   ©rS   ri   rx   ry   rz   s        rU   Úcreate_tenantzGrpcSysDB.create_tenant½   s²   € ð		"Ý)¨tÐ4Ñ4Ô4ˆGØÔ(×5Ò5Ø Ô!>ð 6ñ ô ˆHˆHˆHøõ Œ}ð 	"ð 	"ð 	"ÝŒKÐK°4ÐKÐKÈÐKÐKÑLÔLÐLØ�vŠv‰xŒx�4œ?Ô9Ò9Ð9Ý+Ñ-Ô-Ð-Ý‘/”/Ð!øøøøð		"øøøs   ‚15 µB&ÁAB!Â!B&c                 ó‚  — 	 t          |¬¦  «        }| j                             || j        ¬¦  «        }t	          |j        j        ¬¦  «        S # t          j        $ rb}t          j
        d|› d|› �¦  «         |                     ¦   «         t          j        j        k    rt          ¦   «         ‚t          ¦   «         ‚d }~ww xY w)Nr�   rm   zFailed to get tenant rp   )r/   rE   Ú	GetTenantrI   r?   rj   ri   r[   rs   r   rt   ru   rv   r�   r   r   r’   s        rU   Ú
get_tenantzGrpcSysDB.get_tenantÊ   sÍ   € ð	"Ý&¨DÐ1Ñ1Ô1ˆGØÔ(×2Ò2Ø Ô!>ð 3ñ ô ˆHõ Ø”_Ô)ðñ ô ð øõ Œ}ð 	"ð 	"ð 	"ÝŒKÐH°ÐHÐHÀQÐHÐHÑIÔIÐIØ�vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%Ý‘/”/Ð!øøøøð		"øøøs   ‚A
A ÁB>ÁAB9Â9B>Úsegmentc                 óp  — 	 t          |¦  «        }t          |¬¦  «        }| j                             || j        ¬¦  «        }d S # t
          j        $ rb}t          j        d|› d|› �¦  «         | 	                    ¦   «         t
          j
        j        k    rt          ¦   «         ‚t          ¦   «         ‚d }~ww xY w)N)r—   rm   zFailed to create segment ú	, error: )r   r    rE   ÚCreateSegmentrI   r[   rs   r   rt   ru   rv   rw   r   r   )rS   r—   Úproto_segmentrx   ry   rz   s         rU   Úcreate_segmentzGrpcSysDB.create_segmentÚ   sÈ   € ð	"Ý,¨WÑ5Ô5ˆMÝ*Ø%ðñ ô ˆGð Ô(×6Ò6Ø Ô!>ð 7ñ ô ˆHˆHˆHøõ Œ}ð 	"ð 	"ð 	"ÝŒKÐI°GÐIÐIÀaÐIÐIÑJÔJÐJØ�vŠv‰xŒx�4œ?Ô9Ò9Ð9Ý+Ñ-Ô-Ð-Ý‘/”/Ð!øøøøð		"øøøs   ‚A A ÁB5ÁAB0Â0B5Ú
collectionc           	      ón  — 	 t          |j        |j        ¬¦  «        }| j                             || j        ¬¦  «        }d S # t
          j        $ re}t          j        d|› d|› d|› �¦  «         | 	                    ¦   «         t
          j
        j        k    rt          ¦   «         ‚t          ¦   «         ‚d }~ww xY w)N)rh   r�   rm   z!Failed to delete segment with id ú for collection rp   )r&   rq   rE   ÚDeleteSegmentrI   r[   rs   r   rt   ru   rv   r�   r   r   )rS   r�   rh   rx   ry   rz   s         rU   Údelete_segmentzGrpcSysDB.delete_segmentê   sÑ   € ð	"Ý*Ø”6Ø%œ>ðñ ô ˆGð Ô(×6Ò6Ø Ô!>ð 7ñ ô ˆHˆHˆHøõ Œ}ð 	"ð 	"ð 	"ÝŒKØf°BÐfÐfÈ
ÐfÐfÐcdÐfÐfñô ð ð �vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%Ý‘/”/Ð!øøøøð	"øøøs   ‚<A  Á B4ÁA B/Â/B4ÚtypeÚscopec                 óž  — 	 t          |r|j        nd ||rt          |¦  «        nd |j        ¬¦  «        }| j                             || j        ¬¦  «        }g }|j        D ]&}t          |¦  «        }	|                     |	¦  «         Œ'|S # t          j
        $ r6}
t          j        d|› d|› d|› d|› d|
› �
¦  «         t          ¦   «         ‚d }
~
ww xY w)N)rh   r¢   r£   r�   rm   zFailed to get segment id z, type z, scope rŸ   rp   )r.   rq   r   rE   ÚGetSegmentsrI   Úsegmentsr   r‹   r[   rs   r   rt   r   )rS   r�   rh   r¢   r£   rx   ry   rŒ   r›   r—   rz   s              rU   Úget_segmentszGrpcSysDB.get_segmentsü   s  € ð	"Ý(ØÐ)�2”6�6 TØØ7<ÐFÕ,¨UÑ3Ô3Ð3À$Ø%œ>ð	ñ ô ˆGð Ô(×4Ò4Ø Ô!>ð 5ñ ô ˆHð &(ˆGØ!)Ô!2ð (ð (�Ý,¨]Ñ;Ô;�Ø—’˜wÑ'Ô'Ð'Ð'ØˆNøÝŒ}ð 	"ð 	"ð 	"ÝŒKØz¨BÐzÐz°tÐzÐzÀUÐzÐzÐ\fÐzÐzÐwxÐzÐzñô ð õ  ‘/”/Ð!øøøøð		"øøøs   ‚BB ÂCÂ1CÃCÚmetadatac           	      óÐ  — 	 d }|t          ¦   «         k    r"t          t          t          d f         |¦  «        }t	          |j        |j        |rt          |¦  «        nd ¬¦  «        }|€|                     d¦  «         d|_        | j	         
                    || j        ¬¦  «         d S # t          j        $ r0}t          j        d|› d|› d|› �¦  «         t!          ¦   «         ‚d }~ww xY w)N)rh   r�   r¨   r¨   Trm   z!Failed to update segment with id rŸ   r™   )r@   r   r   rA   r2   rq   r   Ú
ClearFieldÚreset_metadatarE   ÚUpdateSegmentrI   r[   rs   r   rt   r   )rS   r�   rh   r¨   Úwrite_metadatarx   rz   s          rU   Úupdate_segmentzGrpcSysDB.update_segment  s   € ð	"Ø!ˆNØ�;™=œ=Ò(Ð(Ý!%¥e­N¸DÐ,@Ô&AÀ8Ñ!LÔ!L�å*Ø”6Ø%œ>à!ðÕ1°.ÑAÔAÐAàðñ ô ˆGð ÐØ×"Ò" :Ñ.Ô.Ð.Ø)-�Ô&àÔ×+Ò+Ø Ô!>ð ,ñ ô ð ð ð øõ Œ}ð 	"ð 	"ð 	"ÝŒKØ`°BÐ`Ð`È
Ð`Ð`Ð]^Ð`Ð`ñô ð õ  ‘/”/Ð!øøøøð		"øøøs   ‚B"B& Â&C%Â5+C Ã C%FÚschemaÚconfigurationr¦   Ú	dimensionÚget_or_creater€   c                 ó,  — 	 t          |j        |t          |t          t          |¦  «        ¦  «        |rt          |¦  «        nd |||	|
d„ |D ¦   «         ¬¦	  «	        }| j                             || j        ¬¦  «        }t          |j
        ¦  «        }||j        fS # t          j        $ rk}t          j        d|› d|› d|
› d|	› d|› �
¦  «         |                     ¦   «         t          j        j        k    rt'          ¦   «         ‚t)          ¦   «         ‚d }~ww xY w)	Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS © )r   ©Ú.0r—   s     rU   ú
<listcomp>z/GrpcSysDB.create_collection.<locals>.<listcomp>T  s!   € ÐLÐLÐL¸Õ*¨7Ñ3Ô3ÐLÐLÐLrV   )	rh   ri   Úconfiguration_json_strr¨   r±   r²   rj   r€   r¦   rm   zFailed to create collection id ú, name ú for database ú and tenant rp   )r   rq   r   r   r   r   rE   ÚCreateCollectionrI   r   r�   Úcreatedr[   rs   r   Úerrorru   rv   rw   r   r   )rS   rh   ri   r¯   r°   r¦   r¨   r±   r²   rj   r€   rx   ry   r�   rz   s                  rU   Úcreate_collectionzGrpcSysDB.create_collection:  sr  € ð	"Ý-Ø”6ØÝ'RØ!¥4Õ(:¸HÑ#EÔ#Eñ(ô (ð @HÐQÕ1°(Ñ;Ô;Ð;ÈTØ#Ø+ØØ!ØLÐLÀ8ÐLÑLÔLðñ ô ˆGð Ô(×9Ò9Ø Ô!>ð :ñ ô ˆHõ /¨xÔ/BÑCÔCˆJØ˜xÔ/Ð/Ð/øÝŒ}ð 	"ð 	"ð 	"ÝŒLð B°"ð  Bð  B¸Tð  Bð  BÐQYð  Bð  BÐgmð  Bð  BÐ~ð  Bð  Bñô ð ð �vŠv‰xŒx�4œ?Ô9Ò9Ð9Ý+Ñ-Ô-Ð-Ý‘/”/Ð!øøøøð	"øøøs   ‚BB ÂDÂ(A&DÄDc                 ó  — 	 t          |j        ||¬¦  «        }| j                             || j        ¬¦  «        }d S # t
          j        $ r½}t          j        d|› d|› d|› d|› �¦  «         t          t
          j
        |¦  «        }t          j        d|                     ¦   «         › dt
          j        j        › �¦  «         |                     ¦   «         t
          j        j        k    rt          ¦   «         ‚t          ¦   «         ‚d }~ww xY w)	N)rh   rj   r€   rm   zFailed to delete collection id r»   r¼   rp   zError code: z, NotFoundError: )r$   rq   rE   ÚDeleteCollectionrI   r[   rs   r   r¿   r   ÚCallru   rv   r�   r   r   )rS   rh   rj   r€   rx   ry   rz   s          rU   Údelete_collectionzGrpcSysDB.delete_collectionc  s"  € ð	"Ý-Ø”6ØØ!ðñ ô ˆGð
 Ô(×9Ò9Ø Ô!>ð :ñ ô ˆHˆHˆHøõ Œ}ð 
	"ð 
	"ð 
	"ÝŒLØt°"ÐtÐtÀHÐtÐtÐZ`ÐtÐtÐqrÐtÐtñô ð õ •T”Y Ñ"Ô"ˆAÝŒLØU˜qŸvšv™xœxÐUÐU½$¼/Ô:SÐUÐUñô ð ð �vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%Ý‘/”/Ð!øøøøð
	"øøøs   ‚8< ¼DÁB8DÄDc                 óì  — 	 d }|�t          |j        ||¬¦  «        }|�'|€|€t          d¦  «        ‚t          |||||¬¦  «        }|€|€t          ||||¬¦  «        }| j                             || j        ¬¦  «        }g }	|j        D ]$}
|	                     t          |
¦  «        ¦  «         Œ%|	S # t          j
        $ r6}t          j        d|› d|› d|› d	|› d
|› �
¦  «         t          ¦   «         ‚d }~ww xY w)N)rh   r†   r‡   zmIf name is specified, tenant and database must also be specified in order to uniquely identify the collection)ri   rj   r€   r†   r‡   )rj   r€   r†   r‡   rm   z"Failed to get collections with id rº   z	, tenant z, database rp   )r'   rq   Ú
ValueErrorrE   ÚGetCollectionsrI   Úcollectionsr‹   r   r[   rs   r   r¿   r   )rS   rh   ri   rj   r€   r†   r‡   rx   ry   rŒ   r�   rz   s               rU   Úget_collectionszGrpcSysDB.get_collections  s~  € ð'	"àˆGØˆ~Ý/Ø”vØØ!ðñ ô �ð
 ÐØ�> hÐ&6Ý$ð Hñô ð õ 0ØØ!Ø%ØØ!ðñ ô �ð ˆz˜d˜lÝ/Ø!Ø%ØØ!ð	ñ ô �ð 04Ô/@×/OÒ/OØ Ô!>ð 0Pñ 0ô 0ˆHð )+ˆGØ&Ô2ð Bð B�
Ø—’Õ4°ZÑ@Ô@ÑAÔAÐAÐAØˆNøÝŒ}ð 	"ð 	"ð 	"ÝŒLØ~°RÐ~Ð~ÀÐ~Ð~ÈvÐ~Ð~ÐbjÐ~Ð~Ð{|Ð~Ð~ñô ð õ  ‘/”/Ð!øøøøð		"øøøs   ‚B+B. Â.C3Â=1C.Ã.C3c                 óR  — 	 |�|dk    r1t          |¬¦  «        }| j                             |¦  «        }|j        S t          ||¬¦  «        }| j                             |¦  «        }|j        S # t          j        $ r*}t          j        d|› �¦  «         t          ¦   «         ‚d }~ww xY w)NÚ )rj   )rj   r€   z*Failed to count collections due to error: )	r"   rE   ÚCountCollectionsÚcountr[   rs   r   r¿   r   )rS   rj   r€   rx   ry   rz   s         rU   Úcount_collectionszGrpcSysDB.count_collections²  sÏ   € ð	"ØÐ 8¨r¢> >Ý1¸Ð@Ñ@Ô@�Ø59Ô5F×5WÒ5WØñ6ô 6�ð  ”~Ð%å1Ø!Ø%ðñ ô �ð 6:Ô5F×5WÒ5WØñ6ô 6�ð  ”~Ð%øÝŒ}ð 	"ð 	"ð 	"ÝŒLÐIÀaÐIÐIÑJÔJÐJÝ‘/”/Ð!øøøøð	"øøøs   ‚8A- »1A- Á-B&Á<%B!Â!B&c                 óî   — 	 t          |j        ¬¦  «        }| j                             |¦  «        }|j        S # t
          j        $ r-}t          j        d|› d|› �¦  «         t          ¦   «         ‚d }~ww xY w)N©rh   úFailed to get collection z size due to error: )
r)   rq   rE   ÚGetCollectionSizeÚtotal_records_post_compactionr[   rs   r   r¿   r   )rS   rh   rx   ry   rz   s        rU   Úget_collection_sizezGrpcSysDB.get_collection_sizeÌ  s‹   € ð	"Ý.°"´&Ð9Ñ9Ô9ˆGØ26Ô2C×2UÒ2UØñ3ô 3ˆHð Ô9Ð9øÝŒ}ð 	"ð 	"ð 	"ÝŒLÐP°RÐPÐPÈQÐPÐPÑQÔQÐQÝ‘/”/Ð!øøøøð	"øøøs   ‚58 ¸A4Á(A/Á/A4z"SysDB.get_collection_with_segmentsÚcollection_idc                 ó®  — 	 t          |j        ¬¦  «        }| j                             |¦  «        }t	          t          |j        ¦  «        d„ |j        D ¦   «         ¬¦  «        S # t          j	        $ rb}| 
                    ¦   «         t          j        j        k    rt          ¦   «         ‚t          j        d|› d|› �¦  «         t!          ¦   «         ‚d }~ww xY w)NrÐ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rµ   )r   r¶   s     rU   r¸   z:GrpcSysDB.get_collection_with_segments.<locals>.<listcomp>æ  s!   € ÐWÐWÐW¸'Õ,¨WÑ5Ô5ÐWÐWÐWrV   )r�   r¦   rÑ   z  and its segments due to error: )r+   rq   rE   ÚGetCollectionWithSegmentsr9   r   r�   r¦   r[   rs   ru   rv   r�   r   r   r¿   r   )rS   rÕ   rx   ry   rz   s        rU   Úget_collection_with_segmentsz&GrpcSysDB.get_collection_with_segmentsØ  sç   € ð	"Ý6¸-Ô:KÐLÑLÔLˆGàÔ!×;Ò;¸GÑDÔDð õ )Ý0°Ô1DÑEÔEØWÐWÀXÔEVÐWÑWÔWðñ ô ð øõ Œ}ð 	"ð 	"ð 	"Ø�vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%ÝŒLØ^¨MÐ^Ð^Ð[\Ð^Ð^ñô ð õ  ‘/”/Ð!øøøøð	"øøøs   ‚A A# Á#CÁ2ACÃCc           	      ó  — 	 d }|t          ¦   «         k    rt          t          |¦  «        }d }|t          ¦   «         k    r"t          t          t          d f         |¦  «        }d }|t          ¦   «         k    r"t          t          t
          d f         |¦  «        }d }	|t          ¦   «         k    r"t          t          t          d f         |¦  «        }	t          |j        |||rt          |¦  «        nd |	rt          |	¦  «        nd ¬¦  «        }
|€|
                     d¦  «         d|
_        | j                             |
| j        ¬¦  «        }d S # t           j        $ r´}t          t           j        |¦  «        }t'          j        d|› d|› d|› �¦  «         |                     ¦   «         t           j        j        k    rt1          ¦   «         ‚|                     ¦   «         t           j        j        k    rt5          ¦   «         ‚t7          ¦   «         ‚d }~ww xY w)N)rh   ri   r±   r¨   r¹   r¨   Trm   zFailed to update collection id rº   rp   )r@   r   Ústrr   ÚintrA   r   r1   rq   r   r   rª   r«   rE   ÚUpdateCollectionrI   r[   rs   rÃ   r   r¿   ru   rv   r�   r   rw   r   r   )rS   rh   ri   r±   r¨   r°   Ú
write_nameÚwrite_dimensionr­   Úwrite_configurationrx   ry   rz   s                rU   Úupdate_collectionzGrpcSysDB.update_collectionð  s  € ð0	"ØˆJØ•{‘}”}Ò$Ð$Ý!¥# t™_œ_�
à"ˆOØ�K™MœMÒ)Ð)Ý"&¥u­S°$¨YÔ'7¸Ñ"CÔ"C�à!ˆNØ�;™=œ=Ò(Ð(Ý!%¥e­N¸DÐ,@Ô&AÀ8Ñ!LÔ!L�à"&ÐØ¥¡¤Ò-Ð-Ý&*ÝÕ7¸Ð=Ô>Àñ'ô 'Ð#õ .Ø”6ØØ)à!ðÕ1°.ÑAÔAÐAàð 'ð(Õ'RØ'ñ(ô (ð (ð ðñ ô ˆGð ÐØ×"Ò" :Ñ.Ô.Ð.Ø)-�Ô&àÔ(×9Ò9Ø Ô!>ð :ñ ô ˆHˆHˆHøõ Œ}ð 		"ð 		"ð 		"Ý•T”Y Ñ"Ô"ˆAÝŒLØU°"ÐUÐU¸TÐUÐUÐRSÐUÐUñô ð ð �vŠv‰xŒx�4œ?Ô4Ò4Ð4Ý#‘o”oÐ%Ø�vŠv‰xŒx�4œ?Ô9Ò9Ð9Ý+Ñ-Ô-Ð-Ý‘/”/Ð!øøøøð		"øøøs   ‚EE	 Å	HÅB/HÈHc                 óV   — | j                              t          ¦   «         d¬¦  «         d S )NT)Úwait_for_ready)rE   rf   rB   )rS   s    rU   Úreset_and_wait_for_readyz"GrpcSysDB.reset_and_wait_for_ready-  s(   € ØÔ×$Ò$¥U¡W¤W¸TÐ$ÑBÔBÐBÐBÐBrV   )rW   N)NNN):Ú__name__Ú
__module__Ú__qualname__Ú__doc__r3   Ú__annotations__r[   ÚChannelrÛ   rÜ   r   rR   r
   r^   rc   rg   r   r	   r{   r:   r‚   r…   r   r   rŽ   r“   r?   r–   r=   rœ   r¡   r>   r§   r@   r<   rA   r®   r   r   r   r;   Úboolr   r8   rÀ   rÄ   rÉ   rÎ   rÔ   r7   r6   Ú	OPERATIONr9   rÙ   r   rá   rä   Ú__classcell__)rT   s   @rU   rD   rD   D   s  ø€ € € € € € ð5ð 5ð ÐÐÑØŒlÐÐÑØÐÐÑØÐÐÑØ!Ð!Ð!Ñ!ð(˜vð (ð (ð (ð (ð (ð (ð ðð ð ð ð ñ „Yðð ðð ð ð ð ñ „Yðð ð%ð %ð %ð %ð %ñ „Yð%ð à1?ð"ð "Øð"Ø!ð"Ø+.ð"à	ð"ð "ð "ñ „Yð"ð  Ø4Bð "ð " ð "¨cð "Àxð "ð "ð "ñ „Yð"ð& Ø7Eð  ð   Cð  °ð  È$ð  ð  ð  ñ „Yð ð ð  $Ø $Ø$ð	"ð "à˜Œ}ð"ð ˜”ð"ð ð	"ð
 
�(Ô	ð"ð "ð "ñ „Yð"ð6 ð
" #ð 
"¨$ð 
"ð 
"ð 
"ñ „Yð
"ð ð"˜sð " vð "ð "ð "ñ „Yð"ð ð" gð "°$ð "ð "ð "ñ „Yð"ð ð"¨ð "°4ð "¸Dð "ð "ð "ñ „Yð"ð" ð "Ø"Ø(,ð"ð "àð"ð �TŒNð"ð �sŒmð	"ð
 ˜Ô%ð"ð 
�'Ô	ð"ð "ð "ñ „Yð"ð8 ð
 @K¸{¹}¼}ð	"ð "àð"ð ð"ð # 8¨NÔ#;Ô<ð	"ð
 
ð"ð "ð "ñ „Yð"ð@ ð (,Ø#'Ø#Ø$Ø(ð&"ð &"àð&"ð ð&"ð ˜Ô ð	&"ð
 5ð&"ð ˜7Ô#ð&"ð ˜8Ô$ð&"ð ˜C”=ð&"ð ð&"ð ð&"ð ð&"ð 
ˆz˜4ÐÔ	 ð&"ð &"ð &"ñ „Yð&"ðP ð %Ø(ð	"ð "àð"ð ð"ð ð	"ð
 
ð"ð "ð "ñ „Yð"ð6 ð "Ø"Ø$Ø(Ø#Ø $ð0"ð 0"à�TŒNð0"ð �sŒmð0"ð ð	0"ð
 ð0"ð ˜Œ}ð0"ð ˜”ð0"ð 
�*Ô	ð0"ð 0"ð 0"ñ „Yð0"ðd ð %Ø"&ð"ð "àð"ð ˜3”-ð"ð 
ð	"ð "ð "ñ „Yð"ð2 ð	" dð 	"¨sð 	"ð 	"ð 	"ñ „Yð	"ð €\Ø,Ð.FÔ.Pñô ð ð"Ø!ð"à	ð"ð "ð "ñ „Yñô ð"ð( ð '2 k¡m¤mØ5@°[±]´]Ø?J¸{¹}¼}ð ˆK‰MŒMð:"ð :"àð:"ð ˜sÔ#ð:"ð $ H¨S¤MÔ2ð	:"ð
 # 8¨NÔ#;Ô<ð:"ð (ØÐ2Ô3ô
ð:"ð 
ð:"ð :"ð :"ñ „Yð:"ðxCð Cð Cð Cð Cð Cð Cð CrV   rD   )QÚtypingr   r   r   r   r   r   Úuuidr	   r
   Ú%chromadb.api.collection_configurationr   r   r   r   r   Úchromadb.api.typesr   Úchromadb.configr   r   r   r   Úchromadb.db.systemr   Úchromadb.errorsr   r   r   Úchromadb.proto.convertr   r   r   r   r   Úchromadb.proto.coordinator_pb2r   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   Úchromadb.proto.utilsr4   Ú%chromadb.telemetry.opentelemetry.grpcr5   Ú chromadb.telemetry.opentelemetryr6   r7   Úchromadb.typesr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   Úgoogle.protobuf.empty_pb2rB   r[   rD   rµ   rV   rU   ú<module>rý      sp  ðØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ $Ð $Ð $Ð $Ð $Ð $Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð. :Ð 9Ð 9Ð 9Ð 9Ð 9Ø AÐ AÐ AÐ AÐ AÐ AØ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø €€€ðjCð jCð jCð jCð jC�ñ jCô jCð jCð jCð jCrV   