§
    dídß‹  ã                  ó†  — d dl mZ 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 ddlmZmZmZ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# ddl m$Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddlm5Z5 ddl6m7Z7m8Z8 e
j9        rid dl:m;Z; ddlm<Z< ddlm=Z=m>Z> ddlm?Z?m@Z@ ddlAmBZB ddlmCZC ddl mDZD ddlEmFZF ddlGmHZHmIZI  G d„ de;¦  «        ZJ G d „ d!e;¦  «        ZK G d"„ d#eF¦  «        ZLe?ZMneNZMd$hZOeO P                    e¦  «         eOd%d&hz  ZO G d'„ d(eM¦  «        ZQ G d)„ d*eeQ¦  «        ZR G d+„ d,eeQ¦  «        ZS G d-„ d.eeQ¦  «        ZTdId;„ZUd<ZV G d=„ d>e7¦  «        ZW e1d?eXe'f¦  «        ZY e1d$eZd@¬A¦  «        Z[ G dB„ dCe!¦  «        Z\ G dD„ dEe¦  «        Z]dJdH„Z^dS )Ké    )Úannotations)ÚPathNé   )ÚExtensionModuleÚ
ModuleInfoé   )Úmesonlib)Úmlog)ÚUserFeatureOption)Úknown_shmod_kwargs)ÚDependencyMethodsÚPkgConfigDependencyÚNotFoundDependencyÚSystemDependencyÚExtraFrameworkDependency)Úprocess_method_kw)Úget_dep_identifier)Údetect_cpu_family)ÚExternalProgramHolderÚextract_required_kwargÚpermitted_dependency_kwargs)Ú
primitives)ÚNoneTypeÚPRESERVE_PATH_KW)Ú	noPosargsÚnoKwargsÚpermittedKwargsÚContainerTypeInfoÚInvalidArgumentsÚtyped_pos_argsÚtyped_kwargsÚ	KwargInfoÚ
FeatureNewÚFeatureNewKwargsÚdisablerIfNotFound)ÚMachineChoice)ÚExternalProgramÚNonExistingExternalProgram)Ú	TypedDict)ÚModuleState)ÚSharedModuleÚData)ÚExternalDependencyÚ
Dependency)ÚDependencyGenerator)ÚEnvironment)ÚInterpreter)ÚExtractRequired)ÚTYPE_varÚTYPE_kwargsc                  ót   — 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S )ÚPythonIntrospectionDictzT.Dict[str, str]Úinstall_pathsÚboolÚis_pypyÚis_venvÚlink_libpythonÚsysconfig_pathsÚpathsÚstrÚplatformÚsuffixÚ	variablesÚversionN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú;/usr/lib/python3/dist-packages/mesonbuild/modules/python.pyr6   r6   8   sy   € € € € € € à'Ð'Ð'Ñ'Øˆˆ‰Øˆˆ‰ØÐÐÑØ)Ð)Ð)Ñ)ØÐÐÑØˆˆ‰Øˆˆ‰Ø#Ð#Ð#Ñ#Øˆˆ‰ˆˆrI   r6   c                  ó.   — e Zd ZU ded<   ded<   ded<   dS )ÚPyInstallKwúT.Optional[bool]Úpurer>   ÚsubdirúT.Optional[str]Úinstall_tagNrC   rH   rI   rJ   rL   rL   E   s3   € € € € € € àÐÐÑØˆˆ‰Ø$Ð$Ð$Ñ$Ð$Ð$rI   rL   c                  ó.   — e Zd ZU ded<   ded<   ded<   dS )ÚFindInstallationKwr8   ÚdisablerzT.List[str]ÚmodulesrM   rN   NrC   rH   rI   rJ   rS   rS   K   s3   € € € € € € àˆˆ‰ØÐÐÑØÐÐÑÐÐrI   rS   rO   Úname_prefixÚname_suffixc                  ó   — e Zd Zdd„ZdS )Ú_PythonDependencyBaseÚpython_holderú'PythonInstallation'Úembedr8   c                óò   — || _         |j        | _        |j        | _        |j        | _        |j        | _        |j        p|| _        d | _        t          j        | j        d¦  «        r	d| _	        d S d| _	        d S )Nú>= 3.0é   r   )
r\   rB   r?   rA   r=   r;   Úinfor	   Úversion_compareÚmajor_version)ÚselfrZ   r\   s      rJ   Ú__init__z_PythonDependencyBase.__init__]   s}   € ØˆŒ
Ø)Ô1ˆŒØ%Ô.ˆŒØ&Ô0ˆŒØ"Ô(ˆŒ
ð ,Ô:ÐC¸eˆÔØ26ˆŒ	ÝÔ# D¤L°(Ñ;Ô;ð 	#Ø!"ˆDÔÐÐà!"ˆDÔÐÐrI   N)rZ   r[   r\   r8   ©rD   rE   rF   rd   rH   rI   rJ   rY   rY   [   s(   € € € € € ð#ð #ð #ð #ð #ð #rI   rY   c                  ó   — e Zd Z	 ddd„ZdS )ÚPythonPkgConfigDependencyFÚnamer>   Úenvironmentú'Environment'ÚkwargsúT.Dict[str, T.Any]Úinstallationr[   Úlibpcr8   c                óž  — |rt          j        d|›d�¦  «         nt          j        d|›d�¦  «         t          j        | |||¦  «         t                               | ||                     dd¦  «        ¦  «         |r$| j        st          j        d| j        › d�¦  «         | j        s#t          j
        | j        d¦  «        rg | _        d S d S d S )	NzSearching for z via pkgconfig lookup in LIBPCz/ via fallback pkgconfig lookup in default pathsr\   Fz"python-zT" could not be found in LIBPC, this is likely due to a relocated python installationz< 3.8)r
   Údebugr   rd   rY   ÚgetÚis_foundrB   r;   r	   ra   Ú	link_args)rc   rh   ri   rk   rm   rn   s         rJ   rd   z"PythonPkgConfigDependency.__init__u   s  € ð ð 	aÝŒJÐN¨ÐNÐNÐNÑOÔOÐOÐOåŒJÐ_¨Ð_Ð_Ð_Ñ`Ô`Ð`åÔ$ T¨4°¸fÑEÔEÐEÝ×&Ò& t¨\¸6¿:º:ÀgÈuÑ;UÔ;UÑVÔVÐVàð 	F˜œð 	FÝŒJð  E $¤,ð  Eð  Eð  Eñ  Fô  Fð  Fð Ô"ð 	 ¥xÔ'?ÀÄÈgÑ'VÔ'Vð 	 ØˆDŒNˆNˆNð	 ð 	 ð 	 ð 	 rI   N)F)
