o
    Wod                  
   @  s  U d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dl	Z
ddlmZmZ ddlmZ d	d
lmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZmZmZmZ d	dlmZmZ d	dlmZm Z m!Z!m"Z" e
j#rd dl$m%Z% ddlm&Z& d	dlm'Z' d	dl(m)Z) e
j*ej+ej,e-f Z.e
j*ej/e-f Z0G dd de%Z1e dee2e-ej+ej3ej4ej5ej6fg ddZ7de8d< e dee2e-ej3ej4ej+fg ddZ9de8d < d1d%d&Z:eG d'd( d(Z;G d)d* d*Z<G d+d, d,eZ=d2d/d0Z>dS )3    )annotations)defaultdict)	dataclass)PurePathN   )NewExtensionModule
ModuleInfo)ModuleReturnValue   )build)dependencies)mesonlib)mlog)BUILTIN_DIR_OPTIONS)ThreadDependency)D_MODULE_VERSIONS_KWINSTALL_DIR_KWVARIABLES_KWNoneType)
FeatureNewFeatureDeprecated)ContainerTypeInfo	KwargInfotyped_kwargstyped_pos_args)	TypedDict)ModuleState)mparser)Interpreterc                   @  s   e Zd ZU ded< ded< ded< ded< ded< ded	< ded
< ded< ded< ded< ded< ded< ded< ded< ded< ded< ded< ded< ded< dS )
GenerateKwT.Optional[str]versionnamefilebasedescriptionstrurlT.List[str]subdirs	conflictsbooldataonlyT.List[ANY_DEP]	librarieslibraries_privateWT.List[T.Union[str, build.StaticLibrary, build.SharedLibrary, dependencies.Dependency]]requiresrequires_privateinstall_dirzT.List[T.Union[str, int]]d_module_versionsextra_cflagsT.Dict[str, str]	variablesuninstalled_variablesunescaped_variablesunescaped_uninstalled_variablesN)__name__
__module____qualname____annotations__ r>   r>   {home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/modules/pkgconfig.pyr   ,   s(   
 r   r-   TdefaultlistifyzKwargInfo[T.List[T.Union[str, dependencies.Dependency, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]]_PKG_LIBRARIESr0   zbKwargInfo[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, dependencies.Dependency]]]_PKG_REQUIRESobjobjectreturnr%   c                 C  s   t | tsJ | S N)
isinstancer%   )rE   r>   r>   r?   _as_strT   s   rJ   c                   @  s2   e Zd ZU ded< ded< ded< dZded< d	S )
MetaDatar%   r#   display_namezmparser.BaseNodelocationFr*   warnedN)r:   r;   r<   r=   rN   r>   r>   r>   r?   rK   Y   s
   
 rK   c                   @  s   e Zd ZdEd	d
ZdFddZdFddZdGddZdGddZdHddZdIddZ	dJd d!Z
dKd%d&Z	'dLdMd/d0ZdNd3d4ZdOd7d8ZdPd;d<ZdQd>d?ZdRd@dAZdSdBdCZdDS )TDependenciesHelperstater   r"   r%   metadataT.Dict[str, MetaData]rG   Nonec                 C  sD   || _ || _g | _g | _g | _g | _g | _tt| _	g | _
|| _d S rH   )rP   r"   pub_libspub_reqs	priv_libs	priv_reqscflagsr   setversion_reqslink_whole_targetsrQ   )selfrP   r"   rQ   r>   r>   r?   __init__c   s   

