
    wi3                        d dl mZ d dlZd dlZd dlZd dlZd dlZ G d de          Z	  ej
        dd                      Zd  ee          _        ej        d             Zej        d	             Zd
 Zd Zd Zd Zd Zd Zed             Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z# ej
        dd          Z$ee$_%        ee$_&        ee$_'         ej
        dd          Z(ee(_%        ee(_)        ee(_&        ee(_'         ej
        d d!          Z*ee*_%        ee*_&        ee*_'         ej
        d"d#          Z+ee+_%        ee+_)        ee+_&        ee+_'         ej
        d$d          Z,ee,_%        ee,_&        ee,_'         ej
        d%d&          Z-d'e-j.        _/         ee          e-_%        ee-_&        ee-_'         ej
        d(d)          Z0d'e0j.        _/         ee          e0_%        ee0_&        ee0_'         ej
        d*d+          Z1d'e1j.        _/         ee          e1_%        ee1_)        e e1_&        e!e1_'         ej
        d,d-          Z2e"e2_%        ee2_&        ee2_'         ej
        d.d/          Z3e#e3_%        ee3_&        ee3_'         G d0 d1 ej
        d1d2                    Z4 G d3 d4 ej
        d4d5                    Z5 G d6 d7 ej
        d7d8                    Z6 G d9 d: ej
        d:d;                    Z7 G d< d= ej
        d=d>                    Z8 G d? d@ ej
        d@d>                    Z9dA Z:dOdBZ; e;e<          Z= e;e>          Z? e;e@          ZA e;eBdCD          ZC e;eBdED          ZDdF ZEdG ZFdH ZGdI ZHdJ ZIdK ZJdL ZKe	fddMdNZLdS )P    )annotationsNc                  &     e Zd Zd fd	Zd Z xZS )ValidationErrorNc                f    t                                          |           || _        || _        d S N)super__init__	error_msgctx)selfr
   r   	__class__s      T/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/cfgv.pyr	   zValidationError.__init__   s-    ###"    c                n    d}| }|j         |d|j          dz  }|j        }|j         |d|j         z  }|S )N
z==> z=====> )r   r
   )r   outerrs      r   __str__zValidationError.__str__   sY    g!%#'%%%%C-C g! 	((((
r   r   )__name__
__module____qualname__r	   r   __classcell__r   s   @r   r   r   
   sL             
      r   r   Missing c                    dS )NMISSINGr   r   s    r   <lambda>r      s    i r   c              #     K   	 d V  d S # t           $ rA}t          j                    \  }}}t          ||                               |          d d }~ww xY w)N)r   r   sysexc_infowith_traceback)msge_tbs       r   validate_contextr)      sp      G G G G<>>1baS)))88<<$FGs   
 
A<AAc              #     K   	 d V  d S # t           $ r;}t          j                    \  }}} | |                              |          d d }~ww xY wr   r!   )tpr&   r'   r(   s       r   
reraise_asr,   '   sf      1 1 1 1<>>1bbee""2&&D01s   
 
A6A

