o
    uJAf1                     @  s   d dl mZ d dlZd dlZddlmZ ddlmZmZ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mZmZmZ dd
lmZ ejr[ddlmZ ddl mZ! dd eD Z"G dd deZ#dd Z$dS )    )annotationsN   )mesonlib   )ExtensionModule
ModuleInfoModuleState)BuildTargetCustomTargetCustomTargetIndexExtractedObjectsGeneratedListSharedModuleStructuredSourcesknown_shmod_kwargs)SHARED_MOD_KWS)typed_kwargstyped_pos_args	noPosargsnoKwargspermittedKwargs)ExternalProgram)BuildTargetSource)r   c                 C  s   g | ]	}|j d vr|qS )>   name_prefixname_suffix)name).0k r   ?/usr/lib/python3.10/site-packages/mesonbuild/modules/python3.py
<listcomp>"   s    r    c                      s   e Zd ZeddddZ fddZeeddh ed	e	e	e
jeeeeeefd
ed	geR ddidddZeedd Zeedd Zeede	dd Z  ZS )Python3Modulepython3z0.38.0z0.48.0)
deprecatedc                   s4   t  j|i | | j| j| j| j| jd d S )N)extension_modulefind_pythonlanguage_versionsysconfig_path)super__init__methodsupdater$   r%   r&   r'   )selfargskwargs	__class__r   r   r)   )   s   zPython3Module.__init__r   r   zpython3.extension_module)varargsallow_unknownTstater   r-   'T.Tuple[str, T.List[BuildTargetSource]]r.   SharedModuleKWc                 C  sL   |j j}|dkrd}n	|dkrd}ng }d|d< ||d< | j|j||tS )NdarwinsowindowsZpyd r   r   )host_machinesysteminterpreterbuild_targetcurrent_noder   )r,   r3   r-   r.   Zhost_systemsuffixr   r   r   r$   2   s   zPython3Module.extension_modulec                 C  s>   |j tjjd}|d urtd|}|S tdtjdd}|S )Nr"   T)silent)environmentlookup_binary_entryr   MachineChoiceHOSTr   
from_entrypython_command)r,   r3   r-   r.   commandZpy3r   r   r   r%   C   s   zPython3Module.find_pythonc                 C  s   t  S N)	sysconfigZget_python_version)r,   r3   r-   r.   r   r   r   r&   M   s   zPython3Module.language_versionzpython3.sysconfig_pathc                 C  sL   |d }t  }||vrt| d| dt j|ddddddd  S )Nr   z is not a valid path name .r9   )baseZplatbaseZinstalled_base)varsr   )rI   Zget_path_namesr   MesonExceptionget_path)r,   r3   r-   r.   Z	path_nameZvalid_namesr   r   r   r'   R   s
   zPython3Module.sysconfig_path)r3   r   r-   r4   r.   r5   )__name__
__module____qualname__r   INFOr)   r   r   r   strr   Filer
   r   r   r   r   r	   r   _MOD_KWARGSr$   r   r   r%   r&   r'   __classcell__r   r   r/   r   r!   %   s     	r!   c                  O  s   t | i |S rH   )r!   )r-   r.   r   r   r   
initialize^   s   rW   )%
__future__r   rI   typingTr9   r   r   r   r   buildr	   r
   r   r   r   r   r   r   Zinterpreter.type_checkingr   interpreterbaser   r   r   r   r   programsr   TYPE_CHECKINGZinterpreter.interpreterr   Zinterpreter.kwargsr5   rU   r!   rW   r   r   r   r   <module>   s   (9