zDependenciesHelper.__init__libsr,   c                 C  s>   |  |d\}}}|| j | _|  j|7  _|  j|7  _d S )NT)_process_libsrT   rU   rX   )r\   r^   p_libsreqsrX   r>   r>   r?   add_pub_libso   s   zDependenciesHelper.add_pub_libsc                 C  s0   |  |d\}}}|| j | _|  j|7  _d S )NF)r_   rV   rW   )r\   r^   r`   ra   _r>   r>   r?   add_priv_libsu   s   z DependenciesHelper.add_priv_libsra   r/   c                 C     |  j | |7  _ d S rH   )rU   _process_reqsr\   ra   r>   r>   r?   add_pub_reqsz      zDependenciesHelper.add_pub_reqsc                 C  re   rH   )rW   rf   rg   r>   r>   r?   add_priv_reqs}   ri   z DependenciesHelper.add_priv_reqsrE   ^T.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]c              	   C  s^   |  | jv r	d S | j|   }|jrd S tjdt|jddt|jd|jd d|_d S )NLibraryz|was passed to the "libraries" keyword argument of a previous call to generate() method instead of first positional argument.Addingzto "Requires" field, but this is a deprecated behaviour that will change in a future version of Meson. Please report the issue if this warning cannot be avoided in your case.rM   T)	get_idrQ   rN   r   Zdeprecationboldr"   rL   rM   )r\   rE   datar>   r>   r?   _check_generated_pc_deprecation   s   
	z2DependenciesHelper._check_generated_pc_deprecation[T.Sequence[T.Union[str, build.StaticLibrary, build.SharedLibrary, dependencies.Dependency]]r'   c                 C  s  g }t |D ]}t|tstdd| jj t|tj	tj
tjtjfr<| | jv r<| | || j|  j qt|tjrU| rT||j | |j|j qt|trt| |\}}|| | ||durp|gnd qt|tjr| sqt|trqt d||S )z$Returns string names of requirementsz5pkgconfig.generate requirement from non-string object0.46.0Nzjrequires argument not a string, library with pkgconfig-generated file or pkgconfig-dependency object, got )r   rB   rI   r%   r   
single_userP   
subprojectr   CustomTargetCustomTargetIndexSharedLibraryStaticLibraryro   rQ   rr   appendr#   r   PkgConfigDependencyfoundr"   add_version_reqsrZ   split_version_req
Dependencyr   MesonException)r\   ra   processed_reqsrE   r"   Zversion_reqr>   r>   r?   rf      s4   




z DependenciesHelper._process_reqsrX   c                 C  s   |  j t|7  _ d S rH   )rX   r   Zstringlistify)r\   rX   r>   r>   r?   
add_cflags   ri   zDependenciesHelper.add_cflagspublicr*   T.Tuple[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]], T.List[str], T.List[str]]c              	   C  s  t |}g }g }g }|D ]}t|tjtjtjtjfr4| | j	v r4| 
| || j	|  j qt|tjr;qt|tjrT| rS||j | |j|j qt|tjr| r|jrft d|| 7 }|| 7 }| j|j|j|j|dd qt|tjr| r|| 7 }|| 7 }qt|tjr|jr|| qt|tjtjfr|| | |j|j |j!t|tjo| qt|tjtjfr|" st dt#$dd| j%j& || qt|t'r|| qt dt(|j) d|||fS )	Nz1.pc file cannot refer to individual object files.T)private_external_depsz7library argument contains a not linkable custom_target.z-custom_target in pkgconfig.generate librariesz0.58.0zlibrary argument of type z, not a string, library or dependency object.)*r   rB   rI   r   rw   rx   ry   rz   ro   rQ   rr   r{   r#   r   ZValgrindDependencyr|   r}   r"   r~   rZ   ZInternalDependencyobjectsr   Zget_link_argsZget_compile_args_add_lib_dependenciesr-   Zwhole_librariesZext_depsr   Zshared_library_onlylink_targetsr[   external_depsZis_linkable_targetr   ru   rP   rv   r%   typer:   )r\   r^   r   Zprocessed_libsr   Zprocessed_cflagsrE   r>   r>   r?   r_      s`   






