U
    SA{ií  ã                   @   s®  d dl Z d dlmZ de jkrfdZd dlmZ d dlm	Z	 zd dlm
Z
 W qv ek
rb   dZY qvX nd dlmZ dZd dlZd dlZd dl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mZmZmZmZm Z m!Z! d dl"m#Z#m$Z$ ejejejej%ej&ejejejejejejeje!j!eje j dœZ'e�rvd dlm(Z(m)Z) e
j
e'd< e(j(e'd< e	j	e'd< e)j)e'd< dd„ Z*ddd„Z+d dd„Z,dd„ Zdd„ Z-dd„ Z.dS )!é    N)ÚDistributionÚ
setuptoolsT)Úsetup)Úeasy_install)Ú	bdist_eggF)Ú	Extension)ÚNumpyDistribution)ÚconfigÚconfig_compilerÚbuildÚbuild_pyÚ	build_extÚ
build_clibÚ	build_srcÚbuild_scriptsÚsdistÚinstall_dataÚinstall_headersÚinstallÚ	bdist_rpmÚinstall_clib)Úis_sequenceÚ	is_string)r   r   r   Ú	config_ccÚ	config_fcr	   r   r   r   r   r   r   r   r   r   )ÚdevelopÚegg_infor   r   r   r   c                 K   s¦   |  ¡ D ]˜\}}|| kr"|| |< q| | }t|tƒrF|t|ƒ | |< qt|tƒrb|t|ƒ | |< qt|tƒrzt|f|Ž qt|ƒr�|| | |< qttt	|ƒƒƒ‚qd S )N)
ÚitemsÚ
isinstanceÚtupleÚlistÚdictÚ_dict_appendr   Ú	TypeErrorÚreprÚtype)ÚdÚkwsÚkÚvÚdv© r+   ú8/tmp/pip-unpacked-wheel-m6chaliv/numpy/distutils/core.pyr"   7   s    


r"   c                 C   sŽ   | r| d S | dkrg } d}dd„ t jD ƒ}t jD ]}|d r2| d|d  ¡ q2tjD ]&}| d¡sv|d	ksv||krXd
} q€qX|  |¡ |S )zT Return True if command line does not contain any
    help or display requests.
    r   NTc                 S   s   g | ]}d | ‘qS )z--r+   )Ú.0Únr+   r+   r,   Ú
<listcomp>Q   s     z$_command_line_ok.<locals>.<listcomp>é   ú-z--helpz-hF)r   Údisplay_option_namesÚdisplay_optionsÚappendÚsysÚargvÚ
startswith)Ú_cacheÚokZdisplay_optsÚoÚargr+   r+   r,   Ú_command_line_okH   s    


r<   c                 C   s6   t jj}|d k	r dt|ƒkr d }| r2|d kr2tƒ }|S )NZDistributionWithoutHelpCommands)Ú	distutilsÚcoreÚ_setup_distributionr$   r   )ÚalwaysÚdistr+   r+   r,   Úget_distribution\   s    
ÿrB   c                  K   sš  t  ¡ }|  ¡ }d|kr&| |d ¡ ||d< d|kr¶| d¡}tjj}tjj}d tj_dtj_ztf |Ž}W 5 |tj_|tj_X |j	sŽt
ƒ s’|S |ƒ }t|dƒrª| ¡ }t|f|Ž g }| dg ¡D ]h}	g }
|	jD ]R}t|ƒ�r|\}}t|||ƒ |
 |¡ qÔt|ƒ�r|
 |¡ qÔtd|f ƒ‚qÔ|
|	_qÆ|�rbd|k�rHg |d< |D ]}t|d |ƒ �qLd|k�svd|k�rˆd|k�rˆg |d< t|d	< tf |ŽS )
NÚcmdclassÚconfigurationÚcommandlineÚtodictÚext_modulesz2invalid description of extension module library %rÚ	librariesÚheadersÚ	distclass)Únumpy_cmdclassÚcopyÚupdateÚpopr=   r>   r?   Ú_setup_stop_afterr   Úhelpr<   ÚhasattrrF   r"   ÚgetrH   r   Ú_check_append_ext_libraryr4   r   r#   Ú_check_append_libraryr   Ú	old_setup)ÚattrrC   Únew_attrrD   Zold_distZold_stoprA   r	   rH   ÚextZnew_librariesÚitemÚlib_nameÚ
build_infor+   r+   r,   r   k   s\    





ÿ
ÿr   c                 C   sÖ   | D ]Â}t |ƒr†t |ƒr\|d |d kr„|d |d kr> d S tjd|d f dd�  qÈqÆ||d krÆtjd|d f dd�  qÈqt |ƒr¸|d |krÆtjd|d f dd�  qÈq||kr d S q|  |¡ d S )Nr   r0   z8[0] libraries list contains %r with different build_infoé   ©Ú
stacklevelz1[1] libraries list contains %r with no build_infoz1[2] libraries list contains %r with no build_info©r   ÚwarningsÚwarnr4   )rH   rY   Zlibitemr+   r+   r,   rT   «   s<    ÿþÿþÿþrT   c                 C   s|   | D ]d}t |ƒrH|d |krh|d |kr. d S tjd|f dd�  qjq||krtjd|f dd�  qjq|  ||f¡ d S )Nr   r0   z8[3] libraries list contains %r with different build_infor\   r]   z1[4] libraries list contains %r with no build_infor_   )rH   rZ   r[   rY   r+   r+   r,   rS   È   s&    ÿþÿþrS   )N)F)/r5   Údistutils.corer   ÚmodulesZhave_setuptoolsr   r   rU   Zsetuptools.commandr   r   ÚImportErrorr`   r=   Údistutils.distZnumpy.distutils.extensionr   Z"numpy.distutils.numpy_distributionr   Znumpy.distutils.commandr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Znumpy.distutils.misc_utilr   r   r   r   rK   r   r   r"   r<   rB   rT   rS   r+   r+   r+   r,   Ú<module>   s\   
@ò





@