a
    hÝEb½  ã                   @   s^  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Zd dl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T e j dd	¡d
kZe j dd
¡d
kZeo®eZe j dd
¡d	kZG dd„ dƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z dd „ Z!d!d"„ Z"d#d$„ Z#d%d&„ Z$d-d(d)„Z%e&d*k�rZd d+l'm(Z( e(e%d,� dS ).é    N)Újoin)Úlog)Únewer)Úget_config_var)Únpy_load_module)Ú*ÚNPY_RELAXED_STRIDES_CHECKINGÚ1Ú0ÚNPY_RELAXED_STRIDES_DEBUGÚNPY_DISABLE_SVMLc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚCallOnceOnlyc                 C   s   d | _ d | _d | _d S ©N)Ú_check_typesÚ_check_ieee_macrosÚ_check_complex)Úself© r   úP/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/numpy/core/setup.pyÚ__init__+   s    zCallOnceOnly.__init__c                 O   s<   | j d u r&t|i |¤Ž}t |¡| _ nt t | j ¡¡}|S r   )r   Úcheck_typesÚpickleÚdumpsÚcopyÚdeepcopyÚloads©r   ÚaÚkwÚoutr   r   r   r   0   s
    
zCallOnceOnly.check_typesc                 O   s<   | j d u r&t|i |¤Ž}t |¡| _ nt t | j ¡¡}|S r   )r   Úcheck_ieee_macrosr   r   r   r   r   r   r   r   r   r    8   s
    
zCallOnceOnly.check_ieee_macrosc                 O   s<   | j d u r&t|i |¤Ž}t |¡| _ nt t | j ¡¡}|S r   )r   Úcheck_complexr   r   r   r   r   r   r   r   r   r!   @   s
    
zCallOnceOnly.check_complexN)Ú__name__Ú
__module__Ú__qualname__r   r   r    r!   r   r   r   r   r   *   s   r   c                  C   s(   t rdS t ¡ } t ¡ }d| v o&|dkS )zZSVML library is supported only on x86_64 architecture and currently
    only on linux
    FÚx86_64ÚLinux)r   ÚplatformÚmachineÚsystem)r(   r)   r   r   r   Úcan_link_svmlH   s
    r*   c                 C   s   t j | d ¡stdƒ‚dS )Nz
/README.mdzHMissing `SVML` submodule! Run `git submodule update --init` to fix this.T)ÚosÚpathÚexistsÚRuntimeError)Zsvmlpathr   r   r   Úcheck_svml_submoduleR   s    r/   c                   C   s&   t jdkrtj t jd¡S tdƒS dS )z return path where libpython* is.Úwin32ÚlibsÚLIBDIRN)Úsysr'   r+   r,   r   Úprefixr   r   r   r   r   Úpythonlib_dirX   s    
r5   c                   C   s
   t jdkS )zTReturn True if the NPY_NO_SIGNAL symbol must be defined in configuration
    header.r0   )r3   r'   r   r   r   r   Úis_npy_no_signal_   s    r6   c                   C   s
   dt jv S )zxReturn True if the NPY_NO_SMP symbol must be defined in public
    header (when SMP support cannot be reliably enabled).Z	NPY_NOSMP)r+   Úenvironr   r   r   r   Úis_npy_no_smpd   s    	r8   c                 C   sX   ddl m} |ƒ }td|tjtjf ƒ |dkr:|  d¡ |dksJ|dkrT|  d¡ d S )Nr   )Úget_build_architecturez3BUILD_ARCHITECTURE: %r, os.name=%r, sys.platform=%rZAMD64ZDISTUTILS_USE_SDKZIntelZFORCE_NO_LONG_DOUBLE_FORMATTING)Únumpy.distutils.misc_utilr9   Úprintr+   Únamer3   r'   Úappend)Zdeflistr9   r   r   r   r   Úwin32_checkso   s    ÿ
