
    -Ph*f                       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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mZmZmZmZmZmZmZ dd
lmZ ddlmZmZ ddlmZm Z m!Z! ddl"m#Z#m$Z$m%Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddlm9Z9 ddlm:Z: ddl;m<Z<m=Z= ej>        rqd dl?m@Z@mAZA ddl	mBZB ddlmCZCmDZD ddlmEZE ddl"mFZF ddlGmHZH ddlImJZJmZK ddlLmMZMmNZN  G d de@          ZO G d deJ          ZP G d  d!eK          ZQejR        e=d"f         ZSd#d$hZTeTU                    e           eTd%d&hz  ZTd' e,D             ZV G d( d"e          ZW e5d)eXe*f          ZY e5d#eZd*+          Z[ e5d$eZd*d,-          Z\ e5d#eZe*f          Z] G d. d/e(d"                   Z^ G d0 d1e
          Z_d6d5Z`dS )7    )annotationsN   )ExtensionModule
ModuleInfo   )mesonlib)mlog)UserFeatureOption)known_shmod_kwargsCustomTargetCustomTargetIndexBuildTargetGeneratedListStructuredSourcesExtractedObjectsSharedModule)NotFoundDependency)get_dep_identifierfind_external_dependency)BasicPythonExternalProgrampython_factory_PythonDependencyBase)extract_required_kwargpermitted_dependency_kwargs
primitives)_ExternalProgramHolder)NoneTypePRESERVE_PATH_KWSHARED_MOD_KWS)	noPosargsnoKwargspermittedKwargsContainerTypeInfoInvalidArgumentstyped_pos_argstyped_kwargs	KwargInfo
FeatureNewFeatureNewKwargsdisablerIfNotFound)MachineChoice)	OptionKey)ExternalProgramNonExistingExternalProgram)	TypedDictNotRequired)ModuleState)BuildData)
Dependency)Interpreter)BuildTargetSource)ExtractRequiredr   )TYPE_varTYPE_kwargsc                  .    e Zd ZU ded<   ded<   ded<   dS )PyInstallKwT.Optional[bool]purestrsubdirT.Optional[str]install_tagN__name__
__module____qualname____annotations__     Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/python.pyr;   r;   (   s3         $$$$$$rH   r;   c                  .    e Zd ZU ded<   ded<   ded<   dS )FindInstallationKwbooldisablerzT.List[str]modulesr<   r=   NrB   rG   rH   rI   rK   rK   .   s3         rH   rK   c                      e Zd ZU ded<   dS )ExtensionModuleKwzNotRequired[T.Optional[str]]r?   NrB   rG   rH   rI   rP   rP   4   s         ,,,,,,rH   rP   PythonExternalProgramr?   limited_apiname_prefixname_suffixc                $    g | ]}|j         d v|S )>   rS   rT   )name).0ks     rI   
<listcomp>rY   ?   s%    YYYQAF:X,X,Xq,X,X,XrH   c                  :     e Zd ZU i Zded<   dd fdZddZ xZS )rQ   zT.ClassVar[T.Dict[str, bool]]run_bytecompileNstateT.Optional['ModuleState']returnrL   c                   t                                                      }|r\|                     |d          | _        |                     |d          | _        | j                            | j        d         d           |S )NplatlibpurelibversionF)supersanity	_get_pathr`   ra   r[   
setdefaultinfo)selfr\   ret	__class__s      rI   rd   zPythonExternalProgram.sanityI   sn    ggnn 	I>>%;;DL>>%;;DL ++DIi,@%HHH
rH   keyr>   c                :   | j         d         |         dd          }|s|S t          j        d|                    d| d                    }|r/|                    d          rt          j        d| d          |S |                    d          }|dk    r| j         d	         rd
nd}|dk    r2t          j        	                    | j         d         d         |          }n:|d
k    r4| j         d	         st          j        d          | j         d         |         }|S )Ninstall_pathsr   r>   zpython.dirzpython.install_envz1dir and python.install_env are mutually exclusiveautois_venvvenvsystem	variablesprefixzDpython.install_env cannot be set to "venv" unless you are in a venv!sysconfig_paths)
rg   Tcast
get_optionis_user_defined_optionr   MesonExceptionospathjoin)rh   r\   rk   rel_pathvalueinstall_envs         rI   re   zPythonExternalProgram._get_pathQ   s<   9_-c21226 	Oue../A/A/A/ABBCC 	++,@AA p-.n.n.n.noooL&&';<<&  $(Ii$8F&&hK(""w||DIk$:8$DhOOHHF""9Y' v-.tuuuy!23C8HrH   N)r\   r]   r^   rL   )r\   r]   rk   r>   r^   r>   )rC   rD   rE   r[   rF   rd   re   __classcell__rj   s   @rI   rQ   rQ   B   sk         
 68O7777             rH   r=    defaultz1.3.0r   sincec                  z    e Zd Zd?dZ ee           edeeej	        e
eeeeef           edgeeeR dd	id@d                                    ZdAdZdBdZe eedhz             edddg          edCd                                                Z edeej	        f           ed eee ed!ee fd"#                    dDd'                        Z!e ed(ee          dEd)                        Z"dFd.Z#ee$dGd/                        Z% ed0e          e$dHd2                        Z& ed3ee'g4          e$dId7                        Z( ed8e          e$dHd9                        Z) ed:ee'g4          e$dId;                        Z*ee$ e+d<d=          dG fd>                                    Z, xZ-S )JPythonInstallationpython'PythonExternalProgram'interpreter'Interpreter'c                4   t          j        | ||           |j        }| j        j        j        j                            t          d                    }t          |t                    s
J d            |d         | _        |d         | _        |d         | _        |d         | _        |j        | _        t           j                            ||j                  | _        t           j                            ||j                  | _        |d         | _        |d         | _        |d	         | _        |d
         | _        | j                            | j        | j        | j        | j         | j!        | j"        | j#        | j$        | j%        | j&        | j'        d           d S )Nrt   for mypyrs   suffixlimited_api_suffixpathsrb   platformis_pypylink_libpython)extension_module
dependencyinstall_sourcesget_install_dirlanguage_versionfoundhas_pathget_pathhas_variableget_variabler|   )(r   __init__rg   r   environmentcoredataoptstoreget_value_forr,   
isinstancer>   rs   r   r   r   r=   r{   r|   r}   r`   platlib_install_pathra   purelib_install_pathrb   r   r   r   methodsupdateextension_module_methoddependency_methodinstall_sources_methodget_install_dir_methodlanguage_version_methodfound_methodhas_path_methodget_path_methodhas_variable_methodget_variable_methodpath_method)rh   r   r   rg   rt   s        rI   r   zPythonInstallation.__init__q   sq   'fkBBB{!-6?MMiX`NaNabb&#&&22
222k*8n"&';"<']
K	$&GLL$H$H!$&GLL$H$H!IZ(I"#34 $ <0#:#: $ <&,, 4 4$
 
 	 	 	 	 	rH   zpython.extension_module)varargsallow_unknownTargs'T.Tuple[str, T.List[BuildTargetSource]]kwargsrP   r^   'SharedModule'c                   d|v r|d         t          d          n0|                    d          pd}|                     d|          |d<   | j        }t	          j        |d          }t          d |D             d           }|t|                     i           }|                                st	          j	        d          |
                    |           t          j        d	d
| j        d| j                   |                    d          }| j        j        j        j                            t)          d                    }|dk    r|r| j        }|                     ||j                  }	d|	 }
t	          j        |d          }|
                    |
           ||d<   t	          j        |d          }|
                    |
           ||d<   |d         }| j        j        j        |                                         rt5          j        |          }|                    | j        d           |                                st	          j	        d          |                    |           |
                    |           | j        j        j        j        |         }t?          d |                                 D                       r|j        !                    dd          }d| d}d| d}t	          j        |d          }| j        j        j        j        "                    d          }|r|
                    |           n|
                    |           ||d<   ||d<   |#                    dd          \  }}|d         |z   |d         f}d|d<   ||d<   |d          dk    r&| j$        st	          j%        | j        d!          rd"|d <   | j        &                    | j        ||tN                    S )#Ninstall_dirr?   z1"subdir" and "install_dir" are mutually exclusiver   Fdependenciesc              3  D   K   | ]}t          |t                    |V  d S r   )r   r   )rW   deps     rI   	<genexpr>z=PythonInstallation.extension_module_method.<locals>.<genexpr>   s2      XXcCAV1W1WXcXXXXXXrH   Python dependency not foundzGpython_installation.extension_module with implicit dependency on pythonz0.63.0z$use python_installation.dependency()rR   zpython.allow_limited_apiz-DPy_LIMITED_API=c_argscpp_argsnativeT)rR   z2Python dependency supporting limited API not foundc              3  F   K   | ]}|                                 d k    V  dS )msvcN)get_id)rW   compilers     rI   r   z=PythonInstallation.extension_module_method.<locals>.<genexpr>   s1      RR88??$$.RRRRRRrH   .z/NODEFAULTLIB:pythonz_d.libz.lib	link_argsdebugr   r   rS   rT   gnu_symbol_visibilityz>=3.9inlineshidden)(r$   pop_get_install_dir_implr   r   extract_as_listnext_dependency_method_implr   rz   appendr(   
