Ë
    lQêj¡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«      ZPy)é    )Ú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                   óL  ‡ — 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.e2jf                  «      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                   j                  d«      | _        |j                   j                  d«      | _        |j                   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     €úa/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/db/impl/grpc/client.pyrR   zGrpcSysDB.__init__O   s_   ø€ Ø &§¡× 7Ñ 7Ð8QÓ RˆÔà!'§¡×!8Ñ!8Ð9RÓ!SˆÔØ(.¯©×(?Ñ(?Ø2ó)
ˆÔ%ô ‰wÑ Ó'Ð'ó    ÚreturnNc                 ó2  •— t        j                  | j                  › d| j                  › �dg¬«      | _        t        «       t        «       g}t        j                  | j                  g|¢­Ž | _        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‚   ø€ ä×-Ñ-Ø×$Ñ$Ð% Q t×'=Ñ'=Ð&>Ð?Ø:Ð;ô
ˆŒô (Ó)Ô+KÓ+MÐNˆÜ×.Ñ.¨t¯}©}ÐL¸|ÒLˆŒÜ% d§m¡mÓ4ˆÔÜ‰w‰}‹ÐrV   c                 óT   •— | j                   j                  «        t        ‰| �  «       S ©N)rF   ÚcloserQ   Ústop©rS   rT   s    €rU   rc   zGrpcSysDB.stopc   s   ø€ à�‰×ÑÔÜ‰w‰|‹~ÐrV   c                 óf   •— | j                   j                  t        «       «       t        ‰| �  «       S ra   )rE   Ú
ResetStaterB   rQ   Úreset_staterd   s    €rU   rg   zGrpcSysDB.reset_stateh   s'   ø€ à×Ñ×$Ñ$¤U£WÔ-Ü‰wÑ"Ó$Ð$rV   ÚidÚnameÚtenantc                 óz  — 	 t        |j                  ||¬«      }| j                  j                  || j                  ¬«      }y # t
        j                  $ re}t        j                  d|› d|› d|› d|› �«       |j                  «       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©v¸DÈÔPˆGØ×(Ñ(×7Ñ7Ø ×!>Ñ!>ð 8ó ‰Høô �}‰}ò 	"Ü�K‰KØ1°$°Ð7HÈÈÈLÐY_ÐX`Ð`oÐpqÐorÐsôð �v‰v‹xœ4Ÿ?™?×9Ñ9Ò9Ü+Ó-Ð-Ü“/Ð!ûð	"ús   ‚?A ÁB:ÁA B5Â5B:c           	      ó  — 	 t        ||¬«      }| j                  j                  || j                  ¬«      }t	        t        |j                  j                  ¬«      |j                  j                  |j                  j                  ¬«      S # t        j                  $ rb}t        j                  d|› d|› d|› �«       |j                  «       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ˆGØ×(Ñ(×4Ñ4Ø ×!>Ñ!>ð 5ó ˆHô Ü˜H×-Ñ-×0Ñ0Ô1Ø×&Ñ&×+Ñ+Ø×(Ñ(×/Ñ/ôð øô
 �}‰}ò 	"Ü�K‰KØ)¨$¨¨|¸F¸8À?ÐSTÐRUÐVôð �v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%Ü“/Ð!ûð	"ús   ‚BB
 Â
