
    -Ph
                        d dl mZ ddlmZmZ ddlmZmZ ddlm	Z	 d dl
Zd dlZej        r
ddlmZmZmZ ddZddZddZd d!dZdS )"    )annotations   )mesonlibmparser   )InterpreterExceptionInvalidArguments)
UserOptionN)TYPE_varTYPE_kwargs
SubProjectargs'T.Union['TYPE_var', T.List['TYPE_var']]returnT.List['TYPE_var']c                   t          | t          j                  r$t          | j        t                    sJ | j        gS t          | t
          j        j                  s| gS g }| D ]v}t          |t                    rt          |          }||z   },t          |t          j                  r|
                    |j                   a|
                    |           w|S )N)
isinstancer   
StringNodevaluestrcollectionsabcSequencelistflattenappend)r   resultarests       b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/interpreterbase/helpers.pyr   r      s    $*++ $*c*****
|dKO455 v!#F  a 	1::Dd]FF7-.. 	MM!'""""MM!M    kwargs'TYPE_kwargs'*T.Tuple[T.List['TYPE_var'], 'TYPE_kwargs']c                l    dfdfd| D             fd|                                 D             fS )Narg
'TYPE_var'r   c                   t          | t                    rfd| D             S t          | t                    r fd|                                 D             S t          | t          j                  r|                                 S | S )Nc                &    g | ]} |          S  r*   .0xresolvers     r    
<listcomp>zBresolve_second_level_holders.<locals>.resolver.<locals>.<listcomp>%   s!    ---AHHQKK---r!   c                .    i | ]\  }}| |          S r*   r*   r,   kvr.   s      r    
<dictcomp>zBresolve_second_level_holders.<locals>.resolver.<locals>.<dictcomp>'   s'    ;;;tq!Axx{{;;;r!   )r   r   dictitemsr   SecondLevelHolderget_default_object)r&   r.   s    r    r.   z.resolve_second_level_holders.<locals>.resolver#   s    c4   	.--------c4   	<;;;;syy{{;;;;c8566 	,))+++
r!   c                &    g | ]} |          S r*   r*   r+   s     r    r/   z0resolve_second_level_holders.<locals>.<listcomp>+   s!    &&&AHHQKK&&&r!   c                .    i | ]\  }}| |          S r*   r*   r1   s      r    r4   z0resolve_second_level_holders.<locals>.<dictcomp>+   s'    (S(S(SDAqHHQKK(S(S(Sr!   )r&   r'   r   r'   )r6   )r   r"   r.   s     @r    resolve_second_level_holdersr;   "   s_          '&&&&&&(S(S(S(SFLLNN(S(S(SSSr!   keymparser.BaseNoder   c                b    t          | t          j                  st          d          | j        S )NzInvalid kwargs format.)r   r   IdNoder   r   )r<   s    r    default_resolve_keyr@   -   s-    c7>** ="#;<<<9r!   Fr   
subprojectr   quoteboolc                   t          | t                    r
|rd|  dn| S t          | t                    r| rdndS t          | t                    rt          |           S t          | t                    r$dd                    fd| D                       z  S t          | t                    r8fd|                                 D             }dd                    |          z  S t          | t                    r?d	d
l	m
} |                    dd           t          |                                           S t          d          )N'truefalsez[%s]z, c                2    g | ]}t          |d           S )T)stringifyUserArguments)r,   r-   rA   s     r    r/   z*stringifyUserArguments.<locals>.<listcomp>:   s'    "]"]"]ST#9!Z#N#N"]"]"]r!   c           
     ~    g | ]9\  }}d                      t          |d          t          |d                    :S )z{} : {}T)formatrI   )r,   r2   r3   rA   s      r    r/   z*stringifyUserArguments.<locals>.<listcomp><   sd     e e eOSqRS 4Q
DII4Q
DIIK K e e er!   z{%s}r   )
FeatureNewzUser option in string formatz1.3.0zSValue other than strings, integers, bools, options, dictionaries and lists thereof.)r   r   rC   intr   joinr5   r6   r
   
decoratorsrL   
single_userI   printable_valuer	   )r   rA   rB   lrL   s    `   r    rI   rI   2   sz   $ J#-{4{{{{-	D$		 J*vv7*	D#		 J4yy	D$		 	J		"]"]"]"]X\"]"]"]^^^^	D$		 Je e e eW[WaWaWcWce e e		!$$	D*	%	% J******<gzRRR%d&:&:&<&<jIII
p
q
qqr!   )r   r   r   r   )r   r   r"   r#   r   r$   )r<   r=   r   r   )F)r   r   rA   r   rB   rC   r   r   )
__future__r    r   r   
exceptionsr   r	   optionsr
   collections.abcr   typingTTYPE_CHECKINGbaseobjectsr   r   r   r   r;   r@   rI   r*   r!   r    <module>r\      s   # " " " " "                 > > > > > > > >                    ? ?>>>>>>>>>>   "	T 	T 	T 	T   
r r r r r r rr!   