single_use
subprojectcurrent_noder   r   r   r   r   r,   r   &_convert_api_version_to_py_version_hexrb   machines
is_windowscopyfind_libpy_windowsenvremove	compilersanyvaluesreplace	get_valuersplitr   version_comparebuild_targetr   )rh   r   r   r?   target_suffixnew_depspydeplimited_api_versionallow_limited_apilimited_api_version_hexlimited_api_definition
new_c_argsnew_cpp_argsfor_machine
pydep_copyr   pyver#python_windows_debug_link_exception%python_windows_release_link_exceptionnew_link_argsis_debugsplits                         rI   r   z*PythonInstallation.extension_module_method   s.    F""h+&'Z[[[ , ZZ))/RF$($>$>uf$M$MF=!+FNCCXXXXXXZ^__=0044E;;== M-.KLLLOOE"""!"k"*DO=c"&"35 5 5 %jj77 ,8AJXXYbc}Y~Y~"$$):$ 3M&*&Q&QReglgt&u&u#%R9P%R%R"!1&(CCJ4555)F8#3FJGGL 6777!-F: !*K+4[ALLNN ,!Yu--
--dhD-III!'')) h"12fggg&&&
+++ (4=GTIRRy?O?O?Q?QRRRRR 4--c2666ZU6Z6Z6Z38Zu8Z8Z8Z5 ( 8 M M+7@ISST[\\ P!(()LMMMM!(()NOOO&3{#!)~  -33C;;}Q%a) "} -})*b00 1!)!9$,!P!P 1.=F*+,,T->fl[[[rH   api_versionr>   detected_versionc                   t          j        d          }|                    |          }|st          d| d          t	          j        |d          rt          d| d          t	          j        |d|z             rt          d| d	| d
          |                    d          }t          |d                   }t          |d                   }d                    ||          S )Nz[0-9]\.[0-9]{1,2}zPython API version invalid: "z".z<3.2z$Python Limited API version invalid: z (must be greater than 3.2)>z%Python Limited API version too high: z (detected )r   r   r   z0x{:02x}{:02x}0000)	recompile	fullmatchr$   r   r   r   intformat)rh   r   r   python_api_version_formatdecimal_matchversion_componentsmajorminors           rI   r   z9PythonInstallation._convert_api_version_to_py_version_hex   s   $&J/C$D$D!1;;KHH 	T"#R;#R#R#RSSS#K88 	t"#r+#r#r#rsss#K7G1GHH 	x"#v;#v#vcs#v#v#vwww(..s33&q)**&q)**#**5%888rH   r9   r4   c                   | j                             |          }t          |                                 |          }| j         j        j        |                             |          }||S |                                }d|d<   t          | j         j	        ||| j
                  }t          d| j         j	        ||          }| j         j        j        |                             ||           |S )NFrequiredr   )r   machine_from_native_kwargr   