rh   r>   ri   rj   rk   rl   rm   r[   rn   r8   re   rH   rI   rJ   rg   rg   s   s2   € € € € € ð  %ð ð  ð  ð  ð  ð  ð  rI   rg   c                  ó   — e Zd Zdd	„Zd
S )ÚPythonFrameworkDependencyrh   r>   ri   rj   rk   rl   rm   r[   c                ó”   — t          j        | |||¦  «         t                               | ||                     dd¦  «        ¦  «         d S )Nr\   F)r   rd   rY   rq   ©rc   rh   ri   rk   rm   s        rJ   rd   z"PythonFrameworkDependency.__init__Š   sE   € å Ô)¨$°°kÀ6ÑJÔJÐJÝ×&Ò& t¨\¸6¿:º:ÀgÈuÑ;UÔ;UÑVÔVÐVÐVÐVrI   N©rh   r>   ri   rj   rk   rl   rm   r[   re   rH   rI   rJ   ru   ru   ˆ   s.   € € € € € ðWð Wð Wð Wð Wð WrI   ru   c                  ó6   — e Zd Zdd	„Zdd„Zdd„Zdd„Zdd„ZdS )ÚPythonSystemDependencyrh   r>   ri   rj   rk   rl   rm   r[   c                ó†  — t          j        | |||¦  «         t                               | ||                     dd¦  «        ¦  «         t	          j        ¦   «         r|                      |¦  «         n|                      ||¦  «         | j        sg | _	        | j
                             dd|| j        ¬¦  «        s	d| _        d S d S )Nr\   FzPython.hÚ )Ú
extra_args)r   rd   rY   rq   r	   Ú
is_windowsÚ_find_libpy_windowsÚ_find_libpyr;   rs   Úclib_compilerÚ
has_headerÚcompile_argsrr   rw   s        rJ   rd   zPythonSystemDependency.__init__’   sÊ   € åÔ! $¨¨k¸6ÑBÔBÐBÝ×&Ò& t¨\¸6¿:º:ÀgÈuÑ;UÔ;UÑVÔVÐVåÔÑ Ô ð 	8Ø×$Ò$ [Ñ1Ô1Ð1Ð1à×Ò˜\¨;Ñ7Ô7Ð7àÔ"ð 	 àˆDŒNàÔ!×,Ò,¨Z¸¸[ÐUYÔUfÐ,ÑgÔgð 	"Ø!ˆDŒMˆMˆMð	"ð 	"rI   rZ   ÚreturnÚNonec                ó†  — |j         rL| j        dk    rd}nd}t          j                             | j                             d¦  «        d¦  «        }|g}n>d| j        › �}d| j        v r|| j        d         z  }d| j        v r|| j        d         z  }g }| j         	                    |||¦  «        }|�|| _
        |d up| j         | _        t          j        | j                             d	¦  «        | j                             d
¦  «        | j                             d¦  «        g¦  «        }| xj        d„ |D ¦   «         z  c_        d S )Nr_   zpypy3-czpypy-cÚbaseÚbinÚpythonÚ	DEBUG_EXTÚABIFLAGSÚ	INCLUDEPYÚincludeÚplatincludec                ó   — g | ]	}|¯d |z   ‘Œ
S ©z-IrH   ©Ú.0Úpaths     rJ   ú
<listcomp>z6PythonSystemDependency._find_libpy.<locals>.<listcomp>¾   ó!   € ÐHÐHÐH¨dÀ4ÐH˜d T™kÐHÐHÐHrI   )r9   rb   Úosr“   ÚjoinrA   rq   rB   r�   Úfind_libraryrs   r;   rr   r	   Ú
OrderedSetr=   rƒ   )rc   rZ   ri   ÚlibnameÚlibdirÚlibdirsÚlargsÚ	inc_pathss           rJ   r€   z"PythonSystemDependency._find_libpy£   sZ  € ØÔ ð 	ØÔ! QÒ&Ð&Ø#��à"�Ý”W—\’\ $¤.×"4Ò"4°VÑ"<Ô"<¸eÑDÔDˆFØ�hˆGˆGà-˜tœ|Ð-Ð-ˆGØ˜dœnÐ,Ð,Ø˜4œ>¨+Ô6Ñ6�Ø˜Tœ^Ð+Ð+Ø˜4œ>¨*Ô5Ñ5�ØˆGàÔ"×/Ò/°¸ÀgÑNÔNˆØÐØ"ˆDŒNà TÐ)ÐD°Ô1DÐ-DˆŒåÔ'ØŒN×Ò˜{Ñ+Ô+ØŒJ�NŠN˜9Ñ%Ô%ØŒJ�NŠN˜=Ñ)Ô)ð)+ñ ,ô ,ˆ	ð
 	ÐÔÐHÐH°iÐHÑHÔHÑHÐÔÐÐrI   rP   c                óH  — | j         dk    rb| j                             d¦  «        }|                     d¦  «        rdS |                     d¦  «        rdS t	          j        d|›d�¦  «         d S | j         d	k    rdS | j         d
v rdS t	          j        d| j         ›�¦  «         d S )NÚmingwÚCCÚx86_64Ú64)Úi686Úi386Ú32z#MinGW Python built with unknown CC z, please file a bugÚwin32>   ú	win-amd64Úwin64z Unknown Windows Python platform )r?   rA   rq   Ú
startswithr
   Úlog)rc   Úpyccs     rJ   Ú_get_windows_python_archz/PythonSystemDependency._get_windows_python_archÀ   s½   € ØŒ=˜GÒ#Ð#Ø”>×%Ò% dÑ+Ô+ˆDØ�Š˜xÑ(Ô(ð Ø�tØ—’Ð!1Ñ2Ô2ð Ø�tå”ÐZ¸tÐZÐZÐZÑ[Ô[Ð[Ø�tØŒ]˜gÒ%Ð%Ø�4ØŒ]Ð4Ð4Ð4Ø�4ÝŒÐE°D´MÐEÐEÑFÔFÐFØˆtrI   úT.Optional[T.List[str]]c                ó&  — | j                              d¦  «        �r| j                             d¦  «        }| j                             d¦  «        }| j                             dd¦  «        }| j        rt          d¦  «        d|› d�z  }n|                      ¦   «         }|j        d	k    rJ|d
k    r|dk    rt          d¦  «        }nD|d
k    rt          d|› d�¦  «        }n*t          d|› d�¦  «        }nt          d¦  «        d|› d�z  }t          | j                             d¦  «        ¦  «        |z  }n†| j         dk    rg| j        r| j                             d¦  «        }n| j                             d¦  «        }t          | j                             d¦  «        ¦  «        |z  }nt          j	        d¦  «        ‚| 
                    ¦   «         s6t          j        d                     t          |¦  «        ¦  «        ¦  «         d S t          |¦  «        gS )NÚwinÚpy_version_nodotÚpy_version_shortÚimplementation_lowerr‰   ÚlibsÚ	libpythonz.aÚgccÚpypyz3.8zlibpypy3-c.dllÚlibpypyz-c.dllz.dllz.libÚbase_prefixr    ÚLIBRARYÚ	LDLIBRARYÚLIBDIRzDOn a Windows path, but the OS doesn't appear to be Windows or MinGW.z#Could not find Python3 library {!r})r?   rª   rA   rq   Ústaticr   Úget_compilerÚidr	   ÚMesonBugExceptionÚexistsr
   r«   Úformatr>   )rc   ÚvernumÚverdotÚ	imp_lowerÚlibpathÚcompÚlibrš   s           rJ   Ú_get_windows_link_argsz-PythonSystemDependency._get_windows_link_argsÑ   s  € ØŒ=×#Ò# EÑ*Ô*ñ 	YØ”^×'Ò'Ð(:Ñ;Ô;ˆFØ”^×'Ò'Ð(:Ñ;Ô;ˆFØœ×*Ò*Ð+AÀ8ÑLÔLˆIØŒ{ð CÝ˜v™,œ,Ð)?°VÐ)?Ð)?Ð)?Ñ?��à×(Ò(Ñ*Ô*�Ø”7˜eÒ#Ð#Ø  FÒ*Ð*¨v¸ª¨å"&Ð'7Ñ"8Ô"8˜˜Ø" fÒ,Ð,Ý"&Ð'?°Ð'?Ð'?Ð'?Ñ"@Ô"@˜˜å"&Ð'<°Ð'<Ð'<Ð'<Ñ"=Ô"=˜˜å" 6™lœlÐ-B°fÐ-BÐ-BÐ-BÑB�Gå�t”~×)Ò)¨-Ñ8Ô8Ñ9Ô9¸GÑCˆCˆCØŒ]˜gÒ%Ð%ØŒ{ð :Øœ.×,Ò,¨YÑ7Ô7��àœ.×,Ò,¨[Ñ9Ô9�Ý�t”~×)Ò)¨(Ñ3Ô3Ñ4Ô4°wÑ>ˆCˆCåÔ,ØWñYô Yð Yà�zŠz‰|Œ|ð 	ÝŒHÐ:×AÒAÅ#ÀcÁ(Ä(ÑKÔKÑLÔLÐLØ�4Ý�C‘”ˆzÐrI   Úenvc           	     óJ  — |                       ¦   «         }|€	d| _        dS t          |j        j        j        ¦  «        }|dk    rd}nB|dk    rd}n9t          j        d|›d�t          j        | j	        ¦  «        ¦  «         d| _        dS ||k    r=t          j        d	t          j        | j	        ¦  «        d