Ac                    d S r   r   r   dcts     r   	_dct_noopr0   0       Dr   c                    | j         |vrd S t          d| j                    5  |                     || j                             d d d            d S # 1 swxY w Y   d S )NAt key: )keyr)   check_fnr.   s     r   _check_optionalr6   4   s    xs	/TX//	0	0 % %c$(m$$$% % % % % % % % % % % % % % % % % %s   !AAAc                F    |                     | j        | j                   d S r   )
setdefaultr4   defaultr.   s     r   _apply_default_optionalr:   ;   s     NN48T\*****r   c                l    |                     | j        t                    | j        k    r
|| j        = d S d S r   )getr4   r   r9   r.   s     r   _remove_default_optionalr=   ?   s4    
wwtx!!T\11MMM 21r   c                F    | j         |vrt          d| j                    d S )NzMissing required key: )r4   r   r.   s     r   _require_keyr?   D   s0    xsAtxAABBB r   c                F    t          | |           t          | |           d S r   )r?   r6   r.   s     r   _check_requiredrA   I   s(    sD#r   c                      fd}|S )Nc                2    t          | j                   d S r   )validateschema)valr   s    r   r5   z#_check_fn_recurse.<locals>.check_fnP   s    dk"""""r   r   )r   r5   s   ` r   _check_fn_recurserG   N   s!    # # # # #Or   c                V    t          || j                 | j                  || j        <   d S r   )apply_defaultsr4   rE   r.   s     r   _apply_default_required_recurserJ   U   s#    "3tx=$+>>CMMMr   c                V    t          || j                 | j                  || j        <   d S r   )remove_defaultsr4   rE   r.   s     r    _remove_default_required_recurserM   Y   s#    #CM4;??CMMMr   c                X    | j         |vrt          | |           t          | |           d S r   )r4   r:   rJ   r.   s     r   _apply_default_optional_recurserO   ]   s5    xsc***#D#.....r   c                \    | j         |v r"t          | |           t          | |           d S d S r   )r4   rM   r=   r.   s     r    _remove_default_optional_recurserQ   c   s:    x3(s333 s+++++ r   c                      fd}|S )Nc                   |                     | j        t                    | j        k    r | |           d S | j        |v r| j        r|| j        |v rut          | j        d          r| j                                        }n
d| j        }t          d| j         d| j         d| d| j         d|| j                 
          d S d S d S )Ndescribe_oppositezis not 	Expected z to be absent when  z, found z: )	r<   condition_keyr   condition_valueensure_absentr4   hasattrrT   r   )r   r/   explanationinners      r   _check_conditionalz2_get_check_conditional.<locals>._check_conditionalj   s   774%w//43GGGE$"c))" *'+x3t+-@AA A"2DDFF@(<@@!FDH F F9K F FF F(,F F47MF F   *)))'6r   r   )r\   r]   s   ` r   _get_check_conditionalr^   i   s$         r   c                |    |                     | j        t                    | j        k    rt	          | |           d S d S r   )r<   rW   r   rX   r:   r.   s     r   #_apply_default_conditional_optionalr`   |   s@    
wwt!7++t/CCCc***** DCr   c                |    |                     | j        t                    | j        k    rt	          | |           d S d S r   )r<   rW   r   rX   r=   r.   s     r   $_remove_default_conditional_optionalrb      s@    
wwt!7++t/CCC s+++++ DCr   c                |    |                     | j        t                    | j        k    rt	          | |           d S d S r   )r<   rW   r   rX   rJ   r.   s     r   "_apply_default_conditional_recurserd      s@    
wwt!7++t/CCC'c22222 DCr   c                |    |                     | j        t                    | j        k    rt	          | |           d S d S r   )r<   rW   r   rX   rM   r.   s     r   #_remove_default_conditional_recurserf      s@    
wwt!7++t/CCC(s33333 DCr   c                   t          t          |          t          | j                  z
            }|rXd                    d |D                       }d                    d | j        D                       }t	          d| d|           d S )N, c              3  4   K   | ]}t          |          V  d S r   str.0xs     r   	<genexpr>z,_no_additional_keys_check.<locals>.<genexpr>   s(      22qCFF222222r   c              3  4   K   | ]}t          |          V  d S r   rj   rl   s     r   ro   z,_no_additional_keys_check.<locals>.<genexpr>   s(      55a3q66555555r   zAdditional keys found: z .  Only these keys are allowed: )sortedsetkeysjoinr   )r   r/   extraextra_skeys_ss        r   _no_additional_keys_checkrx      s    3s88c$)nn,--E 
))22E222225549555555g 5 5,25 5
 
 	

 
r   c                    t          t          |          t          | j                  z
            }|r|                     || j        |           d S d S r   )rq   rr   rs   callback)r   r/   ru   s      r   _warn_additional_keys_checkr{      sR    3s88c$)nn,--E -eTY,,,,,- -r   Required)r4   r5   RequiredRecurse)r4   rE   Optional)r4   r5   r9   OptionalRecurse)r4   rE   r9   OptionalNoDefaultConditional)r4   r5   rW   rX   rY   )FConditionalOptional)r4   r5   r9   rW   rX   rY   ConditionalRecurse)r4   rE   rW   rX   rY   NoAdditionalKeys)rs   WarnAdditionalKeys)rs   rz   c                  4     e Zd ZdZ fdZd Zd Zd Z xZS )Mapr   c                L    t                                          | |||          S r   r   __new__)clsobject_nameid_keyitemsr   s       r   r   zMap.__new__   s    wwsK???r   c                   t          |t                    s,t          d| j         dt	          |          j                   | j        d| j         d}n6|                    | j        t                    }d| j         d| j         d|d}t          |          5  | j
        D ]}|                    |           	 d d d            d S # 1 swxY w Y   d S )NExpected a  map but got a At ()(=))