r>   c                    s†  ‡‡fdd„‰ ‡‡‡fdd„‰‡ ‡‡fdd„}ˆt ƒsFtdtt ƒ ƒ‚tD ]$}ˆjt|ƒdd	gd
�rJt |¡ qJ|tƒ tD ]B}ˆj	ddd|gd�r|| 
dd¡ 
tjjd¡}ˆ t|ƒdf¡ q|tD ]¼}d }t|ƒdkrú|d |d t|d ƒ  }}	}
ndt|ƒdk�r4|d |d |d gt|d ƒf\}}	}}
n*|d |d |d gt|d ƒf\}}	}}
ˆj	|dd|	|d�rÄˆ |
df¡ qÄtD ]t\}}ˆ ||¡�r†ˆ t|ƒdf¡ |dk�r†tjdv �r†ˆ ¡ �r†ˆ dd¡�s†|j dd„ tddƒD ƒ¡ �q†tD ]2\}}}}ˆ ||||¡�r ˆ t|ƒdf¡ �q tD ]8}ˆ |¡�r8| 
dd¡ 
dd¡}
ˆ t|
ƒdf¡ �q8|tƒ |tƒ d S ) Nc                    s   ˆ j | ˆddd�S )NT©Ú	librariesÚdeclÚcall)Ú
check_func)Ú	func_name)ÚconfigÚmathlibsr   r   rC   €   s    ÿz+check_math_capabilities.<locals>.check_funcc                    s@   t dd„ | D ƒƒ}ˆ j| ˆ||d�}|r<ˆ dd„ | D ƒ¡ |S )Nc                 S   s   g | ]}|d f‘qS ©Tr   ©Ú.0Úfr   r   r   Ú
<listcomp>…   ó    zEcheck_math_capabilities.<locals>.check_funcs_once.<locals>.<listcomp>r?   c                 S   s   g | ]}t |ƒd f‘qS ©é   ©Ú	fname2defrH   r   r   r   rK   ‰   rL   )ÚdictÚcheck_funcs_onceÚextend)Ú
funcs_namerA   Úst)rE   rF   Úmoredefsr   r   rR   „   s    ÿz1check_math_capabilities.<locals>.check_funcs_oncec                    s8   ˆ| ƒs0| D ]}ˆ |ƒrˆ  t|ƒdf¡ qdS dS d S )NrN   r   ©r=   rP   )rT   rJ   )rC   rR   rV   r   r   Úcheck_funcsŒ   s    z,check_math_capabilities.<locals>.check_funcszNOne of the required function to build numpy is not available (the list is %s).úPython.húmath.h©ÚheadersÚ F)rA   rB   r\   Ú.Ú_rN   é   r   é   T)rA   rB   Z	call_argsr\   Zattribute_target_avx512f)r0   Úcygwiné   é   c                 S   s   g | ]}d | ‘qS )z-ffixed-xmm%sr   )rI   Únr   r   r   rK   Ç   rL   z+check_math_capabilities.<locals>.<listcomp>é   é    ú(ú)) ZMANDATORY_FUNCSÚSystemErrorÚstrZOPTIONAL_STDFUNCS_MAYBEÚ
check_declrP   ZOPTIONAL_STDFUNCSÚremoveZOPTIONAL_HEADERSrC   Úreplacer+   r,   Úsepr=   ZOPTIONAL_INTRINSICSÚlenZOPTIONAL_FUNCTION_ATTRIBUTESÚcheck_gcc_function_attributer3   r'   Zcheck_compiler_gccZcheck_gcc_version_at_leastÚextra_compile_argsrS   ÚrangeZ,OPTIONAL_FUNCTION_ATTRIBUTES_WITH_INTRINSICSZ,check_gcc_function_attribute_with_intrinsicsZOPTIONAL_VARIABLE_ATTRIBUTESZcheck_gcc_variable_attributeZC99_FUNCS_SINGLEZC99_FUNCS_EXTENDED)rE   ÚextrV   rF   rX   rJ   ÚhÚtupr\   ÚargsÚmÚdecÚfnÚcodeÚheaderr   )rC   rR   rE   rF   rV   r   Úcheck_math_capabilities   sf    ÿ

ÿ",*ÿ
ÿ
þÿ
ÿr}   c                    sÎ   g ‰g }z,t  ¡ d dkr2tjddd� ˆ|fW S W n tyF   Y n0 ˆ  d¡}|rÆˆ d¡ | d¡ tD ].}ˆ j|dgd	�}|rn| d
t	|ƒ df¡ qn‡ ‡‡fdd„}|dƒ |dƒ |dƒ ˆ|fS )Nr   ZInterixz+Disabling broken complex support. See #1365r`   )Ú
stacklevelz	complex.h)ZHAVE_COMPLEX_HrN   )ZNPY_USE_C99_COMPLEXrN   r[   zNPY_HAVE_%srN   c                    s~   ‡ fdd„t D ƒ}tdd„ |D ƒƒ}ˆj|||ˆd�sf|D ](}ˆj|ddˆd�r:ˆ t|ƒdf¡ q:nˆ dd„ |D ƒ¡ d S )Nc                    s   g | ]}|ˆ  ‘qS r   r   rH   ©Úprecr   r   rK   ï   rL   z5check_complex.<locals>.check_prec.<locals>.<listcomp>c                 S   s   g | ]}|d f‘qS rG   r   rH   r   r   r   rK   ð   rL   )rB   rA   r@   TrN   c                 S   s   g | ]}t |ƒd f‘qS rM   rO   rH   r   r   r   rK   ø   rL   )ZC99_COMPLEX_FUNCSrQ   rR   rC   r=   rP   rS   )r€   ÚflistrA   rJ   ©rE   rF   Úprivr   r   Ú
check_precî   s    
ÿ
ÿz!check_complex.<locals>.check_precr]   rJ   Úl)
r+   ÚunameÚwarningsÚwarnÚ	ExceptionÚcheck_headerr=   ZC99_COMPLEX_TYPESZ
check_typeZtype2def)rE   rF   ÚpubrU   Útr„   r   r‚   r   r!   ×   s*    


