U
    ¸mœd\  ã                	   @   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m	Z	 d dl
mZ zd dlZW n ek
rt   dZY nX ejjdkr†dZz2ejdd��Ze dde¡ d dlZW 5 Q R X W n eefk
rÔ   dZY nX zd dlZd d	lmZ W n ek
�r   dZY n,X d d
lmZ dZe e¡e e¡k �r4dZejj edd�ejj edkdd�ejj!dd„ ƒƒƒZ"ejj edk�p~edkdd�dd„ ƒZ#ejj edkdd�dd„ ƒZ$dS )é    N)Úexec_mod_from_location)ÚIS_WASMé   T)ÚrecordÚalwaysÚ )Úversion)Ú_pep440z0.29.30zCan't start subprocess)Úreasonzrequires cythonc                 C   sv  t j t j t¡d¡}t || d ¡ | d d d }tjt	j
ddddt| d	 ƒd
dt| d ƒg	t|ƒd� t|d ƒ�:}d}t|ƒD ]\}}||kr† q®q†ds®td |¡ƒ‚W 5 Q R X d  }}t| d ƒ�0}|D ]$}d|kræ| ¡ }d|krÒ| ¡ }qÒW 5 Q R X |d k	�st‚|d k	�st‚td|ƒ td|ƒ}	ddlm}
 |	 |
dƒdd¡}|jdk�s`t‚|jtjk�srt‚d S )Nz..ÚrandomZ	_examplesÚcythonzsetup.pyÚbuildÚinstallz--prefixZ
installdirz#--single-version-externally-managedz--recordztmp_install_log.txt)Úcwdzextending.cz0NumPy API declarations from "numpy/__init__.pxd"Fz-Could not find '{}' in C file, wrong pxd usedz
extending.Úextending_distributionsÚ	extendingr   )ÚPCG64é
   Úd)r   )ÚosÚpathÚjoinÚdirnameÚ__file__ÚshutilÚcopytreeÚ
subprocessÚ
check_callÚsysÚ
executableÚstrÚopenÚ	enumerateÚAssertionErrorÚformatÚstripr   Znumpy.randomr   Zuniforms_exÚshapeZdtypeÚnpZfloat64)Ztmp_pathÚsrcdirÚ	build_dirÚfidZtxt_to_findÚiÚlineZso1Zso2r   r   Úvalues© r.   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/random/tests/test_extending.pyÚtest_cython/   sL     
 
ýû	
ÿ
 ÿr0   zrequires numba and cffic                  C   s   ddl m}  d S ©Nr   ©r   )Znumpy.random._examples.numbar   r2   r.   r.   r/   Ú
test_numba\   s    r3   zrequires cffic                  C   s   ddl m}  d S r1   )Znumpy.random._examples.cffir   r2   r.   r.   r/   Ú	test_cffia   s    r4   )%r   Zpytestr   r   r   ÚwarningsÚnumpyr'   Znumpy.distutils.misc_utilr   Znumpy.testingr   ZcffiÚImportErrorÚflagsÚoptimizeÚcatch_warningsÚwÚfilterwarningsÚDeprecationWarningZnumbaÚSystemErrorr   ZCython.Compiler.Versionr   Zcython_versionZnumpy.compatr	   Zrequired_versionÚparseÚVersionÚmarkZskipifZslowr0   r3   r4   r.   r.   r.   r/   Ú<module>   sN   


*ÿ