isinstancedictr   r   typer   r   r<   r   r)   r   check)r   vcontextkey_v_sitems        r   r   z	Map.check   sB   !T"" 	!&d. & &77#& &   ;0D,000GGeeDK11GID,IIt{IIWIIIGg&& 	 	
  

1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    CCCc                l    |                                 }| j        D ]}|                    |           |S r   )copyr   apply_defaultr   r   retr   s       r   rI   zMap.apply_defaults   s<    ffhhJ 	$ 	$Ds####
r   c                l    |                                 }| j        D ]}|                    |           |S r   )r   r   remove_defaultr   s       r   rL   zMap.remove_defaults   s<    ffhhJ 	% 	%D$$$$
r   	r   r   r   	__slots__r   r   rI   rL   r   r   s   @r   r   r      so        I@ @ @ @ @          r   r   )r   r   r   c                  $    e Zd ZdZd Zd Zd ZdS )KeyValueMapr   c                   t          |t                    s,t          d| j         dt	          |          j                   t          d| j         d          5  |                                D ]\  }}t          d|           5  |                     |           d d d            n# 1 swxY w Y   t          d|           5  t          || j
                   d d d            n# 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   z	For key: r3   )r   r   r   r   r   r   r)   r   check_key_fnrD   value_schema)r   r   krF   s       r   r   zKeyValueMap.check  s   !T"" 	!&d. & &77#& &   8D$488899 	5 	5'')) 5 53%o!oo66 ) )%%a((() ) ) ) ) ) ) ) ) ) ) ) ) ) )%nnn55 5 5S$"34445 5 5 5 5 5 5 5 5 5 5 5 5 5 55	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5sZ   ,DB(D(B,,D/B,0DC'D'C++D.C+/DDDc                D      fd|                                 D             S )Nc                B    i | ]\  }}|t          |j                  S r   )rI   r   rm   r   rF   r   s      r   
<dictcomp>z.KeyValueMap.apply_defaults.<locals>.<dictcomp>  s<     
 
 
3 ~c4#455
 
 
r   r   r   r   s   ` r   rI   zKeyValueMap.apply_defaults  6    
 
 
 
''))
 
 
 	
r   c                D      fd|                                 D             S )Nc                B    i | ]\  }}|t          |j                  S r   )rL   r   r   s      r   r   z/KeyValueMap.remove_defaults.<locals>.<dictcomp>!  s<     
 
 
3 sD$566
 
 
r   r   r   s   ` r   rL   zKeyValueMap.remove_defaults   r   r   N)r   r   r   r   r   rI   rL   r   r   r   r   r     sH         I5 5 5
 
 

 
 
 
 