r!   c                    s²   g ‰ g ‰g }‡ ‡fdd„}g d¢}|D ]Z}t d| ƒ}| j|ddgd�}|rv| j|ddgd�r€ˆ dt d| ƒ ¡ q&| |¡ q&|D ]"}| j|ddgd�}|r†||ƒ q†ˆ ˆfS )	Nc                    s,   ˆ   td|  ƒ¡ ˆ  dtd|  ƒ ¡ d S )Núdecl_%súNPY_%srW   )rJ   ©rƒ   r‹   r   r   Ú	_add_decl  s    z$check_ieee_macros.<locals>._add_decl)ÚisnanÚisinfZsignbitÚisfiniter�   rY   rZ   r[   rŽ   )rP   rl   Zcheck_macro_truer=   )rE   Úmacrosr�   Z_macrosrJ   Z	py_symbolÚalready_declaredrU   r   r�   r   r       s*    ÿÿ
r    c                 C   sz  g }g }dgdgddgdgdgg d¢ddgdgdgddgdœ
}|   d¡}|sld}dtjv r^d	}td
 |¡ƒ‚|   d¡}|rŽ| d¡ | d¡ |   d¡}|r°| d¡ | d¡ dD ]„}	| jdt|	ƒ dgd�}|rô| dt|	ƒ dt|	ƒ f¡ q´| j|	||	 d�}|dk�r,| dt|	ƒ d| f¡ q´td|	 ƒ‚q´dD ]æ}	| jdt|	ƒ dgd�}
| j|	||	 d�}|dk�r¼| dt|	ƒ d| f¡ |
�sÈ|	dk�sÈ| dt|	ƒ d| f¡ ntd|	 ƒ‚d|	|	f }| j|dd„ ||	 D ƒd�}|dk�r| dt|	ƒ d| f¡ ntd| ƒ‚�q>dD ]n}	| j|	dgt	ƒ g||	 d �}|dk�rŠ| dt|	ƒ d| f¡ | dt|	ƒ d| f¡ ntd|	 ƒ‚�q*| jd!dgd��rX| jd!dgt	ƒ g|d! d �}|dk�r| dtd!ƒ d| f¡ | dtd!ƒ d| f¡ ntdd! ƒ‚| jd"|d" d�}|dk�rL| dtd"ƒ d| f¡ ntdd" ƒ‚| jd#dgd��srt
d$ƒ‚||fS )%Nr`   rd   rc   )rf   é   rc   )
ÚshortÚintÚlongÚfloatÚdoubleúlong doubleÚPy_intptr_tÚPY_LONG_LONGú	long longÚoff_trY   ÚpythonZ__pypy__ÚpypyzICannot compile 'Python.h'. Perhaps you need to install {0}-dev|{0}-devel.zendian.h)ÚHAVE_ENDIAN_HrN   )ZNPY_HAVE_ENDIAN_HrN   zsys/endian.h)ÚHAVE_SYS_ENDIAN_HrN   )ZNPY_HAVE_SYS_ENDIAN_HrN   )r—   r˜   r™   z	SIZEOF_%sr[   zNPY_SIZEOF_%s)Úexpectedr   z%dzChecking sizeof (%s) failed !)rš   r›   rœ   rœ   zstruct {%s __x; %s __y;}c                 S   s   g | ]}d | ‘qS )r`   r   )rI   Úxr   r   r   rK   _  rL   zcheck_types.<locals>.<listcomp>zNPY_SIZEOF_COMPLEX_%s)r�   r    )r\   Úlibrary_dirsr¥   rž   rŸ   ZCHAR_BITzCConfig wo CHAR_BIT is not supported, please contact the maintainers)rŠ   r3   Úbuiltin_module_namesrj   Úformatr=   rl   Zsym2defZcheck_type_sizer5   r.   )Ú
config_cmdrt   Ú	build_dirZprivate_definesZpublic_definesr¥   Úresultr¡   ÚresÚtyper•   Zcomplex_defr   r   r   r   %  sž    ý

ÿÿ





 
ÿ
ÿ

þ