|› d|› d�¦  «         d| _        dS |  
                    ¦   «         }|€	d| _        dS || _        t          j        | j                             d¦  «        | j                             d¦  «        | j                             d¦  «        g¦  «        }| xj        d„ |D ¦   «         z  c_        |dk    r+t          j        | j        d¦  «        r| xj        dgz  c_        d| _        dS )z{
        Find python3 libraries on Windows and also verify that the arch matches
        what we are building for.
        NFÚx86r¦   r¢   r£   zUnknown architecture z forÚNeedzfor z-bit, but found z-bitrŒ   r�   rŽ   c                ó   — g | ]	}|¯d |z   ‘Œ
S r�   rH   r‘   s     rJ   r”   z>PythonSystemDependency._find_libpy_windows.<locals>.<listcomp>  r•   rI   z<3.12z
-DMS_WIN64T)r­   rr   r   ÚcoredataÚ	compilersÚhostr
   r«   Úboldrh   rÉ   rs   r	   r™   rA   rq   r=   rƒ   ra   rB   )rc   rÊ   ÚpyarchÚarchr�   rž   s         rJ   r   z*PythonSystemDependency._find_libpy_windowsô   s¿  € ð
 ×.Ò.Ñ0Ô0ˆØˆ>Ø!ˆDŒMØˆFÝ  ¤Ô!7Ô!<Ñ=Ô=ˆØ�5Š=ˆ=ØˆDˆDØ�XÒÐØˆDˆDõ ŒHÐ9¨TÐ9Ð9Ð9Ý”Y˜tœyÑ)Ô)ñ+ô +ð +à!ˆDŒMØˆFà�6Š>ˆ>ÝŒH�V�TœY t¤yÑ1Ô1Ð3\¸$Ð3\Ð3\ÐPVÐ3\Ð3\Ð3\Ñ]Ô]Ð]Ø!ˆDŒMØˆFà×+Ò+Ñ-Ô-ˆØˆ=Ø!ˆDŒMØˆFØˆŒåÔ'ØŒN×Ò˜{Ñ+Ô+ØŒJ�NŠN˜9Ñ%Ô%ØŒJ�NŠN˜=Ñ)Ô)ð)+ñ ,ô ,ˆ	ð
 	ÐÔÐHÐH°iÐHÑHÔHÑHÐÔð �TŠ>ˆ>�hÔ6°t´|ÀWÑMÔMˆ>ØÐÔ , Ñ/ÐÔàˆŒˆˆrI   Nrx   )rZ   r[   ri   rj   r„   r…   )r„   rP   )r„   r®   )rÊ   rj   r„   r…   )rD   rE   rF   rd   r€   r­   rÉ   r   rH   rI   rJ   rz   rz   �   s}   € € € € € ð"ð "ð "ð "ð"Ið Ið Ið Ið:ð ð ð ð"!ð !ð !ð !ðF,ð ,ð ,ð ,ð ,ð ,rI   rz   rÊ   rj   Úfor_machineú'MachineChoice'rk   rl   ÚmethodsúT.List[DependencyMethods]rm   r[   r„   úT.List['DependencyGenerator']c           	     ó4  ‡— |                      dd¦  «        }g }|j                              d¦  «        p|j        }t          j        |v r¤|j                              d¦  «        Š|rt          j        |j        d¦  «        rdnd}d|› |› �}	dˆfd„}
|                     t          j	        |
|	| ||¦  «        ¦  «         ‰�0|                     t          j	        t          |	| ||¦  «        ¦  «         t          j        |v r0|                     t          j	        t          d| ||¦  «        ¦  «         t          j        |v r_|                     ¦   «         }t          j        |d¦  «        rdg|d<   |                     t          j	        t          d| ||¦  «        ¦  «         |S )Nr\   FÚ	LDVERSIONÚLIBPCz>=3.8z-embedr|   zpython-rh   r>   rÊ   rj   rk   rl   rm   r[   r„   ú'ExternalDependency'c                ód  •— ‰st          d|¦  «        S t          j                             dd ¦  «        }t          j                             dd ¦  «        }‰t          j        d<   	 t	          | |||d¦  «        d„ } |d|¦  «          |d|¦  «         S # d„ } |d|¦  «          |d|¦  «         w xY w)Nr‰   ÚPKG_CONFIG_LIBDIRÚPKG_CONFIG_PATHTc                óf   — |�|t           j        | <   d S | t           j        v rt           j        | = d S d S ©N)r–   Úenviron)rh   Úvalues     rJ   Úset_envz?python_factory.<locals>.wrap_in_pythons_pc_dir.<locals>.set_env>  s?   € ØÐ(Ø+0�œ
 4Ñ(Ð(Ð(Ø¥¤Ð+Ð+ÝœJ tÐ,Ð,Ð,ð ,Ð+rI   )r   r–   rã   Úpoprg   )rh   rÊ   rk   rm   Úold_pkg_libdirÚold_pkg_pathrå   Ú
pkg_libdirs          €rJ   Úwrap_in_pythons_pc_dirz.python_factory.<locals>.wrap_in_pythons_pc_dir2  så   ø€ àð 9å)¨(°CÑ8Ô8Ð8åœZŸ^š^Ð,?ÀÑFÔFˆNÝœ:Ÿ>š>Ð*;¸TÑBÔBˆLØ.8�BŒJÐ*Ñ+ð	9Ý0°°s¸FÀLÐRVÑWÔWð-ð -ð -ð
 �Ð+¨^Ñ<Ô<Ð<Ø�Ð)¨<Ñ8Ô8Ð8Ð8øð-ð -ð -ð
 �Ð+¨^Ñ<Ô<Ð<Ø�Ð)¨<Ñ8Ô8Ð8Ð8øøøs   Á$B ÂB/r‰   z>= 3z/Library/Frameworksr=   ÚPython)