r   r   )r   r   r   c                  6     e Zd ZdZd fd	Zd Zd Zd Z xZS )Arrayr   Tc                L    t                                          | ||          S )Nofallow_emptyr   )r   r   r   r   s      r   r   zArray.__new__*  s    wwsr{CCCr   c                     t          t                    |           | j        s|st          d| j        j         d          |D ]}t          || j                   d S )NzExpected at least 1 '')check_array	check_anyr   r   r   r   rD   )r   r   rF   s      r   r   zArray.check-  s    Iq!!! 	 	!>(;>>>    	# 	#CS$'""""	# 	#r   c                       fd|D             S )Nc                :    g | ]}t          |j                  S r   )rI   r   rm   rF   r   s     r   
<listcomp>z(Array.apply_defaults.<locals>.<listcomp>7  s%    :::sDG,,:::r   r   r   s   ` r   rI   zArray.apply_defaults6  s    ::::::::r   c                       fd|D             S )Nc                :    g | ]}t          |j                  S r   )rL   r   r   s     r   r   z)Array.remove_defaults.<locals>.<listcomp>:  s%    ;;;#TW--;;;r   r   r   s   ` r   rL   zArray.remove_defaults9  s    ;;;;;;;;r   )Tr   r   s   @r   r   r   '  su        ID D D D D D# # #; ; ;< < < < < < <r   r   r   c                      e Zd ZdZd Zd ZdS )Notr   c                    d| j         S )Nzis rF   r   s    r   rT   zNot.describe_opposite@  s    !TX!!!r   c                *    |t           uo
|| j        k    S r   )r   rF   r   others     r   __eq__z
Not.__eq__C  s    G#9(99r   N)r   r   r   r   rT   r   r   r   r   r   r   =  s7        I" " ": : : : :r   r   r   c                  .     e Zd ZdZ fdZd Zd Z xZS )NotInr   c                J    t                                          | |          S Nvaluesr   r   r   r   s     r   r   zNotIn.__new__J      wws6222r   c                    d| j         S )Nz
is any of r   r   s    r   rT   zNotIn.describe_oppositeM  s    +DK+++r   c                &    |t           uo|| j        vS r   r   r   r   s     r   r   zNotIn.__eq__P  s    G#@T[(@@r   r   r   r   r   r   rT   r   r   r   s   @r   r   r   G  sb        I3 3 3 3 3, , ,A A A A A A Ar   r   r   c                  .     e Zd ZdZ fdZd Zd Z xZS )Inr   c                J    t                                          | |          S r   r   r   s     r   r   z
In.__new__W  r   r   c                    d| j         S )Nzis not any of r   r   s    r   rT   zIn.describe_oppositeZ  s    ////r   c                &    |t           uo|| j        v S r   r   r   s     r   r   z	In.__eq__]  s    G#<(<<r   r   r   s   @r   r   r   T  s[        I3 3 3 3 30 0 0= = = = = = =r   r   c                    d S r   r   )r'   s    r   r   r   a  r1   r   c                      fd}|S )Nc                    t          |           s0pj        }t          d| dt          |           j                   d S )NrU   z got )r   r   r   r   )r   
typename_sr+   typenames     r   check_type_fnz!check_type.<locals>.check_type_fnf  sY    !R   	!0R[J!?J??T!WW-=??  	 	r   r   )r+   r   r   s   `` r   
check_typer   e  s*          r   string)r   textc                      fd}|S )Nc                    | vrAd                     d t                    D                       }t          d| d|           d S )Nrh   c              3  4   K   | ]}t          |          V  d S r   rj   rl   s     r   ro   z8check_one_of.<locals>.check_one_of_fn.<locals>.<genexpr>y  s(      "D"Da3q66"D"D"D"D"D"Dr   zExpected one of z
 but got: )rt   rq   r   )r   