þ
ÿ
ÿr   c                 C   sd   g }g dgdgg}t j d¡}|r4| d| d¡¡ |D ]}| jd|ddd�r8|} q`q8td	ƒ‚|S )
Nrx   ZcpmlÚMATHLIBr   ú,ÚexpTr?   zKmath library missing; rerun setup.py after setting the MATHLIB env variable)r+   r7   ÚgetÚinsertÚsplitrC   r.   )rª   rF   Zmathlibs_choicesZmathlibr1   r   r   r   Úcheck_mathlibŠ  s    ÿrµ   c                 C   s   d}|   |d¡r|S dS dS )zSReturn the define value to use for NPY_VISIBILITY_HIDDEN (may be empty
    string).z%__attribute__((visibility("hidden")))Zhidemer]   N)rq   )rE   Úhider   r   r   Úvisibility_define›  s    r·   r]   c              D      sæ  ddl m}m} ddlm}m}m} |d| |ƒ‰ˆj}t|dƒ‰t	ˆƒrTt
 dt¡ ttˆƒ tˆdƒ‰|ˆjdƒ}td	 | d
¡¡ˆdƒ‰d‰tƒ ‰ ‡ ‡‡fdd„}	‡ ‡‡fdd„}
‡‡‡fdd„}|dƒ}|dƒ}ˆ t|ddƒ¡ ˆ t|dƒ¡ ˆ t|ƒ¡ ˆ d¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ dg¡ ˆ dg¡ tjd d… dk�ršˆ d g¡ n$ˆ d!g¡ ˆ d"g¡ ˆ d#g¡ ˆj ˆ d$¡¡ tddd%ƒtd$d&d'ƒtˆd(ƒg}td)tjjfd*gƒ‰‡‡fd+d,„}tddd-ƒtddd.ƒtddd/ƒtddd0ƒtddd1ƒg}d2d3„ }ˆjd||g d4g |gd5œd6� ˆ  d7d8ˆ¡ ˆ  d9d8ˆ¡ ˆj!d:tddd;ƒtddd<ƒtddd=ƒtddd>ƒgtddd?ƒtddd@ƒtdddAƒtdddBƒgdgdC� tdddDdEƒtdddFƒtdddGƒtdddHƒtdddIƒtddd?ƒtddd@ƒtdddJƒtdddKƒtdddLƒtdddMƒtdddBƒtdddNƒtdddAƒtdddOƒtdddPƒtdddQƒtdddRƒtdddSƒtdddTƒtdddUƒtdddVƒtdddWdXƒg}tdddYƒtddd<ƒtddd=ƒtddd>ƒtdddZƒtdddQƒtddd[ƒtddd\ƒtddd]ƒtddd^ƒg
}tj" #d_d`¡d`k�rf|dadbƒ}n
|dcdƒ}|�o„dd| #deg ¡v }|�r°|}| tdddfƒtdddgƒg¡ ni }tdddhƒtdddiƒtdddjƒtdddkƒtdddlƒtdddmƒtdddnƒtdddoƒtdddpƒtdddqƒtdddrƒtdddsƒtdddtƒtddduƒtdddvƒtdddwƒtdddxƒtdddyƒtdddzƒtddd{ƒtddd|ƒtddd}ƒtddd~ƒtdddƒtddd€ƒtddd�ƒtddd‚ƒtdddƒƒtddd„ƒtddd…ƒtddd†ƒtddd‡ƒtdddˆƒtddd‰ƒtdddŠƒtddd‹ƒtdddŒƒtddd�ƒtd$d&diƒtd$d&dŽƒtd$d&d�ƒtd$d&d�ƒtd$d&d‘ƒtd$d&d’ƒtd$d&d“ƒtd$d&d”ƒtd$d&d•ƒtd$d&d–ƒtd$d&d—ƒtd$d&d˜ƒtd$d&d™ƒtd$d&dšƒtd$d&d›ƒtd$d&dœƒtd$d&d�ƒg7| }tdddžƒtdddŸƒtddd ƒtddd¡ƒtddd¢ƒtddd£ƒtddd¤ƒtddd¥ƒtddd¦ƒtddd§ƒtddd¨ƒtddd©ƒtdddªƒtddd«ƒtddd¬ƒtddd­ƒtddd®ƒtddd¯ƒtddd°ƒtddd±ƒtddd²ƒtddd³ƒtddd´ƒtdddµƒtddd¶ƒtddd·ƒtddd¸ƒtddd¹ƒtdddºƒtddd»ƒtddd¼ƒtddd½ƒtddd¾ƒtddd¿ƒtdddÀƒtdddÁƒtdddÂƒtdddÃƒtdddÄƒtdddÅƒtdddÆƒtdddÇƒtdddÈƒtdddÉƒtdddÊƒtdddËƒtdddÌƒtdddÍƒtdddÎƒtdddÏƒtdddÐƒtdddÑƒtdddÒƒtdddÓƒtdddÔƒtdddÕƒtdddÖƒtddd×ƒtdddØƒtdddÙƒtdddÚƒtdddÛƒtdddÜƒtdddÝƒtdddÞƒgA}‡‡‡fdßdà„}tdddáƒtdddâƒtdddãƒtdddäƒtdddåƒtdddæƒtdddçƒtdddèƒtdddéƒtdddêƒtdddëƒtdddìƒtdddíƒtdddîƒtdddïƒtdddðƒtdddñƒtdddòƒtdddóƒtdddôƒtdddõƒtdddöƒtddd÷ƒtdddøƒtdddùƒg}ˆtd$d&d”ƒtd$d&d•ƒtdddpƒtddd…ƒtdddQƒtdddäƒtdddúƒtˆdûƒg	}td&ddddüƒ}g }t$ƒ �r
t%|ƒ�r
t&j&|dý dþdÿ�}ˆj!�d �d|| | |	|
|tˆ�dƒt�dƒ||g || | | dg||g �d¢�d� ˆj!�dtdd�dƒtdd�dƒtddd^ƒg�d	� ˆj!�d
tdd�dƒg�d	� ˆj!�dtdd�dƒg�d	� ˆj!�dtdd�dƒg�d	� ˆj!dtddd^ƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒgtdddVƒtdddWdXƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒg	�d� ˆ '�d¡ ˆ �d¡ ˆ �d¡ ˆ (�d¡ ˆ )¡  ˆS (  Nr   )ÚConfigurationÚdot_join)Úget_infoÚblas_opt_infoÚlapack_opt_infoÚcoreZcode_generatorsÚerrorzgenerate_umath.pyÚgenerate_umathr_   r^   )ú.pyÚUrN   zinclude/numpyc                    sL  t |ˆdƒ}tj |¡}tj |¡s.t |¡ tt|ƒ�r˜ˆ ¡ }t	 
d|¡ ˆ  || |¡\}}t|ƒ}| dd  |¡f¡ t|| ||ƒ | ˆ  |¡d ¡ | ˆ  ||¡d ¡ tƒ rÄ| d¡ tjdksØtjdkràt|ƒ | d	| ¡ f¡ | ¡ }tƒ �r| d
¡ t�r| d¡ n
| d¡ t�r:| d¡ n
| d¡ t|ƒ}	| d|	 df¡ t|ƒ�r�| d¡ | d¡ | d¡ | d¡ t|dƒ�š}
|D ]<}t|t ƒ�rÀ|
 !d| ¡ n|
 !d|d |d f ¡ �q |
 !d¡ |dk�rþ|
 !d¡ n|
 !d| ¡ |
 !d¡ |
 !t" #d¡¡ W d   ƒ n1 �s<0    Y  t	 
d| ¡ t|ƒ�}
t	 
|
 $¡ ¡ W d   ƒ n1 �s‚0    Y  t	 
d¡ ntg }t|ƒ�V}
|
D ]@}d }| %|¡�rª|t&|ƒd …  '¡ }|�rª| | (d¡¡ �qªW d   ƒ n1 �s0    Y  t)| d!ƒ�r$| j* |¡ tj |¡}|ˆj+v�rHˆj+ |¡ |S )"Nzconfig.húGenerating %sr¯   r°   r   Z__NPY_PRIVATE_NO_SIGNALr0   ÚntZNPY_RESTRICT)ZNPY_CAN_LINK_SVMLrN   ©r   rN   )r   r   ©r   rN   )r   r   zHAVE_LDOUBLE_%srN   Z$NPY_DO_NOT_OPTIMIZE_LONG_right_shiftZ%NPY_DO_NOT_OPTIMIZE_ULONG_right_shiftZ(NPY_DO_NOT_OPTIMIZE_LONGLONG_right_shiftZ)NPY_DO_NOT_OPTIMIZE_ULONGLONG_right_shiftÚwú#define %s
ú#define %s %s
z#ifndef __cplusplus
Úinlinez/* #undef inline */
z#define inline %s
z#endif
zÔ
                    #ifndef NUMPY_CORE_SRC_COMMON_NPY_CONFIG_H_
                    #error config.h should never be included directly, include npy_config.h instead
                    #endif
                    úFile: %sÚEOFz#define MATHLIBr@   ),r   r+   r,   Údirnamer-   Úmakedirsr   Ú__file__Úget_config_cmdr   Úinfor   rµ   r=   r}   rS   r    r!   r6   r3   r'   r<   r>   Zcheck_restrictZcheck_inliner*   r   r   Z check_long_double_representationZ-check_for_right_shift_internal_compiler_errorÚopenÚ
isinstancerk   ÚwriteÚtextwrapÚdedentÚreadÚ
startswithrp   Ústripr´   Úhasattrr@   Únumpy_include_dirs)rt   r«   ÚtargetÚdrª   rV   ÚignoredrF   rÉ   ÚrepÚtarget_fÚlineÚsÚvalueZincl_dir©ÚcocacherE   Ú
header_dirr   r   Úgenerate_config_h½  s~    












0
.
4z(configuration.<locals>.generate_config_hc           
         s4  ˆ  t|ddƒ¡ ˆ  t|ddƒ¡ t|ˆdƒ}tj |¡}tj |¡sRt |¡ tt|ƒ�r"ˆ 	¡ }t
 d|¡ ˆ  || |¡\}}tƒ r”| d¡ tƒ r¦| d¡ n
| d¡ t|ƒ}| ˆ  |¡d	 ¡ | ˆ  ||¡d	 ¡ trð| d
¡ trþ| d¡ |jddgd��r| d¡ t|ƒ}| d|f¡ | ddt f¡ | ddt f¡ t|dƒ�b}	|D ]<}t|tƒ�r„|	 d| ¡ n|	 d|d |d	 f ¡ �qd|	 t d¡¡ W d  ƒ n1 �sÈ0    Y  t
 d| ¡ t|ƒ�}	t
 |	  ¡ ¡ W d  ƒ n1 �s0    Y  t
 d¡ ˆ !ˆ|f¡ |S )z@Depends on config.h: generate_config_h has to be called before !ÚsrcÚcommonÚnpymathz_numpyconfig.hrÂ   )ZNPY_NO_SIGNALrN   )Ú
NPY_NO_SMPrN   )rê   r   rN   rÄ   rÅ   ZPRIdPTRz
inttypes.hr[   )ZNPY_USE_C99_FORMATSrN   ZNPY_VISIBILITY_HIDDENZNPY_ABI_VERSIONz0x%.8XZNPY_API_VERSIONrÆ   rÇ   rÈ   r   z”
                    #ifndef __STDC_FORMAT_MACROS
                    #define __STDC_FORMAT_MACROS 1
                    #endif
                    NrÊ   rË   )"Úadd_include_dirsr   r+   r,   rÌ   r-   rÍ   r   rÎ   rÏ   r   rÐ   r   r6   r=   r8   rµ   rS   r    r!   r   r   rl   r·   ZC_ABI_VERSIONÚC_API_VERSIONrÑ   rÒ   rk   rÓ   rÔ   rÕ   rÖ   Úadd_data_files)
rt   r«   rÛ   rÜ   rª   rÝ   rV   rF   Zhidden_visibilityrß   rã   r   r   Úgenerate_numpyconfig_h+  sP    





0
.
z-configuration.<locals>.generate_numpyconfig_hc                    s   ‡‡‡‡ fdd„}|S )Nc                    s|   t ˆ ˆd ƒ}tj dˆ ¡ z:tˆƒ}t d|¡ | tj  |ˆ¡¡\}}}W tjd= n
tjd= 0 ˆ 	ˆ|fˆ|f¡ |fS )NrÀ   r   zexecuting %s)
r   r3   r,   r³   Ú
__import__r   rÐ   Úgenerate_apir+   rí   )rt   r«   Úscriptrx   Zh_fileZc_fileZdoc_file)Úcodegen_dirrE   rå   Úmodule_namer   r   rð   s  s    
ÿz>configuration.<locals>.generate_api_func.<locals>.generate_apir   )ró   rð   )rò   rE   rå   )ró   r   Úgenerate_api_funcr  s    z(configuration.<locals>.generate_api_funcÚgenerate_numpy_apiÚgenerate_ufunc_apirç   rè   ré   Z
multiarrayZumathZnpysortZ_simd)ZNPY_INTERNAL_BUILDr	   )ZHAVE_NPY_CONFIG_Hr	   ra   Úaix)Z_LARGE_FILESN)Z_FILE_OFFSET_BITSZ64)Z_LARGEFILE_SOURCEr	   )Z_LARGEFILE64_SOURCEr	   Úincludez
_signbit.cÚnumpyz	*object.hz	genapi.pyro   )Úpkgnamez
numpy.corec                     sÂ   ˆ   ¡ }dD ]p\}}}|dk}|r2|j}| ¡ |_|j||d�}|srd|j_|j||d� td| ¡ › d|› �ƒ‚|r||_qt|ƒ}d dd	„ |D ƒ¡}	d d
d	„ |D ƒ¡}
|	ˆd< |
ˆd< d S )N))Úczint main(void) { return 0;}r]   )úc++z;int main(void){ auto x = 0.0; return static_cast<int>(x); }zFnote: A compiler with support for C++11 language features is required.rü   )ÚlangTz'Broken toolchain: cannot link a simple z
 program. ú c                 S   s   g | ]}d | ‘qS )z-l%sr   ©rI   r…   r   r   r   rK   Ì  rL   z;configuration.<locals>.get_mathlib_info.<locals>.<listcomp>c                 S   s   g | ]}d | ‘qS )z%s.libr   rÿ   r   r   r   rK   Í  rL   Zposix_mathlibZmsvc_mathlib)	rÏ   ÚcompilerZcxx_compilerZtry_linkÚverboser.   Úupperrµ   r   )rw   rª   rý   Z	test_codeZnoteZis_cppZbk_crU   ZmlibsZ
posix_mlibZ	msvc_mlib)rE   Ú
subst_dictr   r   Úget_mathlib_info¥  s,    
ÿÿz'configuration.<locals>.get_mathlib_infoznpy_math_internal.h.srcz
npy_math.czieee754.c.srcznpy_math_complex.c.srczhalffloat.cc                 S   s   | j jdkrdgS g S )zð Add flag if we are using MSVC compiler

        We can't see this in our scope, because we have not initialized the
        distutils build command, so use this deferred calculation to run when
        we are building the library.
        Zmsvcz/GL-)r   Úcompiler_type)Z	build_cmdr   r   r   Ú
gl_if_msvcØ  s    z!configuration.<locals>.gl_if_msvcÚlib)Úinclude_dirsZextra_compiler_args)ÚsourcesZinstall_dirZ
build_infoznpymath.ini.inzlib/npy-pkg-configzmlib.ini.inZ_multiarray_testsz_multiarray_tests.c.srczmem_overlap.cznpy_argparse.cznpy_hashtable.czmem_overlap.hznpy_argparse.hznpy_hashtable.hznpy_extint128.h)r	  Údependsr@   Zdlpackzdlpack.hzarray_assign.hzbinop_override.hzcblasfuncs.hzlowlevel_strided_loops.hznpy_cblas.hznpy_config.hznpy_ctypes.hznpy_dlpack.hznpy_import.hznpy_longdouble.hz
npy_svml.hztempl_common.h.srczucsnarrow.hzufunc_override.hzumathmodule.hz	numpyos.hznpy_cpu_dispatch.hZsimdzsimd.hzarray_assign.cznpy_longdouble.czucsnarrow.czufunc_override.cz	numpyos.cznpy_cpu_features.c.srcZNPY_USE_BLAS_ILP64r
   Zblas_ilp64_optr`   Zblas_opt)Z