_full_pathr   depsgetr   r   r   held_objectr   put)rh   r   r   
identifierr   
new_kwargs
candidatess          rI   r   z*PythonInstallation._dependency_method_impl   s    &@@HH'(9(96BB
',[9==jII?J[[]]
!&
:#D$4$@+z[_[kll
&x1A1Mz[eff!&{377
CHHH
rH   embedzpython_installation.dependencyz0.53.0T.List['TYPE_var']'TYPE_kwargs''Dependency'c                f   t          || j                  \  }}}|rVt          j        dt          j        d          dt          j        |          d           t          d| j        j                  S |                     |          }|r(|	                                st          j        d          |S )Nr4   r   zskipped: featuredisabledr   )r   r   r	   logboldr   r   r   r   r   r   rz   )rh   r   r   r  r  featurer   s          rI   r   z$PythonInstallation.dependency_method  s    
 '=VT_&U&U#(G 	H\49X#6#68JDIV]L^L^`jkkk%h0@0LMMM..v66C M		 M-.KLLLJrH   install_dataz#python_installation.install_sourcesrA   z0.60.0)r   ,T.Tuple[T.List[T.Union[str, mesonlib.File]]]'PyInstallKw''Data'c           
     P   d| j         j        | j        <   |d         pd}|d         |d         n| j        }|                     ||d                   }| j                            | j                            |d                   |t          j	                    d |d|d         	          S )
