U
    »mœd|
  ã                   @   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sàe  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ƒ 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   úR/home/sam/Atlas/atlas_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   



ÿ