C?ÂAC:Ã:C?c           	      óV  — 	 t        ||¬«      }| j                  j                  || j                  ¬«       y # t        j
                  $ r^}t        j                  d|› d|› d|› �«       |j                  «       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ˆGØ×Ñ×,Ñ,Ø ×!>Ñ!>ð -õ øô �}‰}ò 	 Ü�K‰KØ,¨T¨F°,¸v¸hÀoÐVWÐUXÐYôð �v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%ÜÐûð	 ús   ‚47 ·B(Á
AB#Â#B(ÚlimitÚoffsetc                 ó¢  — 	 t        |||¬«      }| j                  j                  || j                  ¬«      }g }|j                  D ]G  }|j                  t        t        |j                  ¬«      |j                  |j                  ¬«      «       ŒI |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ˆGØ×(Ñ(×6Ñ6Ø ×!>Ñ!>ð 7ó ˆHð ')ˆGØ"*×"4Ñ"4ò �Ø—‘ÜÜ N×$5Ñ$5Ô6Ø+×0Ñ0Ø-×4Ñ4ôõðð ˆNøÜ�}‰}ò 	"Ü�K‰KØ6°v°h¸oÈaÈSÐQôô  “/Ð!ûð		"ús   ‚BB ÂCÂ$%C	Ã	Cc                 óV  — 	 t        |¬«      }| j                  j                  || j                  ¬«      }y # t        j
                  $ r_}t        j                  d|› d|› �«       |j                  «       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ˆGØ×(Ñ(×5Ñ5Ø ×!>Ñ!>ð 6ó ‰Høô �}‰}ò 	"Ü�K‰KÐ2°4°&¸ÈÀsÐKÔLØ�v‰v‹xœ4Ÿ?™?×9Ñ9Ò9Ü+Ó-Ð-Ü“/Ð!ûð		"ús   ‚36 ¶B(Á	AB#Â#B(c                 ó”  — 	 t        |¬«      }| j                  j                  || j                  ¬«      }t	        |j
                  j                  ¬«      S # t        j                  $ r_}t        j                  d|› d|› �«       |j                  «       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ˆGØ×(Ñ(×2Ñ2Ø ×!>Ñ!>ð 3ó ˆHô Ø—_‘_×)Ñ)ôð øô �}‰}ò 	"Ü�K‰KÐ/°¨v°_ÀQÀCÐHÔIØ�v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%Ü“/Ð!ûð		"ús   ‚AA ÁCÁ(ACÃCÚsegmentc                 ól  — 	 t        |«      }t        |¬«      }| j                  j                  || j                  ¬«      }y # t
        j                  $ r_}t        j                  d|› d|› �«       |j                  «       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ˆMÜ*Ø%ôˆGð ×(Ñ(×6Ñ6Ø ×!>Ñ!>ð 7ó ‰Høô �}‰}ò 	"Ü�K‰KÐ3°G°9¸IÀaÀSÐIÔJØ�v‰v‹xœ4Ÿ?™?×9Ñ9Ò9Ü+Ó-Ð-Ü“/Ð!ûð		"ús   ‚>A ÁB3ÁAB.Â.B3Ú
collectionc           	      ó†  — 	 t        |j                  |j                  ¬«      }| j                  j                  || j                  ¬«      }y # t
        j                  $ rb}t        j                  d|› d|› d|› �«       |j                  «       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‘6Ø%Ÿ>™>ôˆGð ×(Ñ(×6Ñ6Ø ×!>Ñ!>ð 7ó ‰Høô �}‰}ò 	"Ü�K‰KØ3°B°4Ð7GÈ