NTrA   python-runtimer=   r?   r   r   preserve_path)renametaginstall_data_typer!  )
r  r[   rb   r=   r   r   install_data_implsource_strings_to_filesr   FileMode)rh   r   r   r#  r=   r   s         rI   r   z)PythonInstallation.install_sources_method  s     :>(6]#7'7!'!;vf~~00vh7GHH1144T!W==# 1	 2 3 3 	3rH   zpython_installation.install_dirc                    d| j         j        | j        <   |d         |d         n| j        }|                     ||d                   S )NTr=   r?   )r  r[   rb   r=   r   )rh   r   r   r=   s       rI   r   z)PythonInstallation.get_install_dir_method.  sI     :>(6!'!;vf~~))$x0@AAArH   r=   rL   r?   P_OBJ.OptionStringc                    |r
| j         }d}n	| j        }d}t          j        t          j                            ||          t          j                            ||                    S )N{py_purelib}{py_platlib})r   r   P_OBJOptionStringr{   r|   r}   )rh   r=   r?   baserV   s        rI   r   z(PythonInstallation._get_install_dir_impl5  sZ     	",D!DD,D!D!"',,tV"<"<bgll4QW>X>XYYYrH   c                    | j         S r   )rb   rh   r   r   s      rI   r   z*PythonInstallation.language_version_method?  s     |rH   zpython_installation.has_pathT.Tuple[str]c                     |d         | j         v S Nr   )r   r1  s      rI   r   z"PythonInstallation.has_path_methodD  s     Aw$*$$rH   zpython_installation.get_pathoptargs$T.Tuple[str, T.Optional['TYPE_var']]
'TYPE_var'c                t    |\  }}	 | j         |         S # t          $ r ||cY S t          | d          w xY w)Nz is not a valid path name)r   KeyErrorr$   )rh   r   r   	path_namefallbacks        rI   r   z"PythonInstallation.get_path_methodI  sf     #	8	L:i(( 	L 	L 	L#"i#J#J#JKKK	L    77z python_installation.has_variablec                     |d         | j         v S r4  )rs   r1  s      rI   r   z&PythonInstallation.has_variable_methodT  s     Aw$.((rH   z python_installation.get_variablec                t    |\  }}	 | j         |         S # t          $ r ||cY S t          | d          w xY w)Nz is not a valid variable name)rs   r:  r$   )rh   r   r   var_namer<  s        rI   r   z&PythonInstallation.get_variable_methodY  sf     "(	O>(++ 	O 	O 	O#"h#M#M#MNNN	Or=  zPython module path methodz0.50.0c                H    t                                          ||          S r   )rc   r   )rh   r   r   rj   s      rI   r   zPythonInstallation.path_methodd  s     ww""4000rH   )r   r   r   r   )r   r   r   rP   r^   r   )r   r>   r   r>   r^   r>   )r   r9   r^   r4   )r   r  r   r  r^   r  )r   r  r   r  r^   r  )r   r  r   r  r^   r>   )r=   rL   r?   r>   r^   r)  )r   r  r   r  r^   r>   )r   r2  r   r  r^   rL   )r   r7  r   r  r^   r8  ).rC   rD   rE   r   r"   
mod_kwargsr%   r>   r   Filer   r   r   r   r   r   r&   _MOD_KWARGS_DEFAULTABLE_SUBDIR_KW_LIMITED_API_KWr   r   r   r*   r   r)   r    r   _PURE_KW
_SUBDIR_KWr   r'   r   r   r   r   r!   r   r   objectr   r   r   r(   r   r   r   s   @rI   r   r   p   s          < _Z  ^-sS(-Q]_pr  BS  Ue  gr  =s  t  t  t\+wkw;QwSbwwwrvwwW\ W\ W\ xw t  t ! W\r9 9 9 9      _0G9<==67)LL	 	 	 Y ML >= 	 ^NS(-,@AAA\-	-#xAAA 
3 
3 
3  BA
3 \3XzJJB B B KJ YB
Z Z Z Z    X Y ^2C88% % % X 98% ^2C&JJJL L L X KJL ^6<<) ) ) X =<) ^6fXNNNO O O X ONO Z+X661 1 1 1 1 76 X Y1 1 1 1 1rH   r   c                  b    e Zd Z edd          Zd) fdZd*d	Zd+dZed,d            Z	d-dZ
e edeg           ed edeefd           ededd           ed  eee          dg d!"          e                    dd#                    d.d(                                    Z xZS )/PythonModuler   z0.46.0r   r   r^   Nonec                    t                                          |           i | _        | j                            d| j        i           d S )Nfind_installation)rc   r   installationsr   r   rN  )rh   r   rj   s     rI   r   zPythonModule.__init__o  sT    %%%;=!7
 	 	 	 	 	rH   (T.List[mesonlib.ExecutableSerialisation]c                d   | j         j        }g }| j         j        j        j                            t          d                    }|dk    r|S t          t          j	        
                                          s|S |                                }g }ddd}|j        D ]y} ||j                  rg|                    |j        t          j                            |j        |j        t          j                            |j                            f           z|j        D ]V} ||j                  rD|                    |j        t          j                            |j        |j                  f           W|j        D ]W} ||j        d          rD|                    |j        t          j                            |j        |j                  f           Xdd l}	t          j                            | j         j                                        d	          }