z DependenciesHelper._process_libsFr   "T.Sequence[build.BuildTargetTypes]r[   UT.Sequence[T.Union[build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]r   T.List[dependencies.Dependency]r   c                 C  s   |r| j n| j}|D ]!}| r&t|tjtjtjfsJ d| || q
||g q
|D ]}| || q.|rD| t	
d| d S |t	
d| d S )Nfor mypyr,   )rb   rd   Zis_internalrI   r   rz   rw   rx   _add_link_wholeTcast)r\   r   r[   r   r   r   Zadd_libstr>   r>   r?   r      s   z(DependenciesHelper._add_lib_dependenciesr   IT.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary]c                 C  s6   | j | t|tjr| |j|j |j| d S d S rH   )r[   r{   rI   r   BuildTargetr   r   r   )r\   r   r   r>   r>   r?   r     s   z"DependenciesHelper._add_link_wholerZ   T.Optional[T.List[str]]c                 C  s   |r| j | | d S d S rH   )rZ   update)r\   r"   rZ   r>   r>   r?   r~     s   z#DependenciesHelper.add_version_reqssT.Tuple[str, T.Optional[str]]c                 C  sH   dD ]}| |}|dkr|d|  ||d   f  S q|d fS )Nz>=z<=z!=z===><r   )findstrip)r\   r   opposr>   r>   r?   r     s   
$z$DependenciesHelper.split_version_reqvreqc                 C  s4   dD ]}| |r|d |t|d     S q|S )Nr    )
startswithlen)r\   r   r   r>   r>   r?   format_vreq  s
   
zDependenciesHelper.format_vreqc                   sN   g }|D ] j  d }|r| fdd|D 7 }q| g7 }qd|S )Nc                   s   g | ]} d   | qS )r   )r   ).0r   r"   r\   r>   r?   
<listcomp>)  s    z2DependenciesHelper.format_reqs.<locals>.<listcomp>z, )rZ   getjoin)r\   ra   resultZvreqsr>   r   r?   format_reqs$  s   
zDependenciesHelper.format_reqsc                   s   t  dfdddfdd	 jD ]} | qtjdddd}tjdddd}dd fdd}|j_|jd_|j_|jd_t  |j_d S )NxcT.Union[str, build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]rG   T.Iterable[str]c                 3  sD    t | tr| V  d S |   jv r j|   jV  |  V  d S rH   )rI   r%   ro   rQ   rL   r   r\   r>   r?   _ids4  s   

z,DependenciesHelper.remove_dups.<locals>._idsr*   c                   s.   d} | D ]}|v rd}q | q|S )NFT)add)r   Zwas_excludedi)r   excluder>   r?   _add_exclude=  s   z4DependenciesHelper.remove_dups.<locals>._add_excludeFxsr'   r^   c                 S     d S rH   r>   r   r^   r>   r>   r?   _fnN     z+DependenciesHelper.remove_dups.<locals>._fnT.List[LIBS]c                 S  r   rH   r>   r   r>   r>   r?   r   Q  r   "T.Union[T.List[str], T.List[LIBS]]c                   sR   g }| D ]"}dg}|ot |to|d o||v}|s! |r!q|| q|S )Nz-pthread)-lz-L)rI   r%   r   r{   )r   r^   r   r   Zknown_flagsZcannot_dedup)r   r>   r?   r   T  s   
T)r   r   rG   r   )r   r   rG   r*   F)r   r'   r^   r*   rG   r'   )r   r   r^   r*   rG   r   )r   r   r^   r*   rG   r   )	rY   r[   r   overloadrU   rT   rW   rV   rX   )r\   r   r   r>   )r   r   r   r\   r?   remove_dups.  s    	


zDependenciesHelper.remove_dupsN)rP   r   r"   r%   rQ   rR   rG   rS   )r^   r,   rG   rS   )ra   r/   rG   rS   )rE   rk   rG   rS   )ra   rs   rG   r'   )rX   r'   rG   rS   )r^   r,   r   r*   rG   r   r   )r   r   r[   r   r   r   r   r*   r   r*   rG   rS   )r   r   r   r*   rG   rS   )r"   r%   rZ   r   rG   rS   )r   r%   rG   r   )r   r%   rG   r%   )ra   r'   rG   r%   rG   rS   )r:   r;   r<   r]   rb   rd   rh   rj   rr   rf   r   r_   r   r   r~   r   r   r   r   r>   r>   r>   r?   rO   b   s$    








?





rO   c                      s  e Zd ZU edZi Zded< dS fddZdTddZdUddZ	dVddZ
		dWdXd-d.Zed/ejejfgd0ed/ejd1d2eed%eeeg d3d4ed+edd5d6ed"eefed7eeeg d3d8d9ed:eefd;d< d=ed eefd>d< d=edeeeg d3d4ed#ed?d@ed$eefejdAdBdCejd(dBdCejdDd5edEidFejdGedEidHeejdIdJeejdKdJdYdQdRZ  ZS )ZPkgConfigModule	pkgconfigz!T.ClassVar[T.Dict[str, MetaData]]	_metadatarG   rS   c                   s    t    | jd| ji d S )Ngenerate)superr]   methodsr   r   r   	__class__r>   r?   r]   u  s   

