§
    ˜Štj�
  ã                   óÒ   — 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dS )é    )Úabstractmethod)Ú	dataclass)ÚAnyÚCallableÚList)ÚEnforceOverridesÚ	overrides)Ú	ComponentÚSystem)ÚSegmentc                   ót   — 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dS )	Ú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                 ó   — dS )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      úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/segment/distributed/__init__.pyÚget_segment_endpointsz&SegmentDirectory.get_segment_endpoints   s   € € € ó    ÚcallbackNc                 ó   — dS )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   
   s”   € € € € € ðWð Wð ð¨Wð ¸ð ÀÀcÄð ð ð ñ „^ðð
 ðØ  ' ¨D Ô1ðà	ðð ð ñ „^ðð ð r   r   c                   ó.   — e Zd ZU eed<   eed<   eed<   dS )ÚMemberÚidÚipÚnodeN)r   r   r   r!   Ú__annotations__r   r   r   r#   r#      s+   € € € € € € à€G€G�GØ€G€G�GØ
€I€I�I€I€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                 óX   •— g | _         t          ¦   «                              |¦  «         d S )N)r*   ÚsuperÚ__init__)r   r+   Ú	__class__s     €r   r.   zMemberlistProvider.__init__-   s(   ø€ ØˆŒÝ‰Œ×Ò˜Ñ Ô Ð Ð Ð r   r   c                 ó   — dS )zReturns the latest memberlistNr   ©r   s    r   Úget_memberlistz!MemberlistProvider.get_memberlist1   ó	   € ð 	ˆr   Ú
memberlistNc                 ó   — dS )z1Sets the memberlist that this provider will watchNr   )r   r4   s     r   Úset_memberlist_namez&MemberlistProvider.set_memberlist_name6   r3   r   c                 ó   — g | _         dS )zStops watching the memberlistN)r*   r1   s    r   ÚstopzMemberlistProvider.stop;   s   € ð ˆŒˆˆr   r   c                 ó:   — | j                              |¦  «         dS )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                 óP   — || j         v r| j                              |¦  «         dS dS )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   s1   € ð
 �t”~Ð%Ð%ØŒN×!Ò! (Ñ+Ô+Ð+Ø�4Øˆur   )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)   &   sD  ø€ € € € € € ð"ð "ð �H˜j˜\¨3Ð.Ô/Ô0Ð0Ð0Ñ0ð!˜vð !ð !ð !ð !ð !ð !ð ð 
ð ð ð ñ „^ðð ð¨cð °dð ð ð ñ „^ðð ðð ð ñ „Yðð(Ø  * ¨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      s)  ðØ Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð �yñ ô ð ð$ ðð ð ð ð ñ ô ñ „ðð �&Œ\€
ð*ð *ð *ð *ð *˜Ð$4ñ *ô *ð *ð *ð *r   