o
    i|
                     @   s4  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re
 Zejddedd e Zejspe ejejeZee ed d Zejes_ee eedd ed Zeee dS e ejejeZe e ej Zee ee eed e dS 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   T/var/www/edux/Edux_v2/venv/lib/python3.10/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   s   t tjd  }t|dd}| }W d   n1 s!w   Y  | d }t|d}||j	t
tt d W d   dS 1 sIw   Y  dS )?Substitute True/False values for NPY_OLD Cython build variable.
_biasedurnz
.pyx.templrNz_biasedurn.pyxw)NPY_OLD)pathlibPath__file__parentabsoluteopenwith_suffixreadwriteformatstrboolr   )outdirbiasedurn_basesrccontentsoutfiledestr   r   r   make_biasedurn   s   
"r*   c                 C   s   ddl }t| d d}| }W d   n1 sw   Y  t|d d}||ddt  | W d   dS 1 s@w   Y  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   sX   t tjd }|rtjtjt|d| ddgdd d S 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_buildcode_genr   r   r   
make_boost(   s   

r8   __main__r/   z--outdirzPath to the output directory)typehelp_boostr&   T)r6   _unuran)F)r   r2   r4   osargparser   r*   r.   r8   __name__ArgumentParserparseradd_argumentr"   
parse_argsargsr$   r   pathabspathdirnamer   
outdir_absoutdir_abs_boostexistsmakedirsoutdir_abs_unuran
srcdir_absgetcwdr   r   r   r   <module>   s<    