HAVE_CBLASNÚdefine_macroszcblasfuncs.czpython_xerbla.czabstractdtypes.hzarrayobject.hzarraytypes.hzarrayfunction_override.hzarray_coercion.hzarray_method.hznpy_buffer.hzcalculation.hzcommon.hzcommon_dtype.hzconvert_datatype.hz	convert.hzconversion_utils.hzctors.hzdescriptor.hzdtypemeta.hzdtype_transfer.hz	dragon4.hzeinsum_debug.hzeinsum_sumprod.hzexperimental_public_dtype_api.hzgetset.hzhashdescr.hziterators.hzlegacy_dtype_implementation.hz	mapping.hz	methods.hzmultiarraymodule.hznditer_impl.hznumber.hz
refcount.hzscalartypes.hz
sequence.hzshape.hz
strfuncs.hz
typeinfo.hzusertypes.hzvdot.hz_neighborhood_iterator_imp.hznpy_endian.hzarrayscalars.hz
noprefix.hznpy_interrupt.hznpy_3kcompat.hz
npy_math.hzhalffloat.hznpy_common.hznpy_os.hzutils.hzndarrayobject.hz	npy_cpu.hznumpyconfig.hzndarraytypes.hznpy_1_7_deprecated_api.hzabstractdtypes.czalloc.czarrayobject.czarraytypes.c.srczarray_coercion.czarray_method.czarray_assign_scalar.czarray_assign_array.czarrayfunction_override.czbuffer.czcalculation.czcompiled_base.czcommon.czcommon_dtype.cz	convert.czconvert_datatype.czconversion_utils.czctors.cz
datetime.czdatetime_strings.czdatetime_busday.czdatetime_busdaycal.czdescriptor.czdlpack.czdtypemeta.cz	dragon4.czdtype_transfer.czeinsum.c.srczeinsum_sumprod.c.srczexperimental_public_dtype_api.czflagsobject.czgetset.czhashdescr.czitem_selection.cziterators.czlegacy_dtype_implementation.czlowlevel_strided_loops.c.srcz	mapping.cz	methods.czmultiarraymodule.cznditer_templ.c.srcznditer_api.cznditer_constr.cznditer_pywrap.cznumber.cz
refcount.cz
sequence.czshape.czscalarapi.czscalartypes.c.srcz
strfuncs.cztemp_elide.cz
typeinfo.czusertypes.czvdot.cznpy_sort.h.srczquicksort.c.srczmergesort.c.srcztimsort.c.srczheapsort.c.srczradixsort.cppznpy_partition.h.srczselection.c.srcznpy_binsearch.h.srczbinsearch.c.srcc                    s€   t |ˆdƒ}tj |¡}tj |¡s.t |¡ ˆ}t||ƒr|t|dƒ�&}| ˆ  	ˆ j
ˆ j¡¡ W d   ƒ n1 sr0    Y  g S )Nz__umath_generated.crÆ   )r   r+   r,   rÌ   r-   rÍ   r   rÑ   rÓ   Z	make_codeZdefdictrÎ   )rt   r«   rÛ   Údirrñ   rJ   )r¿   Úgenerate_umath_pyrå   r   r   Úgenerate_umath_cÃ  s    

