U
    Gvf|
                     @   s0  d dl Z d dlZd dlZd dlZd dlZdd Zdd Zdd Zdd	d
Ze	dkr,e
 Zejddedd e Zejse ejejeZee ed d Zejesee eedd ed Zeee nLe ejejeZe e ej Zee ee eed e dS )    Nc                  C   s2   ddl } tdd | jddd D }|dk S )z
    A new random C API was added in 1.18 and became stable in 1.19.
    Prefer the new random C API when building with recent numpy.
    r   Nc                 s   s   | ]}t |V  qd S )N)int).0num r   =/tmp/pip-unpacked-wheel-96ln3f52/scipy/stats/_generate_pyx.py	<genexpr>   s     zisNPY_OLD.<locals>.<genexpr>.   )      )Znumpytuple__version__split)npverr   r   r   	isNPY_OLD   s    "r   c              	   C   sv   t tjd  }t|dd}| }W 5 Q R X | d }t|d"}||j	t
tt d W 5 Q R X dS )?Substitute True/False values for NPY_OLD Cython build variable.Z
_biasedurnz
.pyx.templrz_biasedurn.pyxw)ZNPY_OLDN)pathlibPath__file__parentabsoluteopenwith_suffixreadwriteformatstrboolr   )outdirZbiasedurn_basesrccontentsoutfiledestr   r   r   make_biasedurn   s    r&   c              	   C   sd   ddl }t| d d}| }W 5 Q R X t|d d"}||ddt  | W 5 Q R X dS )	r   r   Nzunuran_wrapper.pyx.templr   zunuran_wrapper.pyxr   zDEF NPY_OLD = isNPY_OLDzDEF NPY_OLD = )rer   r   r   subr   )srcdirr!   r'   r"   r#   r%   r   r   r   make_unuran   s    

r*   Fc                 C   sV   t tjd }|r6tjtjt|d| ddgdd ntjtjt|d| gdd d S )Nz_boost/include/code_gen.py-oz--distutils-buildTrueT)check)	r   r   r   r   
subprocessrunsys
executabler   )r!   distutils_buildZcode_genr   r   r   
make_boost(   s     r3   __main__r+   z--outdirzPath to the output directory)typehelpZ_boostr"   T)r2   Z_unuran)F)r   r.   r0   osargparser   r&   r*   r3   __name__ArgumentParserparseradd_argumentr   
parse_argsargsr!   r   pathabspathdirnamer   Z
outdir_absZoutdir_abs_boostexistsmakedirsZoutdir_abs_unuranZ
srcdir_absgetcwdr   r   r   r   <module>   s8   




