
    ".kd                        d dl Z d dlmZ d dlmZ  e j
                  d      Z e j
                  d      Z e j
                  d      Z e j
                  d      Z	 e
dd	g      Zded
ede
fdZd Zd
efdZd
ede
fdZd
ede
fdZd
ede
fdZd
efdZd
efdZd
ede
fdZd
ede
fdZd
efdZd
ede
fdZ G d d      Zy)    N)Context)YteErrorz^\?for .+ in .+$z^\?if (?P<expr>.+)$z^\?elif (?P<expr>.+)$z^\?else$	variablesdefinitionscontextdisable_featuresc                     t        | t              rt        | |t        |      |      S t        | t              r%t        | |||      }|d   j                  ||       |S t        |       rt        | ||      S | S )Ndoc)	
isinstancedict_process_dictr   list_process_list_insert_is_expr_process_expr)
yaml_valuer   r   r   results        +lib/python3.12/site-packages/yte/process.py_process_yaml_valuer      sw     *d#ZGG4DFVWW	J	%z9g?OP%  &1	*	ZG<<    c                 H    t        | t              xr | j                  d      S )N?)r   str
startswith)r   s    r   r   r       s    j#&E:+@+@+EEr   c                 \    	 t        | dd  |      S # t        $ r}t        ||      d }~ww xY w)N   )eval	Exceptionr   )r   r   r   es       r   r   r   $   s7    #JqrNI.. #q'""#s    	+&+c           	      D    | D cg c]  }t        ||||       c}S c c}w N)r   )r   r   r   r   items        r   r   r   +   s0      	D)W6FG  s   c                 B   t        t        | |||            }t        d |D              r$t               }|D ]  }|j	                  |        |S t        d |D              r|D cg c]  }|D ]  }|  c}}S t        |      dk(  r|d   S t        d| |      c c}}w )Nc              3   <   K   | ]  }t        |t                y wr"   )r   r   .0r#   s     r   	<genexpr>z _process_dict.<locals>.<genexpr>>   s     
4d:dD!
4   c              3   <   K   | ]  }t        |t                y wr"   )r   r   r&   s     r   r(   z _process_dict.<locals>.<genexpr>C   s     6Zd#6r)   r   r   zKConditional or for loop did not consistently return map or list. Returned: )r   _process_dict_itemsallr   updatelenr   )r   r   r   r   itemsr   r#   sublists           r   r   r   7   s     $ZGEUVWE

4e
44 	 DMM$	 	66	6$)>g>d>>>	UqQx!
 	
	 ?s   %Bc           	   #     K   t               }| j                         D ]  \  }}t        |      }|j                  j	                  |       |dk(  rd|v rt        d|      t        |||       P|dk(  rd|v rt        d|      t        |||       st        j                  |      rt        ||||||      E d {    t        j                  |      rt        ||||||      E d {    t        j                  |      rt        |||||       t        j                  |      rt!        |||||      E d {    "|j#                  |||      E d {    t%        ||||      }|j&                  j	                  |       t%        ||||      }	|d   j)                  ||	       ||	i  |j#                  ||      E d {    y 7 7 7 7 |7 w)N__definitions__r   z"__definitions__ have been disabled__variables__r   z __variables__ have been disabledr
   )Conditionalr/   r   templateappendr   _process_definitions_process_variablesre_for_loopmatch_process_for_loopre_if_process_ifre_elif_process_elifre_else_process_elseprocess_conditionalr   renderedr   )
