
    N=d                     n   d Z ddlZddlZej                            e          Zd ZdZej	        dk    r2 G d d          Z
ej                            d e
                       dS ddlmZ dd	lmZmZ  G d
 dee          Z G d dee          Zej                             e                       dS )z>Patches that are applied at runtime to the virtual environment    Nc                 B    | j         j        f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                      | g|R i |}|                      d          }d|v r3t          t          j                            t
          j                  f|d<   dD ]1}d                    |          }||v r|                    |d            2|S )Ninstallprefix)purelibplatlibheadersscriptsdataz
install_{})	get_option_dictVIRTUALENV_PATCH_FILEospathabspathsysr   formatpop)selfargskwargsresultr   basekeyold_parse_config_filess          5D:\Sites\api_v1\venv\Lib\site-packages\_virtualenv.pyparse_config_filesz&patch_dist.<locals>.parse_config_files   s    ''>t>>>v>>&&y11w 5rwsz7R7R RGHH 	' 	'D%%d++Cg~~C&&&    N)Distributionr   )distr   r   s     @r   
patch_distr    
   s=     ".A
 
 
 
 
 ,>D(((r   )zdistutils.distzsetuptools.dist)      c                   N    e Zd ZdZdZg ZddZed             Zed             Z	dS )_FinderzFA meta path finder that allows patching the imported distutils modulesNc           	         |t           v r=| j        7t          | j                  dk    r2dd l}|                                }| j                            |           ddlm} ddl	m
} | j        d         5  || _        	  |||          }|t          |j        d          }	|	rdnd}
t          |j        |
          }|	r| j        n| j        }||ur2	 t!          |j        |
 |||                     n# t"          $ r Y nw xY w|d | _        cd d d            S 	 d | _        n# d | _        w xY w	 d d d            d S # 1 swxY w Y   d S d S d S )Nr   )partial)	find_specexec_moduleload_module)_DISTUTILS_PATCHfullnamelenlock	threadingLockappend	functoolsr&   importlib.utilr'   hasattrloadergetattrr(   r)   setattrAttributeError)r   r+   r   targetr.   r-   r&   r'   spec
is_new_api	func_nameoldfuncs                r   r'   z_Finder.find_spec3   s   +++0Ety>>Q&&$$$$$>>++D I$$T***------444444Yq\ - -$,DM-(y488+)0m)L)LJ9C(VI")$+y"A"AC7A#W4#3#3tGWD"$!)$+DKGGDRUDVDV$W$W$W$W'5 !) !) !)$(D!)#'(,#- - - - - - - - , )-,,,,#- - - - - - - - - - - - - - - - - -! ,+0E0EsU   6D;?AD! C32D!3
D =D!?D  D!D;D;!	D**D;;D?D?c                 Z     | |           |j         t          v rt          |           d S d S N__name__r*   r    )r<   modules     r   r(   z_Finder.exec_moduleW   s9    CKKK"2226""""" 32r   c                 V     | |          }|j         t          v rt          |           |S r?   r@   )r<   namerB   s      r   r)   z_Finder.load_module]   s0    SYYF"2226"""Mr   r?   )
rA   
__module____qualname____doc__r+   r-   r'   staticmethodr(   r)    r   r   r$   r$   )   sq        TT
 "	- "	- "	- "	-H 
	# 	# 
	#
 
	 	 
	 	 	r   r$   )find_module)ImpImporter	ImpLoaderc                       e Zd ZddZddZdS )_VirtualenvImporterNc                 d    t                               |            t          j        | |           d S r?   )object__init__rK   )r   r   s     r   rQ   z_VirtualenvImporter.__init__k   s-    OOD!!! t,,,,,r   c                     |t           v rE	 t          |gt          |                    d          d         |          R  S # t          $ r Y nw xY wd S )N.)r*   _VirtualenvLoaderrJ   splitImportError)r   r+   r   s      r   rJ   z_VirtualenvImporter.find_moduleo   sl    +++,XcHNNSVDWDWXZD[]a8b8bcccc"   D4s   3? 
AAr?   )rA   rE   rF   rQ   rJ   rI   r   r   rN   rN   j   s<        	- 	- 	- 	-	 	 	 	 	 	r   rN   c                   $     e Zd Zd Z fdZ xZS )rU   c                 j    t                               |            t          j        | ||||           d S r?   )rP   rQ   rL   )r   r+   filefilenameetcs        r   rQ   z_VirtualenvLoader.__init__x   s3    OOD!!!tXtXsCCCCCr   c                     t          t          |                               |          }t          |           d |_        |S r?   )superrU   r)   r    
__loader__)r   r+   rB   	__class__s      r   r)   z_VirtualenvLoader.load_module|   s<    ,d33??IIFv $FMr   )rA   rE   rF   rQ   r)   __classcell__)r`   s   @r   rU   rU   w   sJ        	D 	D 	D	 	 	 	 	 	 	 	 	r   rU   )rG   r   r   r   join__file__r   r    r*   version_infor$   	meta_pathinsertimprJ   pkgutilrK   rL   rP   rN   rU   r0   rI   r   r   <module>ri      sS   D D 
			 



X.. > > >6 7 f9 9 9 9 9 9 9 9v MGGII&&&&&  ........    fk   	 	 	 	 	FI 	 	 	 M,,../////r   