À|ÐSbÐcdÐbeÐfôð �v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%Ü“/Ð!ûð	"ús   ‚AA ÁC ÁAB;Â;C ÚtypeÚscopec                 ó®  — 	 t        |r|j                  nd ||rt        |«      nd |j                  ¬«      }| j                  j	                  || j
                  ¬«      }g }|j                  D ]  }t        |«      }	|j                  |	«       Œ  |S # t        j                  $ r3}
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<Ô,¨UÔ3À$Ø%Ÿ>™>ô	ˆGð ×(Ñ(×4Ñ4Ø ×!>Ñ!>ð 5ó ˆHð &(ˆGØ!)×!2Ñ!2ò (�Ü,¨]Ó;�Ø—‘˜wÕ'ð(ð ˆNøÜ�}‰}ò 	"Ü�K‰KØ+¨B¨4¨w°t°f¸HÀUÀGÐK[Ð\fÐ[gÐgvÐwxÐvyÐzôô  “/Ð!ûð		"ús   ‚BB ÂCÂ!.CÃCÚmetadatac           	      ó¼  — 	 d }|t        «       k7  rt        t        t        d f   |«      }t	        |j
                  |j
                  |rt        |«      nd ¬«      }|€|j                  d«       d|_        | j                  j                  || j                  ¬«       y # t        j                  $ r-}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�ä*Ø—6‘6Ø%Ÿ>™>á!ô 2°.ÔAàôˆGð ÐØ×"Ñ" :Ô.Ø)-�Ô&à×Ñ×+Ñ+Ø ×!>Ñ!>ð ,õ øô �}‰}ò 	"Ü�K‰KØ3°B°4Ð7GÈ
À|ÐS\Ð]^Ð\_Ð`ôô  “/Ð!ûð		"ús   ‚BB ÂCÂ.(CÃCFÚschemaÚconfigurationr¦   Ú	dimensionÚget_or_creater€   c                 óR  — 	 t        |j                  |t        |t        t        |«      «      |rt        |«      nd |||	|
|D �cg c]  }t        |«      ‘Œ c}¬«	      }| j                  j                  || j                  ¬«      }t        |j                  «      }||j                  fS c c}w # t        j                  $ rh}t        j                   d|› d|› d|
› d|	› d|› �
«       |j#                  «       t        j$                  j&                  k(  r
t)        «       ‚t+        «       ‚d }~ww xY w)N)	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   r   rE   ÚCreateCollectionrI   r   r�   Úcreatedr[   rs   r   Úerrorru   rv   rw   r   r   )rS   rh   ri   r¯   r°   r¦   r¨   r±   r²   rj   r€   r—   rx   ry   r�   rz   s                   rU   Úcreate_collectionzGrpcSysDB.create_collection:  s0  € ð	"Ü-Ø—6‘6ØÜ'RØ!¤4Ô(:¸HÓ#Eó(ñ @HÔ1°(Ô;ÈTØ#Ø+ØØ!ØCKÖL¸Ô*¨7Õ3ÒLôˆGð ×(Ñ(×9Ñ9Ø ×!>Ñ!>ð :ó ˆHô /¨x×/BÑ/BÓCˆJØ˜x×/Ñ/Ð/Ð/ùò Møô �}‰}ò 	"Ü�L‰LØ1°"°°W¸T¸FÀ.ÐQYÐPZÐZfÐgmÐfnÐn}Ð~ð  ~Að  Bôð �v‰v‹xœ4Ÿ?™?×9Ñ9Ò9Ü+Ó-Ð-Ü“/Ð!ûð	"ús,   ‚A B+ ÁB&ÁAB+ Â&B+ Â+D&Â>A#D!Ä!D&c                 ó0  — 	 t        |j                  ||¬«      }| j                  j                  || j                  ¬«      }y # t
        j                  $ rÀ}t        j                  d|› d|› d|› d|› �«       t        t
        j                  |«      }t        j                  d|j                  «       › dt
        j                  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‘6ØØ!ôˆGð
 ×(Ñ(×9Ñ9Ø ×!>Ñ!>ð :ó ‰Høô �}‰}ò 
	"Ü�L‰LØ1°"°°^ÀHÀ:È\ÐZ`ÐYaÐapÐqrÐpsÐtôô ”T—Y‘Y Ó"ˆAÜ�L‰LØ˜qŸv™v›x˜jÐ(9¼$¿/¹/×:SÑ:SÐ9TÐUôð �v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%Ü“/Ð!ûð
	"ús   ‚?A ÁDÁB;DÄDc                 óâ  — 	 d }|�t        |j                  ||¬«      }|�|€|€t        d«      ‚t        |||||¬«      }|€|€t        ||||¬«      }| j                  j	                  || j
                  ¬«      }g }	|j                  D ]  }
|	j                  t        |
«      «       Œ |	S # t        j                  $ r3}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  s9  € ð'	"àˆGØˆ~Ü/Ø—v‘vØØ!ô�ð
 ÐØ�> hÐ&6Ü$ð Hóð ô 0ØØ!Ø%ØØ!ô�ð ˆz˜d˜lÜ/Ø!Ø%ØØ!ô	�ð 04×/@Ñ/@×/OÑ/OØ ×!>Ñ!>ð 0Pó 0ˆHð )+ˆGØ&×2Ñ2ò B�
Ø—‘Ô4°ZÓ@ÕAðBàˆNøÜ�}‰}ò 	"Ü�L‰LØ4°R°D¸À¸vÀYÈvÈhÐVaÐbjÐakÐkzÐ{|Ðz}Ð~ôô  “/Ð!ûð		"ús   ‚B%B( Â(C.Â;.C)Ã)C.c                 óZ  — 	 |�|dk(  r3t        |¬«      }| j                  j                  |«      }|j                  S t        ||¬«      }| j                  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Ñ5F×5WÑ5WØó6�ð  —~‘~Ð%ä1Ø!Ø%ô�ð 6:×5FÑ5F×5WÑ5WØó6�ð  —~‘~Ð%øÜ�}‰}ò 	"Ü�L‰LÐEÀaÀSÐIÔJÜ“/Ð!ûð	"ús   ‚9A0 ¼3A0 Á0B*Â"B%Â%B*c                 óþ   — 	 t        |j                  ¬«      }| 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Ì  ss   € ð	"Ü.°"·&±&Ô9ˆGØ26×2CÑ2C×2UÑ2UØó3ˆHð ×9Ñ9Ð9øÜ�}‰}ò 	"Ü�L‰LÐ4°R°DÐ8LÈQÈCÐPÔQÜ“/Ð!ûð	"ús   ‚<? ¿A<Á%A7Á7A<z"SysDB.get_collection_with_segmentsÚcollection_idc           	      óÜ  — 	 t        |j                  ¬«      }| j                  j                  |«      }t	        t        |j                  «      |j                  D �cg c]  }t        |«      ‘Œ c}¬«      S c c}w # t        j                  $ r_}|j                  «       t        j                  j                  k(  r
t        «       ‚t        j                   d|› d|› �«       t#        «       ‚d }~ww xY w)NrË   )r�   r¦   rÌ   z  and its segments due to error: )r+   rq   rE   ÚGetCollectionWithSegmentsr9   r   r�   r¦   r   r[   rs   ru   rv   r�   r   r   rº   r   )rS   rÐ   rx   ry   r—   rz   s         rU   Úget_collection_with_segmentsz&GrpcSysDB.get_collection_with_segmentsØ  sÇ   € ð	"Ü6¸-×:KÑ:KÔLˆGà×!Ñ!×;Ñ;¸GÓDð ô )Ü0°×1DÑ1DÓEØEM×EVÑEVÖW¸'Ô,¨WÕ5ÒWôð ùâWøä�}‰}ò 	"Ø�v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%Ü�L‰LØ+¨M¨?Ð:ZÐ[\ÐZ]Ð^ôô  “/Ð!ûð	"ús+   ‚AA9 ÁA4
Á,A9 Á4A9 Á9C+ÂAC&Ã&C+c           	      ó¬  — 	 d }|t        «       k7  rt        t        |«      }d }|t        «       k7  rt        t        t        d f   |«      }d }|t        «       k7  rt        t        t
        d f   |«      }d }	|t        «       k7  rt        t        t        d f   |«      }	t        |j                  |||rt        |«      nd |	rt        |	«      nd ¬«      }