r   r   r   r   conditionalkeyvaluekey_context
key_resultvalue_results
             r   r+   r+   O   s     -K &&( (-
Ug&##C(## 00C[QQ 	;?O#..A;OOui=s#(UI{KAQ   [["UI{KAQ   ]]3#uikJ]]3$y+{<L  
 #66;(8   -Y-=J   ''
3.y+/?L e$$[,?|,,Q(-R ..y+GWXXX;
 Ys\   B6G8G9-G&G'AG8G9GGA/GGGGGGGc                     t        | t              r| D ]  }	 t        ||        y t	        d|      # t        $ r}t	        ||      d }~ww xY w)Nz;__definitions__ keyword expects a list of Python statements)r   r   execr   r   )rF   r   r   r#   r    s        r   r7   r7      s]    % 	+D+T9%	+ I7
 	
  +q'**+s   2	AAAc                     t        | t              r6| j                         D ]"  \  }}t        |      rt	        |||      }|||<   $ y t        d|      )Nz@__variables__ keyword expects a map of variable names and values)r   r   r/   r   r   r   )rF   r   r   namevals        r   r8   r8      sX    % 	"ID#}#CG<!IdO	"
 NPW
 	
r   c              #      K   |j                  |||      E d {    t        |      }||d<   ||d<   ||d<   ||d<   t        d| dd   d|      E d {    y 7 ?7 w)N
_yte_value_context_disable_features_yte_variablesz`[_process_yaml_value(_yte_value, dict(_yte_variables, **locals()), _context, _disable_features) r   ])rB   r   r   )rE   rF   r   rD   r   r   
_variabless          r   r;   r;      s      ..y'CSTTTiJ$J|$Jz&6J"##-J (qr7)1	 		   Us!   AA9AAAAc              #      K   |j                  |||      E d {    t        j                  |       j                  d      }|j	                  ||       y 7 ;w)Nexpr)rB   r<   r:   groupregister_if)rE   rF   r   rD   r   r   rW   s          r   r=   r=      sP      ..y'CSTTT;;s!!&)DD%( Us   AA<Ac                     |j                         rt        d|      t        j                  |       j	                  d      }|j                  ||       y )Nz%Unexpected elif: no if or elif beforerW   )is_emptyr   r>   r:   rX   rY   )rE   rF   r   rD   r   rW   s         r   r?   r?      sE    >HH==##F+DD%(r   c              #      K   |j                         rt        d|      |j                  |        |j                  |||      E d {    y 7 w)Nz%Unexpected else: no if or elif before)r[   r   register_elserB   )rF   r   rD   r   r   s        r   rA   rA      sI      >HHe$..y'CSTTTs   AAAAc                   R    e Zd Zd ZdedefdZddZd Zd Z	d Z
ed	        Zd
 Zy)r4   c                      g | _         g | _        y r"   )exprsvaluesselfs    r   __init__zConditional.__init__   s    
r   r   r   c              #   |  K   | j                         st        |      }|j                  | j                         ||d<   ||d<   ||d<   	 t	        | j                         |      }|| | j                  j                          | j                  j                          y y # t        $ r}t        ||      d }~ww xY ww)NrS   rQ   rR   )r[   r   r-   
value_dictr   conditional_exprr   r   r`   clearra   )rc   r   r   r   r   r    s         r   rB   zConditional.process_conditional   s      }}YIT__-*3I&'$+Ij!-=I)*+d335yA !JJKK   +q'**+s*   AB<	B #<B<	B9(B44B99B<c           	          |t        | j                        k  r9d| j                  |       d| j                  |    d| j                  |dz          S |t        | j                        k  rd| j                  |       dS y)Nz_process_yaml_value(z2, _yte_variables, _context, _disable_features) if z else r   z., _yte_variables, _context, _disable_features)None)r.   r`   
value_namerg   ra   rc   indexs     r   rg   zConditional.conditional_expr   s    3tzz?"&tu'=&> ?jj'(t/D/DUQY/O.PR
 3t{{##&tu'=&> ?? ?
 r   c                 p    | j                   j                  |       | j                  j                  |       y r"   )r`   r6   ra   )rc   rW   rF   s      r   rY   zConditional.register_if   s&    

$5!r   c                 :    | j                   j                  |       y r"   )ra   r6   )rc   rF   s     r   r]   zConditional.register_else   s    5!r   c                     | j                    S r"   )r`   rb   s    r   r[   zConditional.is_empty   s    ::~r   c                 ~    t        | j                        D ci c]  \  }}| j                  |      | c}}S c c}}w r"   )	enumeratera   rk   )rc   irF   s      r   rf   zConditional.value_dict   s1    :CDKK:PQha"E)QQQs   9c                     d| S )N_yte_value_ rl   s     r   rk   zConditional.value_name   s    UG$$r   N)r   )__name__
__module____qualname__rd   r   	frozensetrB   rg   rY   r]   r[   propertyrf   rk   rv   r   r   r4   r4      sK     ") =F $"" R R%r   r4   )reyte.contextr   yte.exceptionsr   compiler9   r<   r>   r@   rz   FEATURESr   r   r   r   r   r   r+   r7   r8   r;   r=   r?   rA   r4   rv   r   r   <module>r      sR   	  #bjj,-

)*
"**-
.
"**[
!k=12   	$F#' #	 	  		
 
  	
01Y 1Y  	1Yh

G 

	
' 	
18LU")18)LU))w )U,3UGPU5% 5%r   