
    %`i!                        d dl Z d dlZd dlmZmZmZmZ d dlZd dlm	c m
Z
  ej        d          Zdej         dej         dZdhZd                    d	 eD                       Z ej        d
e dej         dej         dej         d	          Zdedeeef         fdZdedeeef         fdZdedeeef         fdZdeeef         fdZdedee         fdZdefdZdeeeef                  dee         fdZdedee         fdZdeeef         fd Zd!eeeeef                           dee         fd"ZdS )#    N)AnyDictListOptionalz/([a-zA-Z0-9]([a-zA-Z0-9_.-]{0,61}[a-zA-Z0-9])?)z^(z?(\.z?)*)$in|c                 6    g | ]}t          j        |          S  )reescape).0operators     l/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/_private/label_utils.py
<listcomp>r       s"    QQQXRYx00QQQ    z^!?(?:z)?\(z(?:, ?z	)*\)$|^!?$labels_jsonreturnc                 `   t          j        |           }t          |t                    st	          d          |                                D ]Q\  }}t          |t                    st	          d          t          |t                    st	          d| d          Rt          |           |S )Nz<The format after deserialization is not a key-value pair mapThe key is not string type.zThe value of the "z" is not string type)jsonloads
isinstancedict
ValueErroritemsstrvalidate_node_labels)r   labelskeyvalues       r   parse_node_labels_jsonr"   +   s    Z$$Ffd## YWXXXllnn M M
U#s## 	<:;;;%%% 	MK#KKKLLL	M    Mr   
labels_strc                    i }t          |           dk    r4|                     d          r|                     d          r
| dd         } | dk    r|S |                     d          }|D ]r}|                    d          }t          |          dk    rt	          d          |d	                                         }|d                                         }|||<   st          |           |S )
N   " ,=   z%Label string is not a key-value pair.r   )len
startswithendswithsplitr   stripvalidate_node_label_syntax)r#   r   label_pairspair	key_valuer    r!   s          r   parse_node_labels_stringr5   ;   s    F :z44S99j>Q>QRU>V>V"%
R ""3''K  JJsOO	y>>QDEEEl  ""!""$$s v&&&Mr   pathc                    | dk    ri S t          | d          5 }t          j        |          }t          |t                    st          d          |                                D ]Q\  }}t          |t                    st          d          t          |t                    st          d| d          R	 d d d            n# 1 swxY w Y   t          |           |S )Nr(   rz=The format after deserialization is not a key-value pair map.r   zThe value of "z" is not string type.)	openyaml	safe_loadr   r   r   r   r   r1   )r6   filer   r    r!   s        r    parse_node_labels_from_yaml_filer=   W   sE   rzz		dC ND%%&$'' 	O   !,,.. 	N 	NJCc3'' @ !>???eS)) N !L#!L!L!LMMMN	NN N N N N N N N N N N N N N N v&&&Ms   BCC	C	r   c                     | d S |                                  D ]A}|                    t          j                  r t	          d| dt          j         d          Bd S )NzCustom label keys `z ` cannot start with the prefix `z+`. This is reserved for Ray defined labels.)keysr-   ray_constantsRAY_DEFAULT_LABEL_KEYS_PREFIXr   )r   r    s     r   r   r   o   s    ~{{}}  >>-EFF 	<c < <!?< < <  	 r   r    c                 F   d| v rZ|                      dd          \  }}t          |          dk    st          j        t          |          st          d| d          S n| }t          |          dk    st          j        t          |          st          d| d          S d S )	N/r%      zInvalid label key prefix `zh`. Prefix must be a series of DNS labels separated by dots (.), not longer than 253 characters in total.?   zInvalid label key name `z`. Name must be 63 chars or less beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_),dots (.), and alphanumerics between.)rsplitr,   r   	fullmatchLABEL_PREFIX_REGEXr   LABEL_REGEX)r    prefixnames      r   validate_label_keyrL   {   s    
czzzz#q))v;;BL1CV$L$LSV S S S    
4yy2~~R\+t<<~4t 4 4 4
 
 	

 4r   r!   c                     | dk    rd S t          |           dk    st          j        t          |           st	          d|  d          d S )Nr(   rE   zInvalid label key value `z`. Value must be 63 chars or less beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_),dots (.), and alphanumerics between.)r,   r   rG   rI   r   )r!   s    r   validate_label_valuerN      s^    {{
5zzBbl;>>4 4 4 4
 
 	
 r   label_selectorc                     | d S |                                  D ]1\  }}t          |          }|r|c S |t          |          }|r|c S 2d S N)r   rL   validate_label_selector_value)rO   r    r!   possible_error_messages       r   validate_label_selectorrT      s|    t$**,, . .
U!3C!8!8! 	*))))%B5%I%I"% .----4r   selectorc                     | dk    rd S t          j        t          |           st          d|  dt           d          S d S )Nr(   zInvalid label selector value `zp`. The label selector value should contain optional operators and a label value. Supported operators are: ! and z. Value must be 63 chars or less beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_),dots (.), and alphanumerics between.)r   rG   LABEL_SELECTOR_REGEXr   LABEL_OPERATORS)rU   s    r   rR   rR      se    2~~t<,h77 
4X 4 4  hw 4 4 4
 
 	
 4r   c                     | d S |                                  D ]6\  }}t          |          }|rt          |          |t          |           7d S rQ   )r   rL   r   rN   )r   r    r!   rS   s       r   r1   r1      sk    ~llnn ( (
U!3C!8!8! 	53444 '''( (r   fallback_strategyc                 &   | d S dh}| D ]}t          |t                    s dS |s dS |D ] }||vrd| dt          |           dc c S !|                    d          }|r-t          |t                    s dS t	          |          }|r|c S d S )NrO   z7Each element in fallback_strategy must be a dictionary.z.Empty dictionary found in `fallback_strategy`.zUnsupported option found: 'z'. Only z is currently supported.z3The value of "label_selector" must be a dictionary.)r   r   listgetrT   )rZ   supported_optionsstrategyoptionrO   error_messages         r   validate_fallback_strategyrb      s#     t **% % %(D)) 	MLLL 	DCCC  	 	F...N& N N !233N N N     / "&677 	%nd33 MLLL3NCCM %$$$$4r   )r   r   typingr   r   r   r   r:   ray._private.ray_constants_privater@   compilerI   patternrH   rX   joinOPERATOR_PATTERNrW   r   r"   r5   r=   r   rL   rN   rT   rR   r1   rb   r
   r   r   <module>rj      s    				             2 2 2 2 2 2 2 2 2 bjKLL O;.NNK4GNNN  &88QQQQQRR  "rzsssK$7ss{?Rss]h]psss  
 S#X      c3h    83 4S>    0	c3h 	 	 	 	C HSM    &
 
 
 
 
HT#s(^,D RU     C HSM     (tCH~ ( ( ( ("T#s(^ 45"c]" " " " " "r   