zPkgConfigModule.__init__l^T.Union[build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]msgr%   pcfilec                 C  s   t |tjtjfr&tj| }tj|d }|	dr$|dd  }|S |j
s,|jS |jdkr>|j	dr>|jdd  S t |tjrJ|jrJ|jS t||jd|j| |jS )Nr   lib    Zname_prefix)rI   r   rx   rw   ospathbasenameget_filenamesplitextr   Zname_prefix_setr"   prefixry   Zimport_filenamer   warningformat)r\   r   r   r   r   r"   r>   r>   r?   
_get_lname{  s   
zPkgConfigModule._get_lnamevalueT.Union[str, PurePath]c                 C  s   t |tr	| }|ddS )z
        We cannot use quote_arg because it quotes with ' and " which does not
        work with pkg-config and pkgconf at all.
        r   z\ )rI   r   as_posixreplace)r\   r   r>   r>   r?   _escape  s   
zPkgConfigModule._escaper   T.Union[PurePath, str]subdirc                 C  sB   t |}t |}z||}W n ty   |}Y nw d|  S )N	${prefix})r   relative_to
ValueErrorr   )r\   r   r   libdirr>   r>   r?   _make_relative  s   zPkgConfigModule._make_relativeFNrP   r   depsrO   r(   r'   r"   r    r$   r&   r!   r)   r6   T.List[T.Tuple[str, str]]r8   uninstalledr*   r+   pkgrootc           $        s*  j  }t }dd t D }|s$|ddhO }|js|jr$|dhO }d}d}t }t }|
| D ]\}}||hO }||hO }q2|D ](}d| dtfd	d
|D rk||v r]d}qC|sc|dvred}|d|hO }qC|ryt	ddj
dj |rtj	ddj
jd rtjj jd}tj|st| tj  tj  }n9j j}tt|td|rt|}| sʈ| }n|jvrtd|  dtdtj|tj|}t |ddd}|D ]4}||| v r*|dkr|!d"# qtt|t|}|!d"|#d|  qr<|s<|!d"#| |
sB|rG|!d |
D ]\}}|!d"|#| qI|D ]\}}|!| d| d q]|!d |!d| d t$|d kr|!d!| d t$|d kr|!d"| d |!d#| d |%|j&}t$|d kr|!d$| d |%|j'}t$|d kr|!d%| d t$|	d kr|!d&"d'|	 d8fd,d-} d9d/d0 d8 fd1d2}!t$|jd kr|!d3"d'| |j t$|jd kr'|!d4"d'| |j g }"r7|"|!|j|j 7 }"n|D ]}#|#dkrG|"(d5 q9|"(#td5|#  q9|"fd6d|j)D 7 }"|"rz|s|!d7"d'|" W d    d S W d    d S W d    d S 1 sw   Y  d S ):Nc                 S  s   g | ]}|j qS r>   r"   r   r   r>   r>   r?   r     s    z<PkgConfigModule._generate_pkgconfig_file.<locals>.<listcomp>r   
includedirr   Fz${}c                 3  s    | ]}|  V  qd S rH   )r   r   )optvarr>   r?   	<genexpr>  s    z;PkgConfigModule._generate_pkgconfig_file.<locals>.<genexpr>T>   r   r   r   z3pkgconfig.generate variable for builtin directoriesz0.62.0z3They will be automatically included when referencedz<pkgconfig.generate implicit variable for builtin directoriesrn   zmeson-uninstalledzfPkgconfig prefix cannot be outside of the prefix when pkgconfig.relocatable=true. Pkgconfig prefix is .z${pcfiledir}wzutf-8)encodingz
prefix={}
z{}={}
r   z
srcdir={}

