3
���h�% � @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
mZmZ ddl
mZ ddlmZ ddlmZ dadadd � Zd
d� Zdd
� Zdd� Zeg g g dfdd��Zeg g g ddfdd��Zdadd� Zdd� Zdd� Zdd� Zedd� �Z G dd� d�Z!dS ) z�
Utility functions for
- building and importing modules on test time, using a temporary location
- detecting if compilers are present
� N)�asbytes�asstr)�temppath)�
import_module)�md5i c C s^ t d k rZytjjt � W n tk
r, Y nX ytjt � W n ttfk
rT Y nX d a d S )N) �_module_dir�sys�path�remove�
ValueError�shutil�rmtree�IOError�OSError� r r �6/tmp/pip-build-5_djhm0z/numpy/numpy/f2py/tests/util.py�_cleanup s r c C s6 t d kr2tj� a tjt� t tjkr2tjjdt � t S )Nr ) r �tempfile�mkdtemp�atexit�registerr r r �insertr r r r �get_module_dir. s
r c C s, t � } dt }td7 a|tjkr(td��|S )Nz_test_ext_module_%d� z%Temporary module name already in use.)r �_module_numr �modules�RuntimeError)�d�namer r r �get_temp_module_name8 s
r c s i �� �fdd�}� j |_ |S )Nc sn t | |f�}|�krTy� | |��|< |