B
    n\                 @   sH   d dl mZmZmZ d dlZd dlZd dlmZ eZ	G dd de
ZdS )    )divisionabsolute_importprint_functionN)Distributionc               @   sP   e Zd ZdddZdd Zdd Zdd	 ZdddZdd Zdd Z	dd Z
d
S )EnvironmentConfigALLc             K   s   || _ || _d | _d | _d S )N)_distutils_section
_conf_keys_conf_hook_handler)selfdistutils_sectionkw r   Dlib/python3.7/site-packages/numpy/distutils/fcompiler/environment.py__init__
   s    zEnvironmentConfig.__init__c       	      C   s   | j | }|\}}}}}|s$dd }td| j|f  | ||}td||f  |rxtj|d }td||f  |r| jr| j|dd }td||f  d S )	Nc             S   s   | S )Nr   )xr   r   r   <lambda>   s    z1EnvironmentConfig.dump_variable.<locals>.<lambda>z%s.%s:z  hook   : %sz  environ: %s)NN   z  config : %s)r	   printr   r   osenvirongetr
   )	r   name	conf_deschookenvvarconfvarconvertappendvr   r   r   dump_variable   s    

zEnvironmentConfig.dump_variablec             C   s   x| j D ]}| | qW d S )N)r	   r!   )r   r   r   r   r   dump_variables   s    z EnvironmentConfig.dump_variablesc             C   s8   y| j | }W n tk
r*   t|Y nX | ||S )N)r	   KeyErrorAttributeError_get_var)r   r   r   r   r   r   __getattr__#   s
    zEnvironmentConfig.__getattr__Nc             C   s@   y| j | }W n tk
r"   |S X | ||}|d kr<|}|S )N)r	   r#   r%   )r   r   defaultr   varr   r   r   r   *   s    zEnvironmentConfig.getc             C   s   |\}}}}}|  ||}|d k	rtj|}	|	d k	r|r|rtjdddkr\||	g }q|	}dtj krd|d d d d }
tj|
td	d
 n|	}|d k	r| j	r| j	|d |fd }|d k	r||}|S )NZNPY_DISTUTILS_APPEND_FLAGS01z{} is used as is, not appended zto flags already defined z5by numpy.distutils! Use NPY_DISTUTILS_APPEND_FLAGS=1 z+to obtain appending behavior instead (this z2behavior will become default in a future release).   )
stacklevelr   )
r   r   r   r   keysformatwarningswarnUserWarningr
   )r   r   r   r   r   r   r   r   r(   Zenvvar_contentsmsgr   r   r   r%   4   s&    zEnvironmentConfig._get_varc             C   s"   | j f d| ji| j}||_|S )Nr   )	__class__r   r	   r   )r   Zhook_handlerZecr   r   r   cloneN   s    
zEnvironmentConfig.clonec             C   s$   t |tr|| j| _n|| _d S )N)
isinstancer   Zget_option_dictr   r
   )r   Zdistr   r   r   use_distributionT   s    
z"EnvironmentConfig.use_distribution)r   )N)__name__
__module____qualname__r   r!   r"   r&   r   r%   r4   r6   r   r   r   r   r   	   s   


r   )Z
__future__r   r   r   r   r/   Zdistutils.distr   typeZ__metaclass__objectr   r   r   r   r   <module>   s
   