possible_spossibles     r   check_one_of_fnz%check_one_of.<locals>.check_one_of_fnw  sc    H"D"D6(3C3C"D"D"DDDJ!>:>>>>   r   r   )r   r   s   ` r   check_one_ofr   v  s$         r   c                z    	 t          j        |            d S # t           j        $ r t          | d          w xY w)Nz is not a valid python regex)recompileerrorr   )r   s    r   check_regexr     sQ    D

18 D D DBBBCCCDs    ":c                      fd}|S )Nc                   t          | t          t          f          s$t          dt	          |           j                  t          |           D ]:\  }}t          d|           5   |           d d d            n# 1 swxY w Y   ;d S )NzExpected array but got z	At index )r   listtupler   r   r   	enumerater)   )r   irF   inner_checks      r   check_array_fnz#check_array.<locals>.check_array_fn  s    !dE]++ 	!>$q''*:>>    ll 	! 	!FAs!/a//22 ! !C   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	! 	!s   (B  B	B	r   )r   r   s   ` r   r   r     s$    ! ! ! ! ! r   c                       fd}|S )Nc                (    D ]} ||            d S r   r   )r   fnfnss     r   r   zcheck_and.<locals>.check  s+     	 	BBqEEEE	 	r   r   )r   r   s   ` r   	check_andr    s#         Lr   c                0    |                     |            | S r   )r   r   rE   s     r   rD   rD     s    
LLOOOHr   c                ,    |                     |           S r   )rI   r  s     r   rI   rI     s      ###r   c                ,    |                     |           S r   )rL   r  s     r   rL   rL     s    !!!$$$r   )display_filenamec                  |p| }t          |          5  t          j                            |           st	          | d          t          d|           5  	 t          | d          5 }|                                }d d d            n# 1 swxY w Y   n.# t          $ r!}t	          t          |                    d }~ww xY w	  ||          }n.# t          $ r!}t	          t          |                    d }~ww xY wt          ||           t          ||          cd d d            cd d d            S # 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S )Nz is not a filezFile zutf-8)encoding)r,   ospathisfiler   r)   openreadUnicodeDecodeErrorrk   	ExceptionrD   rI   )	filenamerE   load_strategyexc_tpr  fcontentsr&   datas	            r   load_from_filenamer    s]    (38	F		 0 0w~~h'' 	G!%5"E"E"EFFF8&68899 	0 	0.(W555 ( vvxxH( ( ( ( ( ( ( ( ( ( ( ( ( ( (% . . .%c!ff---..$}X.. . . .%c!ff---. T6"""!$//	0 	0 	0 	0 	0 	0 	0	0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   AED9B+B BBBBBD9
C"B>>CD9CD9
C>C99C>>"D9 E9D=	=E D=	EEEr   )M
__future__r   collections
contextlibos.pathr	  r   r"   
ValueErrorr   
namedtupler   r   __repr__contextmanagerr)   r,   r0   r6   r:   r=   r?   rA   propertyrG   rJ   rM   rO   rQ   r^   r`   rb   rd   rf   rx   r{   r|   r   r   r   r}   r5   r~   r   r   r   r   __defaults__r   r   r   r   r   r   r   r   r   r   r   r   bool
check_boolbytescheck_bytesint	check_intrk   check_string
check_textr   r   r   r  rD   rI   rL   r  r   r   r   <module>r)     s   " " " " " "          				 



    j     0
 +
 B
/
/
1
1//W  G G G 1 1 1	 	 	% % %+ + +  
C C C
  
 
  
? ? ?@ @ @/ / /, , ,  &+ + +
, , ,
3 3 3
4 4 4

 
 
- - - ";!*.ABB " # (+():<MNN' ,  ? !A !;!*.LMM 0 2 (+(3  ( ,  ? !A *K*,   *  "+  #,   $k$L  $,   **?;; % & ,k,   ,4   (22?CC  $G  !%I  "+[+J   +3   '11/BB  /  #E   $G  !);)*<iHH 2  !*  "+  +[+.   7  #,   $-  !    
 +
 (J
K
K   D
 
 
 
 
;	
 	

 
 
D< < < < <"K"7,ABB < < <,: : : : :
 +
 
1
1 : : :
A 
A 
A 
A 
A"K"7K88 
A 
A 
A
= 
= 
= 
= 
=		k	2	2 
= 
= 
=	 	 	    Z
jJsOO	z#111Zf---
  D D D
 
 
    
$ $ $% % % 	0 0 0 0 0 0 0 0r   