t9          |
d
          5 }|                    |	j                            dd	                     d d d            n# 1 swxY w Y   | j         
                                D ]}tC          |t                    r|j	        |j"        d                  rztG          j$        d|          }d|j"        d          d}g }|D ]\  }}|%                    t          j                            |j        |j&                  t          j                            |j        |j'                  f          r|                    |           t9          t          j                            | j         j                                        |          dd          5 }tQ          j)        ||           d d d            n# 1 swxY w Y   |j*        |
|tW          |          gz   }|,                    |dd|j'        |j&        d          }|                    |           |S )Nzpython.bytecompileFisdirrL   c                Z    |                      d          o|                     d          p|S )N)r,  r+  z.py)
startswithendswith)frS  s     rI   should_appendz8PythonModule._get_install_scripts.<locals>.should_append  s/     << @AAbqzzRWGXGXGa\abrH   Tr   zpycompile.pywbzmesonbuild.scriptsrb   rQ   zpython-z-installed.jsonwzutf-8)encodingr   )
py_purelib
py_platlib)verboser#  installdir_map)F)rS  rL   )-r   backendr   r   r   r   r,   r   rQ   r[   r   create_install_datatargetsout_namer   r{   r|   r}   rt   outdirbasenamefnamedatainstall_path_nameinstall_pathinstall_subdirsimportlib.resourcesget_scratch_diropenwrite	resourcesread_binaryrO  r   rg   rv   rw   rU  r`   ra   jsondumpcommandr>   get_executable_serialisation)rh   r`  ri   optlevelinstalldatapy_filesrX  td	importlib	pycompilerW  imanifestmanifest_jsonrV   cmdscripts                     rI   _get_install_scriptsz!PythonModule._get_install_scriptsv  s   "*#/8AOOPYZnPoPoppr>>J(8??AABB 	J1133	c 	c 	c 	c 	c
 $ 	u 	uA}QZ(( uRW\\+:LahXZX_XhXhijipXqXq-r-r sttt! 	i 	iA}Q011 i!4bgll;CUWXWe6f6f ghhh, 	i 	iA}Q0$77 i!4bgll;CUWXWe6f6f ghhh""""GLL!1!=!M!M!O!OQ_``	)T"" 	[aGGI'334H.YYZZZ	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ #**,, 	# 	#A!233 #8I!&QZJ[8\ #F2A66GQVI%6GGG "' 3 3GD!||RW\\+2Dai%P%PRTRYR^R^_j_qsts|R}R}$~ 3%,,T222"',,t'7'C'S'S'U'UW_``bepwxxx 0|}ImQ///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0i9hH"FF ==c4Ue\]\euvu~MM > A A

6"""
s$   #/II"%I",OO	O	br2   c                ^    |j                             |                                            d S r   )install_scriptsextendr  )rh   r  s     rI   postconf_hookzPythonModule.postconf_hook  s+    	  !:!:!<!<=====rH   name_or_pathr>   r@   c                \   |                      d          sd S t          j        d          sd S d| dd           }d|ddg}t          j        |          \  }}}|                                }t          j                            |          r t          j        	                    |d          S d S )N)python2python3py-   -cz;import sysconfig; print(sysconfig.get_config_var('BINDIR'))r   )
rU  shutilwhichr   
Popen_safestripr{   r|   existsr}   )r  verr  _stdout	directorys         rI   _get_win_pythonpathz PythonModule._get_win_pythonpath  s    &&'=>> 	4|D!! 	4$,qrr"$$S$ ]^*3//61LLNN	7>>)$$ 	7<<	84444rH   r\   'ModuleState'display_namer  rL   MaybePythonProgc                   |st          dt          j                  }nt          j        ||          }t          ||          }|                                s;t          j                    r(|                     |          }||}t          |          }|                                s*|dv r&t          j        |d          }t          ||          }|                                rM|                    |          r|S | d}|rt          j	        |          t          j        ||j                   t          |j                  S )Nr  )ext_prog>   r  r  r   z1 is not a valid python or it is missing distutils)location)rQ   r   python_commandr-   
from_entryr   r   r  rd   rz   r	   warningr   r.   rV   )	rh   r\   r  r  r  r   
tmp_python
pythonpath	sanitymsgs	            rI   _find_installation_implz$PythonModule._find_installation_impl  sM    	R*9h6MNNFF(3L,OOJ*<*MMMF<<>> Ah&9&;&; A!55lCC
)#-L2<@@F <<>> Rl6L&L&L,7hOO
.|jQQQ<<>> 	I}}U## I%XXX	 I"1)<<<LU5GHHHH)&+666rH   zpython.find_installationr5  Tr   rM   Fz0.49.0r   rN   z0.51.0)listifyr   r   z0.64.0r   T.Tuple[T.Optional[str]]r   'FindInstallationKw'c           
     F   t          dd          }t          ||j        |          \  }}}|j                            t
          j        d          pg }|d         }	|	pd}
