o
    ƒnócS  ã                   @  sp   d dl 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 ddd„Zddd„Zddd„ZdS )é    )Úannotationsé   )ÚmesonlibÚmparseré   )ÚInterpreterExceptionN)ÚTYPE_varÚTYPE_kwargsÚargsú'T.Union['TYPE_var', T.List['TYPE_var']]ÚreturnúT.List['TYPE_var']c                 C  sŠ   t | tjƒrt | jtƒsJ ‚| jgS t | tjjƒs| gS g }| D ]"}t |tƒr0t	|ƒ}|| }q t |tjƒr=| 
|j¡ q | 
|¡ q |S )N)Ú
isinstancer   Z
StringNodeÚvalueÚstrÚcollectionsÚabcÚSequenceÚlistÚflattenÚappend)r
   ÚresultÚaÚrest© r   úxhome/ych/rk3568/buildroot/output/rockchip_rk3568/host/lib/python3.10/site-packages/mesonbuild/interpreterbase/helpers.pyr      s   

r   Úkwargsú'TYPE_kwargs'ú*T.Tuple[T.List['TYPE_var'], 'TYPE_kwargs']c                   s6   d
‡ fdd„‰ ‡ fdd„| D ƒ‡ fdd	„|  ¡ D ƒfS )NÚargú
'TYPE_var'r   c                   sT   t | tƒr‡ fdd„| D ƒS t | tƒr‡ fdd„|  ¡ D ƒS t | tjƒr(|  ¡ S | S )Nc                   ó   g | ]}ˆ |ƒ‘qS r   r   ©Ú.0Úx©Úresolverr   r   Ú
<listcomp>-   ó    zBresolve_second_level_holders.<locals>.resolver.<locals>.<listcomp>c                   ó   i | ]	\}}|ˆ |ƒ“qS r   r   ©r#   ÚkÚvr%   r   r   Ú
<dictcomp>/   ó    zBresolve_second_level_holders.<locals>.resolver.<locals>.<dictcomp>)r   r   ÚdictÚitemsr   ZSecondLevelHolderZget_default_object)r   r%   r   r   r&   +   s   

z.resolve_second_level_holders.<locals>.resolverc                   r!   r   r   r"   r%   r   r   r'   3   r(   z0resolve_second_level_holders.<locals>.<listcomp>c                   r)   r   r   r*   r%   r   r   r-   3   r.   z0resolve_second_level_holders.<locals>.<dictcomp>)r   r    r   r    )r0   )r
   r   r   r%   r   Úresolve_second_level_holders*   s   (r1   Úkeyúmparser.BaseNoder   c                 C  s   t | tjƒs
tdƒ‚| jS )NzInvalid kwargs format.)r   r   ZIdNoder   r   )r2   r   r   r   Údefault_resolve_key5   s   r4   )r
   r   r   r   )r
   r   r   r   r   r   )r2   r3   r   r   )Ú
__future__r   Ú r   r   Ú
exceptionsr   Úcollections.abcr   ÚtypingÚTÚTYPE_CHECKINGZbaseobjectsr   r	   r   r1   r4   r   r   r   r   Ú<module>   s   