rh   r>   rÊ   rj   rk   rl   rm   r[   r„   rÝ   )rq   rA   rB   r   Ú	PKGCONFIGr	   ra   ÚappendÚ	functoolsÚpartialrg   ÚSYSTEMrz   ÚEXTRAFRAMEWORKÚcopyru   )rÊ   rÕ   rk   r×   rm   r\   Ú
candidatesÚpkg_versionÚ	pkg_embedÚpkg_namerê   Únkwargsré   s               @rJ   Úpython_factoryrø   #  s»  ø€ ð
 �JŠJ�w Ñ&Ô&€EØ02€JØÔ(×,Ò,¨[Ñ9Ô9ÐQ¸\Ô=Q€KåÔ" gÐ-Ð-Ø!Ô+×/Ò/°Ñ8Ô8ˆ
Ø %Ði­(Ô*BÀ<ÔCWÐY`Ñ*aÔ*aÐi�H�HÐgiˆ	Ø5˜[Ð5¨)Ð5Ð5ˆð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð( 	×Ò�)Ô+Ð,BÀHÈcÐSYÐ[gÑhÔhÑiÔiÐið Ð!Ø×Ò�iÔ/Õ0IÈ8ÐUXÐZ`ÐbnÑoÔoÑpÔpÐpåÔ 7Ð*Ð*Ø×Ò�)Ô+Õ,BÀHÈcÐSYÐ[gÑhÔhÑiÔiÐiåÔ'¨7Ð2Ð2Ø—+’+‘-”-ˆÝÔ# K°Ñ8Ô8ð 	7ð !6Ð6ˆG�GÑØ×Ò�)Ô+Õ,EÀxÐQTÐV]Ð_kÑlÔlÑmÔmÐmàÐrI   aM  import os.path
import sysconfig
import json
import sys
import distutils.command.install

def get_distutils_paths(scheme=None, prefix=None):
    import distutils.dist
    distribution = distutils.dist.Distribution()
    install_cmd = distribution.get_command_obj('install')
    if prefix is not None:
        install_cmd.prefix = prefix
    if scheme:
        install_cmd.select_scheme(scheme)
    install_cmd.finalize_options()
    return {
        'data': install_cmd.install_data,
        'include': os.path.dirname(install_cmd.install_headers),
        'platlib': install_cmd.install_platlib,
        'purelib': install_cmd.install_purelib,
        'scripts': install_cmd.install_scripts,
    }

# On Debian derivatives, the Python interpreter shipped by the distribution uses
# a custom install scheme, deb_system, for the system install, and changes the
# default scheme to a custom one pointing to /usr/local and replacing
# site-packages with dist-packages.
# See https://github.com/mesonbuild/meson/issues/8739.
# Until version 3.10.2-6, Debian only patched distutils, not sysconfig.

if 'deb_system' in distutils.command.install.INSTALL_SCHEMES:
    # Debian systems before setuptools-bundled distutils was used by default
    paths = get_distutils_paths(scheme='deb_system')
    install_paths = get_distutils_paths(scheme='deb_system', prefix='')
else:
    if 'deb_system' in sysconfig.get_scheme_names():
        # Use Debian's custom deb_system scheme (with our prefix)
        scheme = 'deb_system'
    elif sys.version_info >= (3, 10):
        scheme = sysconfig.get_default_scheme()
    else:
        scheme = sysconfig._get_default_scheme()
    paths = sysconfig.get_paths(scheme=scheme)
    empty_vars = {'base': '', 'platbase': '', 'installed_base': ''}
    install_paths = sysconfig.get_paths(vars=empty_vars, scheme=scheme)

def links_against_libpython():
    from distutils.core import Distribution, Extension
    cmd = Distribution().get_command_obj('build_ext')
    cmd.ensure_finalized()
    return bool(cmd.get_libraries(Extension('dummy', [])))

variables = sysconfig.get_config_vars()
variables.update({'base_prefix': getattr(sys, 'base_prefix', sys.prefix)})

if sys.version_info < (3, 0):
    suffix = variables.get('SO')
elif sys.version_info < (3, 8, 7):
    # https://bugs.python.org/issue?@action=redirect&bpo=39825
    from distutils.sysconfig import get_config_var
    suffix = get_config_var('EXT_SUFFIX')
else:
    suffix = variables.get('EXT_SUFFIX')

print(json.dumps({
  'variables': variables,
  'paths': paths,
  'sysconfig_paths': sysconfig.get_paths(),
  'install_paths': install_paths,
  'version': sysconfig.get_python_version(),
  'platform': sysconfig.get_platform(),
  'is_pypy': '__pypy__' in sys.builtin_module_names,
  'is_venv': sys.prefix != variables['base_prefix'],
  'link_libpython': links_against_libpython(),
  'suffix': suffix,
}))
c                  ó@   ‡ — e Zd Z	 	 ddˆ fd„Zdd„Zddd„Zdd„Zˆ xZS )ÚPythonExternalProgramNrh   r>   Úcommandr®   Úext_progúT.Optional[ExternalProgram]c           
     óÄ   •— |€%t          ¦   «                              ||d¬¦  «         n|| _        |j        | _        |j        | _        i dddi i di ddœ	| _        d| _        d S )NT)rû   ÚsilentFÚsentinalz0.0)	r7   r9   r:   r;   r<   r=   r?   rA   rB   )Úsuperrd   rh   rû   r“   r`   rN   )rc   rh   rû   rü   Ú	__class__s       €rJ   rd   zPythonExternalProgram.__init__«  s}   ø€ àÐÝ‰GŒG×Ò˜T¨7¸4ÐÑ@Ô@Ð@Ð@àˆDŒIØ#Ô+ˆDŒLØ œˆDŒIð  ØØØ#Ø!ØØ"ØØð
0
ð 
0
ˆŒ	ð ˆŒ	ˆ	ˆ	rI   rB   r„   r8   c                ó†   — | j         dk    rt          j        |d¦  «        S | j         dk    rt          j        |d¦  «        S dS )NÚpython2z< 3.0Úpython3r^   T)rh   r	   ra   )rc   rB   s     rJ   Ú_check_versionz$PythonExternalProgram._check_versionÅ  sG   € ØŒ9˜	Ò!Ð!ÝÔ+¨G°WÑ=Ô=Ð=ØŒY˜)Ò#Ð#ÝÔ+¨G°XÑ>Ô>Ð>ØˆtrI   ÚstateúT.Optional['ModuleState']c                ób  — ddl m}  |dddd¬¦  «        5 }|j        }|                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         |gz   }t          j        |¦  «        \  }}}t          j	        |¦  «         	 t          j        |¦  «        }	n—# t          j        $ r… d }	t          j        dt          |j        ¦  «        |j        fz  ¦  «         t          j        d	¦  «         t          j        |¦  «         t          j        d
¦  «         t          j        |¦  «         Y nw xY w|	�m|                      |	d         ¦  «        rRt'          j        d|	¦  «        | _        |                      |d¦  «        | _        |                      |d¦  «        | _        dS dS )Nr   )ÚNamedTemporaryFilez.pyFÚwzutf-8)r@   ÚdeleteÚmodeÚencodingz.Could not introspect Python (%s): exit code %dzProgram stdout:
zProgram stderr:
rB   r6   ÚplatlibÚpurelibT)Útempfiler
  rh   ÚwriteÚINTROSPECT_COMMANDÚget_commandr	   Ú
Popen_safer–   ÚunlinkÚjsonÚloadsÚJSONDecodeErrorr
   rp   r>   ÚargsÚ
returncoder  ÚTÚcastr`   Ú	_get_pathr  r  )
rc   r  r
  ÚtfÚtmpfilenameÚcmdÚpÚstdoutÚstderrr`   s
             rJ   ÚsanityzPythonExternalProgram.sanityÌ  së  € à/Ð/Ð/Ð/Ð/Ð/ØÐ u°UÀÈwÐWÑWÔWð 	)Ð[]Øœ'ˆKØ�HŠHÕ'Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð ×ÒÑ Ô  K =Ñ0ˆÝ$Ô/°Ñ4Ô4Ñˆˆ6�6Ý
Œ	�+ÑÔÐð	Ý”:˜fÑ%Ô%ˆDˆDøÝÔ#ð 	ð 	ð 	ØˆDÝŒJÐGÍ3ÈqÌvÉ;Ì;ÐXYÔXdÐJeÑeÑfÔfÐfÝŒJÐ*Ñ+Ô+Ð+ÝŒJ�vÑÔÐÝŒJÐ*Ñ+Ô+Ð+ÝŒJ�vÑÔÐÐÐð	øøøð Ð × 3Ò 3°D¸´OÑ DÔ DÐÝœÐ8¸$Ñ?Ô?ˆDŒIØŸ>š>¨%°Ñ;Ô;ˆDŒLØŸ>š>¨%°Ñ;Ô;ˆDŒLØ�4à�5s$   –"AÁAÁAÂB) Â)BD=Ä<D=Úkeyr…   c                ó  — | j         d         |         dd …         }|s|S |                     |› d�d¬¦  «        }|r1|                     dd¬¦  «        rt          j        d|› d�¦  «        ‚|S |                     d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 )Nr7   r   Údirr‰   )ÚmoduleÚinstall_envzpython.z1dir and python.install_env are mutually exclusiveÚautor:   ÚvenvÚsystemrA   ÚprefixzDpython.install_env cannot be set to "venv" unless you are in a venv!r<   )r`   Ú
get_optionÚis_user_defined_optionr	   ÚMesonExceptionr–   r“   r—   )rc   r  r&  Úrel_pathrä   r*  s         rJ   r  zPythonExternalProgram._get_pathç  s7  € Ø”9˜_Ô-¨cÔ2°1°2°2Ô6ˆØð 	àˆOØ× Ò  C   °XÐ Ñ>Ô>ˆØð 	Ø×+Ò+¨MÀ(Ð+ÑKÔKð pÝÔ-Ð.n¸Ð.nÐ.nÐ.nÑoÔoÐoØˆLà×&Ò& }¸XÐ&ÑFÔFˆØ˜&Ò Ð Ø$(¤I¨iÔ$8ÐF˜&˜&¸hˆKà˜(Ò"Ð"Ý”w—|’| D¤I¨kÔ$:¸8Ô$DÀhÑOÔOˆHˆHØ˜FÒ"Ð"Ø”9˜YÔ'ð vÝÔ-Ð.tÑuÔuÐuà”yÐ!2Ô3°CÔ8ˆHàˆrI   )NN)rh   r>   rû   r®   rü   rý   )rB   r>   r„   r8   râ   )r  r  r„   r8   )r  r  r&  r>   r„   r…   )rD   rE   rF   rd   r  r%  r  Ú__classcell__©r  s   @rJ   rú   rú   ª  s‰   ø€ € € € € ØEIØ9=ðð ð ð ð ð ð ð4ð ð ð ðð ð ð ð ð6ð ð ð ð ð ð ð rI   rú   rN   r|   ©Údefaultc                  ó  ‡ — e Zd Zd7d„Z ee¦  «        d8d„¦   «         Zd9d„Ze ee	dhz  ¦  «         e
dddg¦  «        ed:d„¦   «         ¦   «         ¦   «         ¦   «         Z edeej        f¬¦  «         edeee edeefd¬¦  «        ¦  «        d;d„¦   «         ¦   «         Ze edee¦  «        d<d!„¦   «         ¦   «         Zd=d&„Zeed>d'„¦   «         ¦   «         Z ed(e¦  «        ed?d*„¦   «         ¦   «         Z ed+eeg¬,¦  «        ed@d/„¦   «         ¦   «         Z ed0e¦  «        ed?d1„¦   «         ¦   «         Z ed2eeg¬,¦  «        ed@d3„¦   «         ¦   «         Z ee e!d4d5¦  «        d>ˆ fd6„¦   «         ¦   «         ¦   «         Z"ˆ xZ#S )AÚPythonInstallationr‰   ú'PythonExternalProgram'Úinterpreterú'Interpreter'c                ó  — t          j        | ||¦  «         |j        }| j        j        j                             t          j        d¦  «        ¦  «        }t          |t          ¦  «        s
J 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 )Nr.  zfor mypyrA   r@   r=   rB   r?   r9   r;   )Úextension_moduleÚ
dependencyÚinstall_sourcesÚget_install_dirÚlanguage_versionÚfoundÚhas_pathÚget_pathÚhas_variableÚget_variabler“   )'r   rd   r`   r:  ri   rÏ   r/  r	   Ú	OptionKeyÚ
isinstancer>   rA   r@   r=   rN   r–   r“   r—   r  Úplatlib_install_pathr  Úpurelib_install_pathrB   r?   r9   r;   r×   Ú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)rc   r‰   r:  r`   r.  s        rJ   rd   zPythonInstallation.__init__  sc  € ÝÔ& t¨V°[ÑAÔAÐAØŒ{ˆØÔ!Ô-Ô6×AÒAÅ(ÔBTÐU]ÑB^ÔB^Ñ_Ô_ˆÝ˜&¥#Ñ&Ô&Ð2Ð2¨
Ñ2Ô2Ð2Ø˜kÔ*ˆŒØ˜8”nˆŒØ˜'”]ˆŒ
Ø”KˆŒ	Ý$&¤G§L¢L°¸¼Ñ$HÔ$HˆÔ!Ý$&¤G§L¢L°¸¼Ñ$HÔ$HˆÔ!Ø˜I”ˆŒØ˜ZÔ(ˆŒØ˜I”ˆŒØ"Ð#3Ô4ˆÔØŒ×ÒØ $Ô <ØÔ0Ø#Ô:Ø#Ô:Ø $Ô <ØÔ&ØÔ,ØÔ,Ø Ô4Ø Ô4ØÔ$ð
ð 
ñ 	ô 	ð 	ð 	ð 	rI   r  úT.List['TYPE_var']rk   ú'TYPE_kwargs'r„   ú'SharedModule'c                ó&  — d|v rd|v rt          d¦  «        ‚nS|                     dd¦  «        }t          |t          ¦  «        st          d¦  «        ‚|                      d|¦  «        |d<   t          j        |d¦  «        }t          d„ |D ¦   «         ¦  «        }|st|                      i ¦  «        }| 	                    ¦   «         st          j
        d	¦  «        ‚|                     |¦  «         t          j        d
d| j        d| j        ¦  «         ||d<   | j                             dd¦  «        \  }}|dxx         |z  cc<   d|d<   ||d<   d|vr&| j        st          j        | j        d¦  «        rd|d<   | j                             d ||¦  «        S )NÚinstall_dirrO   z1"subdir" and "install_dir" are mutually exclusiver|   z#"subdir" argument must be a string.FÚdependenciesc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S râ   )rH  rY   )r’   Údeps     rJ   ú	<genexpr>z=PythonInstallation.extension_module_method.<locals>.<genexpr>0  s-   è è € ÐSÐSÀ3�
 3Õ(=Ñ>Ô>ÐSÐSÐSÐSÐSÐSrI   úPython dependency not foundzGpython_installation.extension_module with implicit dependency on pythonz0.63.0z$use python_installation.dependency()ú.r   r   rV   rW   Úgnu_symbol_visibilityz>=3.9Úinlineshidden)r   ræ   rH  r>   Ú_get_install_dir_implr	   Úextract_as_listÚanyÚ_dependency_method_implrB  r1  rí   r#   Ú
single_useÚ
subprojectÚcurrent_noder@   Úrsplitr9   ra   rB   r:  Úfunc_shared_module)	rc   r  rk   rO   Únew_depsÚ	has_pydepÚpydepÚsplitr@   s	            rJ   rL  z*PythonInstallation.extension_module_method#  sÈ  € à˜FÐ"Ð"Ø˜6Ð!Ð!Ý&Ð'ZÑ[Ô[Ð[ð "ð —Z’Z ¨"Ñ-Ô-ˆFÝ˜f¥cÑ*Ô*ð NÝ&Ð'LÑMÔMÐMà$(×$>Ò$>¸uÀfÑ$MÔ$MˆF�=Ñ!åÔ+¨F°NÑCÔCˆÝÐSÐSÈ(ÐSÑSÔSÑSÔSˆ	Øð 	5Ø×0Ò0°Ñ4Ô4ˆEØ—;’;‘=”=ð MÝÔ-Ð.KÑLÔLÐLØ�OŠO˜EÑ"Ô"Ð"ÝÔ!Ð"kØ"*¨D¬OÐ=cØ"&Ô"3ñ5ô 5ð 5ð "*ˆˆ~Ñð œ×*Ò*¨3°Ñ2Ô2‰ˆˆvØˆQˆˆŒ�5Ñˆˆ‰à "ˆˆ}ÑØ &ˆˆ}Ñà"¨&Ð0Ð0Ø”ð 1Ý!)Ô!9¸$¼,ÈÑ!PÔ!Pð 1à.=ˆFÐ*Ñ+àÔ×2Ò2°4¸¸vÑFÔFÐFrI   r4   r.   c                ób  — | j                              |¦  «        }t          |                      ¦   «         |¦  «        }| j         j        j        |                              |¦  «        }|�|S |                     ¦   «         }d|d<   t          t          j
        t          j        h|¦  «        }t          d| j         j        ¦  «        }t          | j         j        |||| ¦  «        D ]"} |¦   «         }|                     ¦   «         r nŒ#| j         j        j        |                              ||¦  «         |S )NFÚrequiredr‰   )r:  Úmachine_from_native_kwargr   Ú
_full_pathrÏ   Údepsrq   rò   r   r   rì   rð   r   ri   rø   rB  Úput)rc   rk   rÕ   Ú
identifierr^  Ú
new_kwargsr×   Úds           rJ   rg  z*PythonInstallation._dependency_method_implI  s  € ØÔ&×@Ò@ÀÑHÔHˆÝ'¨¯ªÑ(9Ô(9¸6ÑBÔBˆ
àÔÔ'Ô,¨[Ô9×=Ò=¸jÑIÔIˆØˆ?ØˆJà—[’[‘]”]ˆ
Ø!&ˆ
�:ÑÝ#Õ%6Ô%@ÕBSÔBZÐ$[Ð]cÑdÔdˆå,¨X°tÔ7GÔ7SÑTÔTˆÝ Ô 0Ô <¸kÈ:ÐW^Ð`dÑeÔeð 	ð 	ˆAØ�!‘#”#ˆCØ�yŠy‰{Œ{ð Ø�ðð 	ÔÔ!Ô& {Ô3×7Ò7¸
ÀCÑHÔHÐHØˆ
rI   r\   zpython_installation.dependencyz0.53.0ú'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 )Nr.   r‰   zskipped: featureÚdisabledr`  )r   ri  r
   r«   rÒ   r   r:  ri   rg  rB  r	   r1  )rc   r  rk   r|  rr  Úfeaturer^  s          rJ   rM  z$PythonInstallation.dependency_method^  s¬   € õ
 '=¸VÀTÄ_Ñ&UÔ&UÑ#ˆ�(˜GØð 	ÝŒH�\¥4¤9¨XÑ#6Ô#6Ð8JÍDÌIÐV]ÑL^ÔL^Ð`jÑkÔkÐkÝ% h°Ô0@Ô0LÑMÔMÐMà×.Ò.¨vÑ6Ô6ˆCØð M §	¢	¡¤ð MÝÔ-Ð.KÑLÔLÐLØˆJrI   Úinstall_data)Úvarargsz#python_installation.install_sourcesrQ   z0.60.0)Úsinceú,T.Tuple[T.List[T.Union[str, mesonlib.File]]]ú'PyInstallKw'ú'Data'c                ó4  — |d         pd}|d         �|d         n| j         }|                      ||d         ¦  «        }| j                             | j                             |d         ¦  «        |t          j        ¦   «         d |d|j        |d         ¬¦  «        S )	NrQ   zpython-runtimerN   rO   r   r‰   Úpreserve_path)ÚrenameÚtagÚinstall_data_typeÚinstall_dir_namer…  )rN   rd  r:  Úinstall_data_implÚsource_strings_to_filesr	   ÚFileModeÚoptname)rc   r  rk   r‡  rN   r[  s         rJ   rN  z)PythonInstallation.install_sources_methodm  s¡   € ð �]Ô#Ð7Ð'7ˆØ!'¨¤Ð!;ˆv�fŒ~ˆ~ÀÄˆØ×0Ò0°°v¸hÔ7GÑHÔHˆØÔ×1Ò1ØÔ×4Ò4°T¸!´WÑ=Ô=ØÝÔÑÔ¨°#ÈØ(Ô0Ø  Ô1ð 2ñ 3ô 3ð 	3rI   zpython_installation.install_dirr>   c                óh   — |d         �|d         n| j         }|                      ||d         ¦  «        S )NrN   rO   )rN   rd  )rc   r  rk   rN   s       rJ   rO  z)PythonInstallation.get_install_dir_method�  s7   € ð "(¨¤Ð!;ˆv�fŒ~ˆ~ÀÄˆØ×)Ò)¨$°°xÔ0@ÑAÔAÐArI   rN   r8   rO   úP_OBJ.OptionStringc                óÎ   — |r