ÿ$z'configuration.<locals>.generate_umath_czumathmodule.czreduction.czfuncs.inc.srczsimd.inc.srczloops.h.srczloops_utils.h.srczloops.c.srczloops_unary_fp.dispatch.c.srczloops_arithm_fp.dispatch.c.srczloops_arithmetic.dispatch.c.srcz"loops_trigonometric.dispatch.c.srczloops_umath_fp.dispatch.c.srcz!loops_exponent_log.dispatch.c.srczmatmul.h.srczmatmul.c.srczclip.hzclip.cppzdispatching.czlegacy_array_method.czufunc_object.czextobj.czscalarmath.c.srczufunc_type_resolution.cz
override.cz_scaled_float_dtype.cz
override.hzgenerate_ufunc_api.pyZsvmlz/**/*.sT)Ú	recursiveZ_multiarray_umathrû   zgenerate_numpy_api.pyz*.py)z
-std=c++11z-D__STDC_VERSION__=0z-fno-exceptionsz	-fno-rtti)Úlanguager	  r
  r@   Úextra_objectsÚ
extra_infoZextra_cxx_compile_argsZ_umath_testsz_umath_tests.c.srcz_umath_tests.dispatch.c)r	  Z_rational_testsz_rational_tests.c.srcZ_struct_ufunc_testsz_struct_ufunc_tests.c.srcZ_operand_flag_testsz_operand_flag_tests.c.srcz_simd.cz_simd_inc.h.srcz_simd_data.inc.srcz_simd.dispatch.c.srcz_simd.hz_simd_arg.incz_simd_convert.incz_simd_easyintrin.incz_simd_vector.inc)r	  r
  Útestsz
