3
g                 @   s   d Z ddlZddlZejjeZdd ZdZej	dkrVG d	d
 d
Z
ejjde
  nNddlmZ ddlmZmZ G dd deeZG dd deeZejje  dS )z>Patches that are applied at runtime to the virtual environment    Nc                s    | j j  fdd}|| j _dS )a  
    Distutils allows user to configure some arguments via a configuration file:
    https://docs.python.org/3/install/index.html#distutils-configuration-files

    Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up.
    c                sh    | f||}| j d}d|kr8ttjjtjf|d< x*d	D ]"}dj|}||kr>|j|d  q>W |S )
Ninstallprefixpurelibplatlibheadersscriptsdataz
install_{})r   r   r   r   r   )	Zget_option_dictVIRTUALENV_PATCH_FILEospathabspathsysr   formatpop)selfargskwargsresultr   basekey)old_parse_config_files I/var/www/tester-filtro-web/env/lib/python3.6/site-packages/_virtualenv.pyparse_config_files   s    


z&patch_dist.<locals>.parse_config_filesN)ZDistributionr   )Zdistr   r   )r   r   
patch_dist
   s    r   distutils.distsetuptools.dist      c               @   s:   e Zd ZdZdZg Zd	ddZedd Zedd Z	dS )
_FinderzFA meta path finder that allows patching the imported distutils modulesNc             C   s  |t kr| jd krt| jdkr<dd l}|j }| jj| ddlm} ddl	m
} | jd  || _z|||}|d k	rt|jd}	|	rdnd}
t|j|
}|	r| jn| j}||k	ryt|j|
||| W n tk
r   Y nX |S W d d | _X W d Q R X d S )Nr   )partial)	find_specexec_moduleload_module)_DISTUTILS_PATCHfullnamelenlock	threadingZLockappendZ	functoolsr    Zimportlib.utilr!   hasattrloadergetattrr"   r#   setattrAttributeError)r   r%   r   targetr(   r'   r    r!   specZ
is_new_apiZ	func_nameoldfuncr   r   r   r!   3   s.    
z_Finder.find_specc             C   s   | | |j tkrt| d S )N)__name__r$   r   )r1   moduler   r   r   r"   W   s    
z_Finder.exec_modulec             C   s   | |}|j tkrt| |S )N)r3   r$   r   )r1   namer4   r   r   r   r#   ]   s    
z_Finder.load_module)N)
r3   
__module____qualname____doc__r%   r'   r!   staticmethodr"   r#   r   r   r   r   r   )   s   
$r   )find_module)ImpImporter	ImpLoaderc               @   s    e Zd ZdddZdddZdS )_VirtualenvImporterNc             C   s   t j|  tj| | d S )N)object__init__r;   )r   r   r   r   r   r?   k   s    
z_VirtualenvImporter.__init__c             C   s@   |t kr<yt|ft|jdd | S  tk
r:   Y nX d S )N.   )r$   _VirtualenvLoaderr:   splitImportError)r   r%   r   r   r   r   r:   o   s    z_VirtualenvImporter.find_module)N)N)r3   r6   r7   r?   r:   r   r   r   r   r=   j   s   
r=   c                   s$   e Zd Zdd Z fddZ  ZS )rC   c             C   s    t j|  tj| |||| d S )N)r>   r?   r<   )r   r%   filefilenameZetcr   r   r   r?   x   s    
z_VirtualenvLoader.__init__c                s"   t t| j|}t| d |_|S )N)superrC   r#   r   
__loader__)r   r%   r4   )	__class__r   r   r#   |   s    z_VirtualenvLoader.load_module)r3   r6   r7   r?   r#   __classcell__r   r   )rJ   r   rC   w   s   rC   )r   r   )r   r   )r8   r
   r   r   join__file__r	   r   r$   version_infor   	meta_pathinsertZimpr:   Zpkgutilr;   r<   r>   r=   rC   r)   r   r   r   r   <module>   s   
;