| j         }d}n	| j        }d}t          j        t          j                             ||¦  «        t          j                             ||¦  «        ¦  «        S )Nz{py_purelib}z{py_platlib})rJ  rI  ÚP_OBJÚOptionStringr–   r“   r—   )rc   rN   rO   r‡   rh   s        rJ   rd  z(PythonInstallation._get_install_dir_impl‡  sZ   € Øð 	"ØÔ,ˆDØ!ˆDˆDàÔ,ˆDØ!ˆDåÔ!¥"¤'§,¢,¨t°VÑ"<Ô"<½b¼g¿lºlÈ4ÐQWÑ>XÔ>XÑYÔYÐYrI   c                ó   — | j         S râ   )rB   ©rc   r  rk   s      rJ   rP  z*PythonInstallation.language_version_method‘  s   € ð Œ|ÐrI   zpython_installation.has_pathúT.Tuple[str]c                ó    — |d         | j         v S ©Nr   )r=   r”  s      rJ   rR  z"PythonInstallation.has_path_method–  s   € ð �AŒw˜$œ*Ð$Ð$rI   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   )rc   r  rk   Ú	path_nameÚfallbacks        rJ   rS  z"PythonInstallation.get_path_method›  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 r—  )rA   r”  s      rJ   rT  z&PythonInstallation.has_variable_method¦  s   € ð �AŒw˜$œ.Ð(Ð(rI   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)rA   r�  r   )rc   r  rk   Úvar_namerŸ  s        rJ   rU  z&PythonInstallation.get_variable_method«  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â   )r  rV  )rc   r  rk   r  s      €rJ   rV  zPythonInstallation.path_method¶  s   ø€ õ ‰wŒw×"Ò" 4¨Ñ0Ô0Ð0rI   )r‰   r9  r:  r;  )r  rW  rk   rX  r„   rY  )rk   r4   r„   r.   )r  rW  rk   rX  r„   rz  )r  r�  rk   r‚  r„   rƒ  )r  rW  rk   r‚  r„   r>   )rN   r8   rO   r>   r„   r�  )r  rW  rk   rX  r„   r>   )r  r•  rk   rX  r„   r8   )r  rš  rk   rX  r„   r›  )$rD   rE   rF   rd   r   Ú
mod_kwargsrL  rg  r%   r   r$   r   rM  r    r>   r	   ÚFiler!   Ú_PURE_KWÚ
_SUBDIR_KWr   r"   r   rN  rO  rd  r   rP  rR  ÚobjectrS  rT  rU  r#   rV  r3  r4  s   @rJ   r8  r8    s  ø€ € € € € ðð ð ð ð: €_�ZÑ Ô ð#Gð #Gð #Gñ !Ô ð#GðJð ð ð ð* Ø€_Ð0°G°9Ñ<Ñ=Ô=ØÐÐ6¸À7À)ÑLÔLØð	ð 	ð 	ñ „Yñ MÔLñ >Ô=ñ Ôð	ð €^�N¨S°(´-Ð,@ÐAÑAÔAØ€\Ø-ØØØØˆ	�- # x ¸ÐAÑAÔAñô ð
3ð 
3ð 
3ñô ñ BÔAð
3ð Ø€\Ð3°X¸zÑJÔJðBð Bð Bñ KÔJñ „YðBðZð Zð Zð Zð Øðð ð ñ „Xñ „Yðð €^Ð2°CÑ8Ô8Øð%ð %ð %ñ „Xñ 9Ô8ð%ð €^Ð2°CÀ&ÀÐJÑJÔJØðLð Lð Lñ „Xñ KÔJðLð €^Ð6¸Ñ<Ô<Øð)ð )ð )ñ „Xñ =Ô<ð)ð €^Ð6¸ÀfÀXÐ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ð 1rI   r8  c                  óR  ‡ — e Zd Z edd¦  «        Zd$ˆ f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„   r…   c                óš   •— t          ¦   «                              |¦  «         i | _        | j                             d| j        i¦  «         d S )NÚfind_installation)r  rd   Úinstallationsr×   rK  r­  )rc   r:  r  s     €rJ   rd   zPythonModule.__init__Á  sT   ø€ Ý‰Œ×Ò˜Ñ%Ô%Ð%Ø;=ˆÔØŒ×ÒØ Ô!7ð
ñ 	ô 	ð 	ð 	ð 	rI   Úname_or_pathr>   rP   c                ó6  — | dvr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)r  r  Úpyz-2z-3ú-cz;import sysconfig; print(sysconfig.get_config_var('BINDIR'))r‰   )	ÚshutilÚwhichr	   r  Ústripr–   r“   rÁ   r—   )r¯  Úverr!  Ú_r#  Ú	directorys         rJ   Ú_get_win_pythonpathz PythonModule._get_win_pythonpathÉ  sŸ   € àÐ5Ð5Ð5Ø�4ÝŒ|˜DÑ!Ô!ð 	à�4Ø¨4Ð0Ð0°Ô>ˆØ�S˜$Ð ]Ð^ˆÝÔ*¨3Ñ/Ô/‰ˆˆ6�1Ø—L’L‘N”Nˆ	ÝŒ7�>Š>˜)Ñ$Ô$ð 	Ý”7—<’< 	¨8Ñ4Ô4Ð4à�4rI   r  ú'ModuleState'Údisplay_namerr  r8   r'   c                óR  — |st          dt          j        ¦  «        }nœt          j        ||¦  «        }t          ||¬¦  «        }|                     ¦   «         s;t          j        ¦   «         r(|                      |¦  «        }|�|}t          |¦  «        }|                     ¦   «         s|dv rt          d¦  «        }|                     ¦   «         rM|                     |¦  «        r|S |› d�}|rt          j	        |¦  «        ‚t          j        ||j        ¬¦  «         t          ¦   «         S )Nr  )rü   >   r  r  r‰   z1 is not a valid python or it is missing distutils)Úlocation)rú   r	   Úpython_commandr'   Ú
from_entryrB  r~   r¹  r%  r1  r
   Úwarningrj  r(   )	rc   r  r»  r¯  rr  r‰   Ú
