U
    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	 zd dl
Z
W n ek
rh   dZ
Y nX ejjdkrzdZ
z2ejddZedde d dlZW 5 Q R X W n e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 r"dZ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   T)recordalways )version)_pep440z0.29.30zrequires cython)reasonc                 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 qqdstd|W 5 Q R X d  }}t| d 0}|D ]$}d|kr| }d|kr| }qW 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_dirZfidZtxt_to_findilineZso1Zso2r   r   values r,   E/tmp/pip-unpacked-wheel-c1z6a0q8/numpy/random/tests/test_extending.pytest_cython,   sL     
 
	

 r.   zrequires numba and cffic                  C   s   ddl m}  d S Nr   r   )Znumpy.random._examples.numbar   r0   r,   r,   r-   
test_numbaX   s    r1   zrequires cffic                  C   s   ddl m}  d S r/   )Znumpy.random._examples.cffir   r0   r,   r,   r-   	test_cffi]   s    r2   )"r   Zpytestr   r   r   warningsZnumpyr&   Znumpy.distutils.misc_utilr   ZcffiImportErrorflagsoptimizecatch_warningswfilterwarningsDeprecationWarningZnumbar   ZCython.Compiler.Versionr   Zcython_versionZnumpy.compatr   Zrequired_versionparseVersionmarkZskipifZslowr.   r1   r2   r,   r,   r,   r-   <module>   sJ   


*