tests/dataztests/examplesz*.pyi)*r:   r¸   r¹   Znumpy.distutils.system_inforº   r»   r¼   Z
local_pathr   Zis_releasedr‡   ÚsimplefilterZMismatchCAPIWarningZcheck_api_versionrì   r<   r   r´   r   rë   Zadd_data_dirZadd_define_macrosr3   r'   rÚ   rS   ÚpathsrQ   r+   r,   ro   Zadd_installed_libraryZadd_npy_pkg_configÚadd_extensionr7   r²   r*   r/   ÚglobZadd_subpackagerí   Zmake_svn_version_py)Úparent_packageZtop_pathr¸   r¹   rº   r»   r¼   Z	local_dirre   ræ   rî   rô   rõ   rö   Údepsr  Znpymath_sourcesr  Zcommon_depsZ
common_srcZ	blas_infoZ	have_blasr  Zmultiarray_depsZmultiarray_srcr  Z	umath_srcZ
umath_depsZ	svml_pathZ	svml_objsr   )rä   rò   rE   r¿   r  rå   r  r   Úconfiguration¤  s´   


ÿnG


þ	,




üþýÿÿ



ý



ý÷




















é









ö

ÿ






















































É:Æ=
































































¿H
























æ






÷ÿ
úþ

ÿí
ý

ÿÿÿ
û
÷úr  Ú__main__)Úsetup)r  )r]   N))r+   r3   r   r   r‡   r'   rÔ   r  Úos.pathr   Znumpy.distutilsr   Údistutils.dep_utilr   Ú	sysconfigr   Znumpy.compatr   Zsetup_commonr7   r²   r   r   r   r   r*   r/   r5   r6   r8   r>   r}   r!   r    r   rµ   r·   r  r"   Znumpy.distutils.corer  r   r   r   r   Ú<module>   sN   
X)%e	
     5