|s|	|	g}|r|d         nd }|rNt          j        d|pddt          j	        d          dt          j
        |          d	           t                      S | j                            |          }|s"|                     ||
||          }|| j        |<   |d
         }g }g }|                                r`|r^|D ][}t!          j        |j        dd| gz             ^}}|j        dk    r|                    |           F|                    |           \d|j        g}|r;|                    d                    d                    |                               |                    d           |                                rW|sU|                    t          j        d          d                    d                    |j                            g           n'|                    t          j	        d                     |r=|                    d           |                    d                    |                     t          j        |  |                                s?|r)t!          j        d                    |pd                    t          |j                  S |rS|r=t!          j        d                    |pdd                    |                              t          |j                  S t7          |t8                    s
J d            t;          j        |          }|d         |_        |S )Nz-Passing "feature" option to find_installationz0.48.0r   r   Programzfound:NOz(disabled by:r   rN   r  zimport z({})z, YES zmodules:z{} not foundz{} is missing modules: {}r   r=   ) r(   r   r   r   lookup_binary_entryr+   HOSTr	   r  redr  r.   rO  r  r  r   r   r  rs  
returncoder   rV   r  r}   r  greenrz   r   rQ   r   r=   MesonBugException)rh   r\   r   r   feature_checkr  r  r  npr<  r  r  r   want_modulesfound_modulesmissing_modulesmodpr  msgs                       rI   rN  zPythonModule.find_installation  s    ##RT\]]&<VUEUWd&e&e#(G  +??@RT\]]cac7+8 	h*B ",r!uu 	0HY 8(DHTNNTceienovewewy|}}}-///#''55 	611%|U]^^F/5D|,i(%'')<<>> 	.l 	.# . . +N?S??+,- -A <1$$#**3////!((----+4fk*B 	?JJv}}TYY|%<%<==>>>

8<<>> 	'/ 	'JJ
5))6==&.9Q9Q+R+RSTTTTJJtx~~&&& 	1JJz"""JJtyy//000#||~~ 	 _-n.C.CLD\T\.].]^^^-fk::: 	 H-.I.P.PQ]Qiaikoktkt  vE  lF  lF  /G  /G  H  H  H-fk:::f&;<<HHjHHHYv&&F .FKMrH   )r   r   r^   rL  )r^   rP  )r  r2   r^   rL  )r  r>   r^   r@   )
r\   r  r  r>   r  r>   r  rL   r^   r  )r\   r  r   r  r   r  r^   r  )rC   rD   rE   r   INFOr   r  r  staticmethodr  r  r*   r%   r>   r&   r'   rL   r
   r#   listrG  evolverN  r   r   s   @rI   rK  rK  k  s       :h))D     / / / /b> > > >    \7 7 7 7B ^.>>>\"	*t%67FFF	*dEBBB	)..tS994QS[cdddH55 Dk Dk Dk  ?> Dk Dk Dk Dk DkrH   rK  r   r   r^   c                n    t          |           }|j                            t          t                     |S r   )rK  r   append_holder_maprQ   r   )r   r  s     rI   
initializer  ,  s.    
{
#
#CO%%&;=OPPPJrH   )r   r   r^   rK  )a
__future__r   r   rq  r{   r  r   typingrv   r   r   r   r   r	   optionsr
   buildr   r   r   r   r   r   r   r   r   r   dependencies.detectr   r   dependencies.pythonr   r   r   r   r   r   r   r-  interpreter.interpreterobjectsr   interpreter.type_checkingr   r   r   interpreterbaser    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   programsr-   r.   TYPE_CHECKINGtyping_extensionsr/   r0   r1   r2   r3   r4   r5   interpreter.interpreterr6   interpreter.kwargsr7   SharedModuleKwinterpreterbase.baseobjectsr8   r9   r;   rK   rP   Unionr  rB  r   rD  rQ   rL   rG  r>   rH  rF  rE  r   rK  r  rG   rH   rI   <module>r     s!   # " " " " " ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !     ) ) ) ) ) ) ) )             ' ' ' ' ' ' W  W  W  W  W  W  W  W  W  W  W  W  W  W  W  W  W  W  W  W - - - - - - N N N N N N N N c c c c c c c c c c b b b b b b b b b b C C C C C C R R R R R R R R R R                         
 % $ $ $ $ $       B B B B B B B B? S88888888########))))))))))));;;;;;TTTTTTTTCCCCCCCC% % % % %i % % %    _   - - - - -N - - - g8:QQRO &
 
  $ % % % 
}m, ,
YY.YYY& & & & &6 & & &R 9VdH-..Yxb111
)M3'JJJ"8c8_== x1 x1 x1 x1 x1/0GH x1 x1 x1v~k ~k ~k ~k ~k? ~k ~k ~kB     rH   