r   zName: r   zDescription: zURL: z	Version: z
Requires: zRequires.private: zConflicts: {}
r   r^   r   rG   r   c              	   3  sP   d}g }| D ]}t |tr|V  qrtjj|}n| }|r)|d nd }|du r0qt |tj	rUd|j
v rUt |trOd||j}nd|j }nt |trgd|}nd}||vru|| |V  || }t |tj	r|jrt||jd	|  t |tjtjfsd|j
vrd
| V  qd S )NzxLibrary target {0!r} has {1!r} set. Compilers may not find it from its '-l{2}' linker flag in the {3!r} pkg-config file.r   Fcsz-r{}/{}z-r${libdir}/%sz-L{}z-L${libdir}Zname_suffixr   )rI   r%   r   r   dirnameZbackendZget_target_filename_absget_custom_install_dirr   r   	compilersr   r   r   filenamer{   r   Zname_suffix_setr   r   r"   rw   rx   )r^   r   ZLflagsr   r2   Z_iZLflaglname)r   r   r\   rP   r   r>   r?   generate_libs_flags	  s:   



zEPkgConfigModule._generate_pkgconfig_file.<locals>.generate_libs_flagsr'   c                 S  s   g }| D ]<}t |ttjtjfrq| |vr||  | D ]}| }|	 D ]}t
j||}||vr>|| q,q"q|S rH   )rI   r%   r   rw   rx   Z
get_subdirr{   Zget_include_dirsZ
get_curdirZget_incdirsr   r   r   )r^   r   r   r   curdirdr   r>   r>   r?   get_uninstalled_include_dirs/  s    
zNPkgConfigModule._generate_pkgconfig_file.<locals>.get_uninstalled_include_dirsc                 3  s<     | D ]}dD ]}t ||}d|  V  q	qd S )N)r   z	${srcdir}z-I%s)r   r   r   )r^   r   Zbasedirr   )r   r\   r>   r?   generate_uninstalled_cflags>  s   
zMPkgConfigModule._generate_pkgconfig_file.<locals>.generate_uninstalled_cflagsz	Libs: {}
zLibs.private: {}
z-I${includedir}c                   s   g | ]}  |qS r>   )r   )r   fr   r>   r?   r   R  s    zCflags: {}
)r^   r   rG   r   )r^   r   rG   r'   )*environmentZget_coredatarY   r   keysrT   rV   anyr   ru   rv   current_noder   r   r   r   	build_direxistsmkdirr   Zget_build_dirZget_source_dirZscratch_dirrJ   
get_optionr   	OptionKeyis_absoluteparentsr   r   relpathopenwriter   r   r   r   rU   rW   r{   rX   )$r\   rP   r   r(   r"   r$   r&   r!   r   r)   r6   r8   r   r+   r   coredataZreferenced_varsZoptnamesZimplicit_vars_warningZredundant_vars_warningvarnamesZ
varstringskvoptnameoutdirsrcdirZpkgroot_fnameZofiledirpathZreqs_strr   r   rX   r   r>   )r   r   r   r   r\   rP   r   r?   _generate_pkgconfig_file  s   