tmp_pythonÚ
pythonpathÚ	sanitymsgs	            rJ   Ú_find_installation_implz$PythonModule._find_installation_implÙ  s0  € Øð 	9Ý*¨9µhÔ6MÑNÔNˆFˆFå(Ô3°LÀ,ÑOÔOˆJÝ*¨<À*ÐMÑMÔMˆFà—<’<‘>”>ð A¥hÔ&9Ñ&;Ô&;ð AØ!×5Ò5°lÑCÔC�
ØÐ)Ø#-�LÝ2°<Ñ@Ô@�Fð —<’<‘>”>ð 9 lÐ6LÐ&LÐ&LÝ.¨xÑ8Ô8�à�<Š<‰>Œ>ð 	IØ�}Š}˜UÑ#Ô#ð IØ�à%ÐXÐXÐX�	Øð IÝ"Ô1°)Ñ<Ô<Ð<å”L °UÔ5GÐHÑHÔHÐHå)Ñ+Ô+Ð+rI   zpython.find_installationr˜  Tr5  rT   Fz0.49.0)r6  r€  rU   z0.51.0)Úlistifyr6  r€  z0.64.0r  úT.Tuple[T.Optional[str]]rk   ú'FindInstallationKw'c           
     óð  — 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        |Ž  |                     ¦   «         s9|r)t!          j        d                     |pd¦  «        ¦  «        ‚t          ¦   «         S |rM|r=t!          j        d                     |pdd                     |¦  «        ¦  «        ¦  «        ‚t          ¦   «         S t7          j        |¦  «        }|d         |_        |S )Nz-Passing "feature" option to find_installationz0.48.0r‰   r   ÚProgramzfound:ÚNOz(disabled by:ú)rU   r²  zimport z({})z, ÚYESú zmodules:z{} not foundz{} is missing modules: {}rN   )r#   r   ri  ri   Úlookup_binary_entryr&   ÚHOSTr
   r«   ÚredrÒ   r(   r®  rq   rÄ  rB  r	   r  rû   r  rí   rh   rÂ   r—   ÚextendÚgreenr1  rò   rN   rÀ   )rc   r  r  rk   Úfeature_checkr|  rr  r}  ÚnprŸ  r»  r¯  r‰   Úwant_modulesÚfound_modulesÚmissing_modulesÚmodr"  r·  Úmsgs                       rJ   r­  zPythonModule.find_installationù  s   € õ #Ð#RÐT\Ñ]Ô]ˆÝ&<¸VÀUÔEUÐWdÑ&eÔ&eÑ#ˆ�(˜Gð  Ô+×?Ò?ÅÔ@RÐT\Ñ]Ô]ÐcÐacˆØ˜”7ˆØÐ+ 8ˆØð 	�hÐ*Ø�ˆBØ "Ð,�r˜!”u�u¨ˆàð 	0ÝŒH�Y Ð 8°¸(ÅDÄHÈTÁNÄNÐTcÕeiÔenÐovÑewÔewÐy|Ñ}Ô}Ð}Ý-Ñ/Ô/Ð/àÔ#×'Ò'¨Ñ5Ô5ˆØð 	6Ø×1Ò1°%¸À|ÐU]Ñ^Ô^ˆFØ/5ˆDÔ˜|Ñ,à˜iÔ(ˆØ%'ˆØ')ˆØ�<Š<‰>Œ>ð 	.˜lð 	.Ø#ð .ð .�Ý Ô+Ø”NØ˜? S˜?˜?Ð+ñ,ñ-ô -���Að ”< 1Ò$Ð$Ø#×*Ò*¨3Ñ/Ô/Ð/Ð/à!×(Ò(¨Ñ-Ô-Ð-Ð-à+4°f´kÐ*BˆØð 	?Ø�JŠJ�v—}’} T§Y¢Y¨|Ñ%<Ô%<Ñ=Ô=Ñ>Ô>Ð>Ø�
