§
    &`ƒiñ	  ã                   ój   — d dl 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mZ  G d„ de¦  «        ZdS )é    )ÚListÚTuple)Úformat_readonly_node_type)ÚNodeProvider)ÚNODE_KIND_HEADÚSTATUS_UP_TO_DATEÚTAG_RAY_NODE_KINDÚTAG_RAY_NODE_NAMEÚTAG_RAY_NODE_STATUSÚTAG_RAY_USER_NODE_TYPEc                   ó’   — e Zd ZdZd„ Zd„ Zdeeeef                  fd„Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚReadOnlyNodeProviderzÂA node provider that merely reports the current cluster state.

    This is used for laptop mode / manual cluster setup modes, in order to
    provide status reporting in the same way for users.c                 ó@   — t          j        | ||¦  «         i | _        d S ©N)r   Ú__init__Únodes)ÚselfÚprovider_configÚcluster_names      ú‚/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/autoscaler/_private/readonly/node_provider.pyr   zReadOnlyNodeProvider.__init__   s"   € ÝÔ˜d O°\ÑBÔBÐBØˆŒ
ˆ
ˆ
ó    c                 ó   — dS )NT© )r   s    r   Úis_readonlyz ReadOnlyNodeProvider.is_readonly   s   € Øˆtr   r   c                 óR   — i }|D ]\  }}t          |¦  «        |dœ||<   Œ|| _        dS )z‚Update the set of nodes in the cluster.

        Args:
            nodes: List of (node_id, node_manager_address) tuples.
        )Ú	node_typeÚipN)r   r   )r   r   Ú	new_nodesÚnode_idÚnode_manager_addresss        r   Ú
_set_nodeszReadOnlyNodeProvider._set_nodes   sO   € ð ˆ	Ø-2ð 	ð 	Ñ)ˆGÐ)õ
 7°wÑ?Ô?Ø*ð"ð "ˆIgÑÐð
 ˆŒ
ˆ
ˆ
r   c                 óN   — t          | j                             ¦   «         ¦  «        S r   )Úlistr   Úkeys)r   Útag_filterss     r   Únon_terminated_nodesz)ReadOnlyNodeProvider.non_terminated_nodes-   s   € ÝD”J—O’OÑ%Ô%Ñ&Ô&Ð&r   c                 ó   — || j         v S r   ©r   ©r   r   s     r   Ú
is_runningzReadOnlyNodeProvider.is_running0   s   € Ø˜$œ*Ð$Ð$r   c                 ó   — || j         vS r   r(   r)   s     r   Úis_terminatedz"ReadOnlyNodeProvider.is_terminated3   s   € Ø˜dœjÐ(Ð(r   c                 óx   — t           t          t          | j        |         d         t          |t
          t          i}|S )Nr   )r	   r   r   r   r
   r   r   ©r   r   Útagss      r   Ú	node_tagszReadOnlyNodeProvider.node_tags6   s1   € å~Ý" D¤J¨wÔ$7¸Ô$DÝ˜wÝÕ!2ð	
ˆð ˆr   c                 ó   — |S r   r   r)   s     r   Úexternal_ipz ReadOnlyNodeProvider.external_ip?   ó   € Øˆr   c                 ó   — |S r   r   r)   s     r   Úinternal_ipz ReadOnlyNodeProvider.internal_ipB   r3   r   c                 ó    — t          d¦  «        ‚©Nz(Readonly node provider cannot be updated©ÚAssertionErrorr.   s      r   Úset_node_tagsz"ReadOnlyNodeProvider.set_node_tagsE   ó   € ÝÐGÑHÔHÐHr   c                 ó    — t          d¦  «        ‚r7   r8   )r   Únode_configr/   Úcounts       r   Úcreate_nodez ReadOnlyNodeProvider.create_nodeH   r;   r   c                 ó    — t          d¦  «        ‚r7   r8   r)   s     r   Úterminate_nodez#ReadOnlyNodeProvider.terminate_nodeK   r;   r   c                 ó   — | S r   r   )Úcluster_configs    r   Úbootstrap_configz%ReadOnlyNodeProvider.bootstrap_configN   s   € àÐr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ústrr!   r&   r*   r,   r0   r2   r5   r:   r?   rA   ÚstaticmethodrD   r   r   r   r   r      s  € € € € € ð;ð ;ð
ð ð ðð ð ð  U¨3°¨8¤_Ô 5ð ð ð ð ð"'ð 'ð 'ð%ð %ð %ð)ð )ð )ðð ð ðð ð ðð ð ðIð Ið IðIð Ið IðIð Ið Ið ðð ñ „\ðð ð r   r   N)Útypingr   r   Úray.autoscaler._private.utilr   Úray.autoscaler.node_providerr   Úray.autoscaler.tagsr   r   r	   r
   r   r   r   r   r   r   ú<module>rO      sÏ   ðØ Ð Ð Ð Ð Ð Ð Ð à BÐ BÐ BÐ BÐ BÐ BØ 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðAð Að Að Að A˜<ñ Aô Að Að Að Ar   