Ë
    lQêj�
  ã                   ó²   — d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	mZ d dl
mZmZ d dlmZ  G d„ de«      Ze G d	„ d
«      «       Zee   Z G d„ dee	«      Zy)é    )Úabstractmethod)Ú	dataclass)ÚAnyÚCallableÚList)ÚEnforceOverridesÚ	overrides)Ú	ComponentÚSystem)ÚSegmentc                   óZ   — e Zd ZdZedededee   fd„«       Z	ede
egdf   ddfd„«       Zy)	ÚSegmentDirectoryz³A segment directory is a data interface that manages the location of segments. Concretely, this
    means that for distributed chroma, it provides the grpc endpoint for a segment.ÚsegmentÚnÚreturnc                  ó   — y)zÁReturn the segment residences for a given segment ID. Will return at most n residences.
        Should only return less than n residences if there are less than n residences available.
        N© )Úselfr   r   s      új/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/segment/distributed/__init__.pyÚget_segment_endpointsz&SegmentDirectory.get_segment_endpoints   s   � ó    ÚcallbackNc                  ó   — y)zARegister a callback that will be called when a segment is updatedNr   ©r   r   s     r   Ú!register_updated_segment_callbackz2SegmentDirectory.register_updated_segment_callback   s   € ð
 	r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úintr   Ústrr   r   r   r   r   r   r   r   
   sd   „ ñWð ð¨Wð ¸ð ÀÀcÁò ó ðð
 ðØ  ' ¨D Ñ1ðà	òó ñr   r   c                   ó,   — e Zd ZU eed<   eed<   eed<   y)ÚMemberÚidÚipÚnodeN)r   r   r   r!   Ú__annotations__r   r   r   r#   r#      s   … àƒGØƒGØ
„Ir   r#   c                   óÀ   ‡ — e Zd ZU dZeeegef      ed<   de	fˆ fd„Z
edefd„«       Zededdfd	„«       Zedd
„«       Zdeegef   ddfd„Zdeegef   defd„Zˆ xZS )ÚMemberlistProviderzÐReturns the latest memberlist and provdes a callback for when it changes. This
    callback may be called from a different thread than the one that called. Callers should ensure
    that they are thread-safe.Ú	callbacksÚsystemc                 ó2   •— g | _         t        ‰| �	  |«       y )N)r*   ÚsuperÚ__init__)r   r+   Ú	__class__s     €r   r.   zMemberlistProvider.__init__-   s   ø€ ØˆŒÜ‰Ñ˜Õ r   r   c                  ó   — y)zReturns the latest memberlistNr   ©r   s    r   Úget_memberlistz!MemberlistProvider.get_memberlist1   ó   € ð 	r   Ú
memberlistNc                  ó   — y)z1Sets the memberlist that this provider will watchNr   )r   r4   s     r   Úset_memberlist_namez&MemberlistProvider.set_memberlist_name6   r3   r   c                 ó   — g | _         y)zStops watching the memberlistN)r*   r1   s    r   ÚstopzMemberlistProvider.stop;   s   € ð ˆ�r   r   c                 ó:   — | j                   j                  |«       y)zÑRegisters a callback that will be called when the memberlist changes. May be called many times
        with the same memberlist, so callers should be idempotent. May be called from a different thread.
        N)r*   Úappendr   s     r   Ú$register_updated_memberlist_callbackz7MemberlistProvider.register_updated_memberlist_callback@   s   € ð 	�‰×Ñ˜hÕ'r   c                 óX   — || j                   v r| j                   j                  |«       yy)zŸUnregisters a callback that was previously registered. Returns True if the callback was
        successfully unregistered, False if it was not ever registered.TF)r*   Úremover   s     r   Ú&unregister_updated_memberlist_callbackz9MemberlistProvider.unregister_updated_memberlist_callbackH   s(   € ð
 �t—~‘~Ñ%Ø�N‰N×!Ñ! (Ô+ØØr   )r   N)r   r   r   r   r   r   Ú
Memberlistr   r'   r   r.   r   r2   r!   r6   r	   r8   r;   Úboolr>   Ú__classcell__)r/   s   @r   r)   r)   &   sÀ   ø… ñ"ð �H˜j˜\¨3Ð.Ñ/Ñ0Ó0ð!˜võ !ð ð 
ò ó ðð ð¨cð °dò ó ðð òó ðð(Ø  * ¨sÐ!2Ñ3ð(à	ó(ðØ  * ¨sÐ!2Ñ3ðà	÷r   r)   N)Úabcr   Údataclassesr   Útypingr   r   r   r	   r   Úchromadb.configr
   r   Úchromadb.typesr   r   r#   r?   r)   r   r   r   ú<module>rG      sY   ðÝ Ý !ß &Ñ &ç 1ß -Ý "ô�yô ð$ ÷ð ó ðð �&‰\€
ô*˜Ð$4õ *r   