Š
�8ÑÔÐØ�<Š<‰>Œ>ð 	' /ð 	'Ø�JŠJ�œ
 5Ñ)Ô)¨6¯=ª=¸¿ºÀ&Ä.Ñ9QÔ9QÑ+RÔ+RÐSÑTÔTÐTÐTà�JŠJ•t”x ‘~”~Ñ&Ô&Ð&Øð 	1Ø�JŠJ�zÑ"Ô"Ð"Ø�JŠJ�t—y’y Ñ/Ô/Ñ0Ô0Ð0åŒ�#ˆˆà�|Š|‰~Œ~ð 	Øð _ÝÔ-¨n×.CÒ.CÀLÐD\ÐT\Ñ.]Ô.]Ñ^Ô^Ð^Ý-Ñ/Ô/Ð/Øð 	Øð HÝÔ-Ð.I×.PÒ.PÐQ]ÐQiÐaiÐko×ktÒktð  vEñ  lFô  lFñ  /Gô  /Gñ  Hô  Hð  HÝ-Ñ/Ô/Ð/å”Y˜vÑ&Ô&ˆFØ  œ.ˆFŒKØˆMrI   )r:  r;  r„   r…   )r¯  r>   r„   rP   )
r  rº  r»  r>   r¯  r>   rr  r8   r„   r'   )r  rº  r  rÆ  rk   rÇ  r„   r'   )rD   rE   rF   r   ÚINFOrd   Ústaticmethodr¹  rÄ  r%   r    r>   r!   r"   r8   r   r   Úlistr§  Úevolver­  r3  r4  s   @rJ   r«  r«  ½  sX  ø€ € € € € àˆ:�h Ñ)Ô)€Dðð ð ð ð ð ð ðð ð ñ „\ðð,ð ,ð ,ð ,ð@ Ø€^Ð.¸¸Ð>Ñ>Ô>Ø€\Ø"Øˆ	�*˜tÐ%6Ð7ÀÐFÑFÔFØˆ	�*˜d¨E¸ÐBÑBÔBØˆ	�)Ð.Ð.¨t°SÑ9Ô9À4ÐQSÐ[cÐdÑdÔdØ�Š ¨HˆÑ5Ô5ñô ðCkð Ckð Ckñô ñ ?Ô>ñ ÔðCkð Ckð Ckð Ckð CkrI   r«  r:  r;  c                ón   — t          | ¦  «        }|j                             t          t          ¦  «         |S râ   )r«  r:  Úappend_holder_maprú   r8  )r:  rØ  s     rJ   Ú
initializerà  H  s.   € Ý
�{Ñ
#Ô
#€CØ„O×%Ò%Õ&;Õ=OÑPÔPÐPØ€JrI   )rÊ   rj   rÕ   rÖ   rk   rl   r×   rØ   rm   r[   r„   rÙ   )r:  r;  r„   r«  )_Ú
__future__r   Úpathlibr   rò   rî   r  r–   r³  Útypingr  r|   r   r   r	   r
   rÏ   r   Úbuildr   r\  r   r   r   r   r   Údependencies.baser   Údependencies.detectr   ri   r   r:  r   r   r   r   r‘  Úinterpreter.type_checkingr   r   Úinterpreterbaser   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úprogramsr'   r(   ÚTYPE_CHECKINGÚtyping_extensionsr)   r*   r+   r,   r-   r.   Údependencies.factoryr/   r0   r1   Úinterpreter.kwargsr2   Úinterpreterbase.interpreterbaser3   r4   r6   rL   rS   Ú_Baser©  r¥  rK  rY   rg   ru   rz   rø   r  rú   r8   r§  r>   r¨  r8  r«  rà  rH   rI   rJ   ú<module>rð     s�  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø &Ð &Ð &Ð &Ð &Ð &ð Bð  Bð  Bð  Bð  Bð  Bð  Bð  Bð  Bð  Bð  Bð  Bð  Bð  BØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø +Ð +Ð +Ð +Ð +Ð +Ø dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dØ -Ð -Ð -Ð -Ð -Ð -Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 %Ð $Ð $Ð $Ð $Ð $Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà„?ð 'Ø+Ð+Ð+Ð+Ð+Ð+àÐÐÐÐÐØ*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ø:Ð:Ð:Ð:Ð:Ð:Ø)Ð)Ð)Ð)Ð)Ð)Ø)Ð)Ð)Ð)Ð)Ð)Ø4Ð4Ð4Ð4Ð4Ð4ØGÐGÐGÐGÐGÐGÐGÐGðð ð ð ð  )ñ ô ð ð%ð %ð %ð %ð %�iñ %ô %ð %ðð ð ð ð ˜_ñ ô ð ð €E€Eà€Eð ˆZ€
Ø 
× Ò Ð$Ñ %Ô %Ð %Ø 
ˆ}˜mÐ,Ñ ,€
ð#ð #ð #ð #ð #˜Eñ #ô #ð #ð0 ð  ð  ð  ð  Ð 3Ð5Jñ  ô  ð  ð*Wð Wð Wð Wð WÐ 8Ð:Oñ Wô Wð WðPð Pð Pð Pð PÐ-Ð/Dñ Pô Pð Pðf4ð 4ð 4ð 4ðnMÐ ð`Tð Tð Tð Tð T˜Oñ Tô Tð Tðn ˆ9�V˜d HÐ-Ñ.Ô.€ØˆY�x ¨bÐ1Ñ1Ô1€
ðu1ð u1ð u1ð u1ð u1Ð.ñ u1ô u1ð u1ðpHkð Hkð Hkð Hkð Hk�?ñ Hkô Hkð HkðVð ð ð ð ð rI   