§
    &`ƒi­  ã                   ó&  — d dl Z d dlZd dlmZmZ d dlmZ d dlmZ dZ	dZ
deeef         deeef         fd	„Zdeeef         deeef         fd
„Zdeeef         deeef         fd„Zdedefd„Zdedefd„Zdeeef         deeef         fd„ZdS )é    N)ÚAnyÚDict)Úget_ray_temp_dir)Ú
cli_loggerz6The field {} is not supported for on-premise clusters.zlocal.cluster.nodeÚconfigÚreturnc                 óB  — t          j        | ¦  «        } dD ]E}|                      |¦  «        r.t                               |¦  «        }t          j        |¦  «         ŒFt          i i dœi| d<   t          | d<   d| d         v rt          | ¦  «        } nt          | ¦  «        } | S )z\
    Prepare local cluster config for ingestion by cluster launcher and
    autoscaler.
    )Ú	head_nodeÚworker_nodesÚavailable_node_types)Únode_configÚ	resourcesr   Úhead_node_typeÚcoordinator_addressÚprovider)
ÚcopyÚdeepcopyÚgetÚunsupported_field_messageÚformatr   ÚabortÚLOCAL_CLUSTER_NODE_TYPEÚprepare_coordinatorÚprepare_manual)r   ÚfieldÚerr_msgs      úx/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/autoscaler/_private/local/config.pyÚprepare_localr      sµ   € õ
 Œ]˜6Ñ"Ô"€FØDð &ð &ˆØ:Š:eÑÔð 	&Ý/×6Ò6°uÑ=Ô=ˆGÝÔ˜WÑ%Ô%Ð%øõ
 	 °À"Ð!EÐ!Eð&€FÐ!Ñ"õ  7€FÐÑØ  zÔ 2Ð2Ð2Ý$ VÑ,Ô,ˆˆå Ñ'Ô'ˆØ€Mó    c                 óÌ   — t          j        | ¦  «        } d| vrt          j        d¦  «         | d         t                   }|                      dd¦  «        |d<   | d         |d<   | S )NÚmax_workersz[The field `max_workers` is required when using an automatically managed on-premise cluster.r   Úmin_workersr   )r   r   r   r   r   Úpop)r   Ú	node_types     r   r   r   %   sy   € ÝŒ]˜6Ñ"Ô"€Fð ˜FÐ"Ð"ÝÔð8ñ	
ô 	
ð 	
ð Ð-Ô.Õ/FÔG€Ið  &Ÿzšz¨-¸Ñ;Ô;€IˆmÑØ% mÔ4€IˆmÑØ€Mr   c           	      óP  — t          j        | ¦  «        } d| d         vs
d| d         vrt          j        d¦  «         t	          | d         d         ¦  «        }| d         t
                   }|                      d|¦  «         |                      d|¦  «        }| d         }||k    r$t          j        d|› d	|› d
|› d¦  «         ||d<   n||d<   ||k    r)t          j        d|› d	|› d|› d¦  «         ||d<   || d<   n||d<   ||k     rt          j        d|› d|› d|› d¦  «         | S )ah  Validates and sets defaults for configs of manually managed on-prem
    clusters.

    - Checks for presence of required `worker_ips` and `head_ips` fields.
    - Defaults min and max workers to the number of `worker_ips`.
    - Caps min and max workers at the number of `worker_ips`.
    - Writes min and max worker info into the single worker node type.
    Ú
worker_ipsr   Úhead_ipzbPlease supply a `head_ip` and list of `worker_ips`. Alternatively, supply a `coordinator_address`.r   r!   r"   z%The value of `min_workers` supplied (z6) is greater than the number of available worker ips (z). Setting `min_workers=z`.z%The value of `max_workers` supplied (z). Setting `max_workers=z3) is less than the number of available worker ips (z). At most z. Ray worker nodes will connect to the cluster.)	r   r   r   r   Úlenr   Ú
setdefaultr#   Úwarning)r   Únum_ipsr$   r"   r!   s        r   r   r   6   sç  € õ Œ]˜6Ñ"Ô"€FØ˜F :Ô.Ð.Ð.Ø˜ 
Ô+Ð+Ð+åÔð=ñ	
ô 	
ð 	
õ &˜Ô$ \Ô2Ñ3Ô3€GØÐ-Ô.Õ/FÔG€Ià
×Òm WÑ-Ô-Ð-ð —*’*˜]¨GÑ4Ô4€KØ˜Ô'€KàWÒÐÝÔð1°Kð 1ð 1Ø9@ð1ð 1à%,ð1ð 1ð 1ñ	
ô 	
ð 	
ð
 $+ˆ	-Ñ Ð à#.ˆ	-Ñ àWÒÐÝÔð1°Kð 1ð 1Ø9@ð1ð 1à%,ð1ð 1ð 1ñ	
ô 	
ð 	
ð
 $+ˆ	-Ñ Ø 'ˆˆ}ÑÐà#.ˆ	-Ñ àWÒÐÝÔðT°Kð Tð TØ9@ðTð Tà#ðTð Tð Tñ	
ô 	
ð 	
ð €Mr   Úcluster_namec                 ó€   — t           j                             t          ¦   «         d                     | ¦  «        ¦  «        S )Nzcluster-{}.lock©ÚosÚpathÚjoinr   r   ©r,   s    r   Úget_lock_pathr3   p   s.   € ÝŒ7<Š<Õ(Ñ*Ô*Ð,=×,DÒ,DÀ\Ñ,RÔ,RÑSÔSÐSr   c                 ó€   — t           j                             t          ¦   «         d                     | ¦  «        ¦  «        S )Nzcluster-{}.stater.   r2   s    r   Úget_state_pathr5   t   s.   € ÝŒ7<Š<Õ(Ñ*Ô*Ð,>×,EÒ,EÀlÑ,SÔ,SÑTÔTÐTr   c                 ó   — | S )N© )r   s    r   Úbootstrap_localr8   x   s   € Ø€Mr   )r   r/   Útypingr   r   Úray._common.utilsr   Ú"ray.autoscaler._private.cli_loggerr   r   r   Ústrr   r   r   r3   r5   r8   r7   r   r   ú<module>r=      s‚  ðØ €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9àTÐ à.Ð ð˜$˜s C˜xœ.ð ¨T°#°s°(¬^ð ð ð ð ð0  S¨# X¤ð °4¸¸S¸´>ð ð ð ð ð"7˜4  S œ>ð 7¨d°3¸°8¬nð 7ð 7ð 7ð 7ðtT ð T¨ð Tð Tð Tð TðU ð U¨ð Uð Uð Uð Uð˜D  c œNð ¨t°C¸°H¬~ð ð ð ð ð ð r   