U
    9%e|
                     @   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   X/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/scipy/stats/_generate_pyx.py	<genexpr>   s     zisNPY_OLD.<locals>.<genexpr>.   )      )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     r4   __main__r,   z--outdirzPath to the output directory)typehelpZ_boostr#   T)r3   Z_unuran)F)r   r/   r1   osargparser   r'   r+   r4   __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   