|€|
j                  d«       d|
_        | j                  j                  |
| j                  ¬«      }y # t         j"                  $ r±}t        t         j$                  |«      }t'        j(                  d|› d|› d|› �«       |j+                  «       t         j,                  j.                  k(  r
t1        «       ‚|j+                  «       t         j,                  j2                  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Ò)Ü"&¤u¬S°$¨YÑ'7¸Ó"C�à!ˆNØœ;›=Ò(Ü!%¤e¬N¸DÐ,@Ñ&AÀ8Ó!L�à"&ÐØ¤£Ò-Ü&*ÜÔ7¸Ð=Ñ>Àó'Ð#ô .Ø—6‘6ØØ)á!ô 2°.ÔAàñ 'ô (SØ'ô(ð ôˆGð ÐØ×"Ñ" :Ô.Ø)-�Ô&à×(Ñ(×9Ñ9Ø ×!>Ñ!>ð :ó ‰Høô �}‰}ò 		"Ü”T—Y‘Y Ó"ˆAÜ�L‰LØ1°"°°W¸T¸FÀ/ÐRSÐQTÐUôð �v‰v‹xœ4Ÿ?™?×4Ñ4Ò4Ü#“oÐ%Ø�v‰v‹xœ4Ÿ?™?×9Ñ9Ò9Ü+Ó-Ð-Ü“/Ð!ûð		"ús   ‚DD ÄGÄ"B,GÇGc                 óN   — | j                   j                  t        «       d¬«       y )NT)Úwait_for_ready)rE   rf   rB   )rS   s    rU   Úreset_and_wait_for_readyz"GrpcSysDB.reset_and_wait_for_ready-  s   € Ø×Ñ×$Ñ$¤U£W¸TÐ$Õ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   s6  ø… ñ5ð ÓØ�l‰lÓØÓØÓØ!Ó!ð(˜võ (ð ôó ðð ôó ðð ô%ó ð%ð à1?ñ"Øð"Ø!ð"Ø+.ð"à	ò"ó ð"ð  Ø4Bñ " ð "¨cð "Àxò "ó ð"ð& Ø7Eñ   Cð  °ð  È$ò  ó ð ð ð  $Ø $Ø$ñ	"à˜‰}ð"ð ˜‘ð"ð ð	"ð
 
�(Ñ	ò"ó ð"ð6 ð
" #ð 
"¨$ò 
"ó ð
"ð ð"˜sð " vò "ó ð"ð ð" gð "°$ò "ó ð"ð ð"¨ð "°4ð "¸Dò "ó ð"ð" ð "Ø"Ø(,ñ"àð"ð �T‰Nð"ð �s‰mð	"ð
 ˜Ñ%ð"ð 
�'Ñ	ò"ó ð"ð8 ñ
 @K»}ñ	"àð"ð ð"ð # 8¨NÑ#;Ñ<ð	"ð
 
ò"ó ð"ð@ ð (,Ø#'Ø#Ø$Ø(ñ&"àð&"ð ð&"ð ˜Ñ ð	&"ð
 5ð&"ð ˜7Ñ#ð&"ð ˜8Ñ$ð&"ð ˜C‘=ð&"ð ð&"ð ð&"ð ð&"ð 
ˆz˜4ÐÑ	 ò&"ó ð&"ðP ð %Ø(ñ	"àð"ð ð"ð ð	"ð
 
ò"ó ð"ð6 ð "Ø"Ø$Ø(Ø#Ø $ñ0"à�T‰Nð0"ð �s‰mð0"ð ð	0"ð
 ð0"ð ˜‰}ð0"ð ˜‘ð0"ð 
�*Ñ	ò0"ó ð0"ðd ð %Ø"&ñ"àð"ð ˜3‘-ð"ð 
ò	"ó ð"ð2 ð	" dð 	"¨sò 	"ó ð	"ñ Ø,Ð.F×.PÑ.Póð ð"Ø!ð"à	ò"ó óð"ð( ñ '2£mÙ5@³]Ù?J»}ñ ‹Mñ:"àð:"ð ˜sÑ#ð:"ð $ H¨S¡MÑ2ð	:"ð
 # 8¨NÑ#;Ñ<ð:"ð (ØÐ2Ñ3ñ
ð:"ð 
ò:"ó ð:"÷x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   © rV   rU   ú<module>rø      sŽ   ðß ?× ?Ý Ý ÷õ õ &ß LÓ LÝ $ß OÑ O÷õ ÷÷ ÷ ÷ ÷ õ õ. :Ý AÝ A÷÷÷ ÷ õ ,Û ôjC�õ jCrV   