&
jj$z(PkgConfigModule._generate_pkgconfig_filezpkgconfig.generate)Zoptargsz0.43.0)sinceTr@   z0.54.0)rA   r  r4   z0.42.0)rA   rB   r  r#   c                 C     | dkrdS d S Nr   zmust not be an empty stringr>   r   r>   r>   r?   <lambda>_      zPkgConfigModule.<lambda>)	validatorc                 C  r  r  r>   r   r>   r>   r?   r  `  r  r   )rA   r9   z0.59.0)r"   r  r7   z0.56.0)r"   r  since_valuesz0.41.0)r  r   r.   r   r1   argsFT.Tuple[T.Optional[T.Union[build.SharedLibrary, build.StaticLibrary]]]kwargsr   r	   c                    s  |j }d }d }d }d }dg}	|d r@tdd|j |d }|j}|jd |j }| }
|
r?t|
d tr?t	j
|
d d}nd d u rNtdd|j d	 d u rYtd
d   rg }	g d}tfdd|D rxtd| t	j
|j d}d p|	}d d urd n|}d	 d urd	 n|}t|tsJ dd d urd n|}d d urd n|}d }d }d  }|r|d| t||| j}|| |d  |d  |d  |d  d }|r|jjjjd}|r|| d|id  |!  d; fd"d#}|d$ }|d% }|d& }d' p>| }}|d u rt" rft	j
t#|jj$t%d(d)d}t	j
d*d)d}n:t& rt	j
t#|jj$t%d(d+d,d}t	j
d*d+d,d}nt	j
t#|jj$t%d-d}t	j
d.d}|j$d/dd0}| j'|||||||||||d1 |r|nd d2 tj(t)d3|j* |g||d |jd4d5}|d6 }|d7 }|d8 }| j'|||||||||||d3 d9 |r|+ | jvrt,|||j-| j|+ < n,t./d:t.0|j n!|j1D ]}t|ts8|+ | jvr8t,|||j-| j|+ < qt2||gS )<Nr   r   z/pkgconfig.generate optional positional argumentrt   z: r   r!   z+pkgconfig.generate implicit version keywordr"   zopkgconfig.generate: if a library is not passed as a positional argument, the name keyword argument is required.r+   )r-   r.   r1   r4   r(   c                 3  s    | ]} | V  qd S rH   r>   )r   r  )r#  r>   r?   r     s    z+PkgConfigModule.generate.<locals>.<genexpr>z$Cannot combine dataonly with any of r(   r   r#   r$   r&   r)   r-   r.   r0   r1   r4   r3   r   Zversionsvardictr5   rG   r   c                   sN   g d}g }|   D ]\}} s||v rtd| d|||f q
|S )N)r   r   r   z
Variable "z" is reserved)itemsr   r   r{   )r$  reservedr6   r"   r   )r+   r>   r?   parse_variable_list  s   z5PkgConfigModule.generate.<locals>.parse_variable_listr6   r8   z.pcr2   r   Zlibdataz{prefix}Zdevelopr   r   z{libdir}relocatable)moduleF)r   TZdevel)Zinstall_tagr7   r9   z-uninstalled.pc)r   r+   z'Already generated a pkg-config file for)r$  r5   rG   r   )3Zproject_versionr   ru   rv   r"   project_namer   rI   r%   r   r   r   r   ZInvalidArgumentsr  r   r   r  Zget_datadircopyinsertrO   r   rb   rd   rh   rj   r   r  r   hostr   Zget_feature_argsr   Z
is_freebsdrJ   r	  r
  Zis_haikur  ZDataZFileZget_scratch_dirro   rK   r  r   r   rp   rT   r	   ) r\   rP   r!  r#  Zdefault_versionZdefault_install_dirZdefault_descriptiondefault_nameZmainlibZdefault_subdirsr2   Zblocked_varsr(   r!   r"   r#   r$   r&   r)   r-   r   Z	dversionscompilerr'  r6   r8   r   r   Zpkgroot_namer(  resr   r>   )r+   r#  r?   r   V  s   
	

$
&"*	
zPkgConfigModule.generater   )r   r   r   r%   r   r%   rG   r%   )r   r   rG   r%   )r   r   r   r   rG   r%   )FFN)rP   r   r   rO   r(   r'   r"   r    r$   r    r&   r%   r!   r%   r   r%   r)   r'   r6   r   r8   r   r   r*   r+   r*   r   r    rG   rS   )rP   r   r!  r"  r#  r   rG   r	   ) r:   r;   r<   r   INFOr   r=   r]   r   r   r   r  r   r   ry   rz   r   r   Zevolver   r   r   listr%   r*   r   r   dictrC   rD   r   __classcell__r>   r>   r   r?   r   m  sF   
 


 -


r   interpr   c                 C  s   t  S rH   )r   )r5  r>   r>   r?   
initialize  s   r6  )rE   rF   rG   r%   )r5  r   rG   r   )?
__future__r   collectionsr   dataclassesr   pathlibr   r   typingr   r   r   r   r	   r   r   r   r   r  r   r   Zinterpreter.type_checkingr   r   r   r   Zinterpreterbaser   r   Zinterpreterbase.decoratorsr   r   r   r   TYPE_CHECKINGtyping_extensionsr   r   r   interpreterr   Unionr   ZBuildTargetTypesr%   ZANY_DEPZLibTypesLIBSr   r2  ry   rz   rw   rx   rC   r=   rD   rJ   rK   rO   r   r6  r>   r>   r>   r?   <module>   sd   
	
    |