Spade
Mini Shell
| Directory:~$ /lib64/python3.6/venv/__pycache__/ |
| [Home] [System Details] [Kill Me] |
3
k��h�I�@s�ddlZddlZddlZddlZddlZddlZddlZeje�Z Gdd�d�Z
d
dd�Zddd�Zed kr�d
Z
ye�dZ
Wn4ek
r�Zzedeejd�WYddZ[XnXeje
�dS)�Nc@s�eZdZddd�Zdd�Zdd�Zd d
�Zdd�Zej d
krDdd�Z
ddd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �
EnvBuilderFNcCs(||_||_||_||_||_||_dS)N)�system_site_packages�clear�symlinks�upgrade�with_pip�prompt)�selfrrrrrr�r
�%/usr/lib64/python3.6/venv/__init__.py�__init__+szEnvBuilder.__init__cCsxtjj|�}|j|�}|j}d|_|j|�|j|�|jrF|j|�|j s`|j
|�|j|�|rtd|_|j|�dS)NFT)�os�path�abspath�ensure_directoriesr�create_configuration�setup_pythonr�
_setup_pipr�
setup_scripts�
post_setup)r �env_dir�contextZtrue_system_site_packagesr
r
r�create4s
zEnvBuilder.createcCs`xZtj|�D]L}tjj||�}tjj|�s6tjj|�rBtj|�qtjj|�rtj |�qWdS)N)
r
�listdirr�join�islink�isfile�remove�isdir�shutilZrmtree)r r�fnr
r
r�clear_directoryNszEnvBuilder.clear_directorycCs�dd�}tjj|�r$|jr$|j|�tj�}||_tjj|�d|_ |j
dk rT|j
n|j }d||_
||�tj}tj
dkr�d|kr�tjd}ntj}tjjtjj|��\}}||_||_||_tj
dkr�d} d }
tjj|d
d�}n(d} d
}
tjj|ddtjdd�d�}tjj||
�|_}||�||�tjdk�r|tjdk�r|tj
dk�r|tjj|d�}
tjj|
��s|tjd|
�tjj|| �|_}| |_tjj||�|_||�|S)NcSs@tjj|�stj|�n$tjj|�s0tjj|�r<td|��dS)NzUnable
to create directory %r)r
r�exists�makedirsrr�
ValueError)�dr
r
r�create_if_needed^sz7EnvBuilder.ensure_directories.<locals>.create_if_needed�z(%s)
�darwin�__PYVENV_LAUNCHER__Zwin32ZScriptsZInclude�Libz
site-packages�bin�include�libzpython%d.%d��
�posix�lib64l)r
rr"rr!�types�SimpleNamespacer�split�env_namer�environ�sys�platform�
executabler�
python_dirZ
python_exer�version_infoZinc_path�maxsize�name�symlink�bin_path�bin_name�env_exe)r rr&rr�envr9�dirnameZexenameZbinnameZincpathZlibpathrZ link_path�binpathr
r
rrVsN
zEnvBuilder.ensure_directoriescCsztjj|jd�|_}t|ddd��L}|jd|j�|jrBd}nd}|jd|�|jd t j
dd
��WdQRXdS)Nz
pyvenv.cfg�wzutf-8)�encodingz
home = %s
�trueZfalsez"include-system-site-packages = %s
zversion = %d.%d.%d
�)r
rrrZcfg_path�open�writer:rr7r;)r rr�fZinclr
r
rr�s zEnvBuilder.create_configuration�ntcCs(|jd�rd}n|jd�o"|jd�}|S)N�.pyd�.dllT�pythonz.exe)rMrN)�endswith�
startswith)r rK�resultr
r
r�include_binary�s
zEnvBuilder.include_binarycCs~|j}|sjy6tjj|�s@|r4tjtjj|�|�ntj||�Wn&tk
rhtjd||�d}YnX|rzt j
||�dS)NzUnable to symlink %r to
%rT)rr
rrr>�basename� Exception�logger�warningr�copyfile)r �src�dst�relative_symlinks_okZ
force_copyr
r
r�symlink_or_copy�s
zEnvBuilder.symlink_or_copycs�|j}|j}|j}||j|�|j}tjdkr�tjj|�sFtj |d�xNd
D]F}tjj
||�}tjj|�sL||j|dd�tjj|�sLtj |d�qLW�nRd}|j��fdd �tj
|�D�}x<|D]4} tjj
|| �}
tjj
|| �}||jkr�||
|�q�Wtjj
||�}tjj|��rd�fd
d �tj
|�D�}x4|D],} tjj
|| �}
tjj
|| �}||
|��q4Wx�tj|j�D]v\}}
}d|k�rrtjj|�}tjj
|jd|�}tjj|��s�tj|�tjj
|d�}
tjj
|d�}tj|
|�P�qrWdS)NrLi�rO�python3T)r[ZDLLscsg|]}�|�r|�qSr
r
)�.0rK)r,r
r�
<listcomp>�sz+EnvBuilder.setup_python.<locals>.<listcomp>csg|]}�|�r|�qSr
r
)r^rK)r,r
rr_�szinit.tclr*)rOr])r?rAr\r9r:r
r=rr�chmodrr"rSrr�walkrTrr#rrX)r rrDrZcopierrC�suffixZsubdir�filesrKrYrZ�root�dirsZtcldirr
)r,rr�sN
zEnvBuilder.setup_pythoncCs$|jddddg}tj|tjd�dS)Nz-ImZ ensurepipz --upgradez
--default-pip)�stderr)rA�
subprocessZcheck_outputZSTDOUT)r r�cmdr
r
rr�s
zEnvBuilder._setup_pipcCs2tjjtjjt��}tjj|d�}|j||�dS)N�scripts)r
rrrC�__file__r�install_scripts)r rrr
r
rr�szEnvBuilder.setup_scriptscCsdS)Nr
)r rr
r
rrszEnvBuilder.post_setupcs\|j|j|j|j|jd�}tj��fdd�|j�D�}x
|j�D]\}}|j||�}q@W|S)N)Z__VENV_DIR__Z
__VENV_NAME__Z__VENV_PROMPT__Z__VENV_BIN_NAME__Z__VENV_PYTHON__csi|]\}}�|�|�qSr
r
)r^�key�s)�quoter
r�
<dictcomp>'sz0EnvBuilder.replace_variables.<locals>.<dictcomp>) rr5rr@rA�shlexrn�items�replace)r �textrZreplacementsrlZquotedr
)rnr�replace_variabless
zEnvBuilder.replace_variablesc!Cs�|j}t|�}�x�tj|�D�]~\}}}||kr`x,|dd�D]}|dtjfkr>|j|�q>Wq�x8|D�].} tjj|| �}
||d�jtj �dd�}|s�|}ntjj|f|��}tjj
|�s�tj|�tjj|| �}
t|
d��} | j
�}WdQRX|
jd��sd|
|_y$|jd�}|j||�}|jd�}Wn6tk
�rb}zd}tjd|
|�WYdd}~XnX|dk rht|
d��} | j|�WdQRXtj|
|
�qhWqWdS)N�commonr.�rbz.exezutf-8z+unable to copy script
%r, may be binary:
%s�wb)r?�lenr
rar=rrrr4�sepr"r#rI�readrPZscript_path�decodert�encode�UnicodeErrorrVrWrJrZcopymode)r rrrDZplenrdrercr%rKZsrcfilerbZdstdirZdstfile�data�er
r
rrk,sB
zEnvBuilder.install_scripts)FFFFFN)F)�__name__�
__module__�__qualname__rrr!rrr
r=rSr\rrrrrtrkr
r
r
rrs
8
3
rFcCs
t|||||d�}|j|�dS)N)rrrrr)rr)rrrrrr�builderr
r
rr]src Csbd}tjd*krd}nttd�s"d}|s2td���n,ddl}|jtddd �}|jd
ddd
d�|jdddddd�tj dkr�d}nd}|j
�}|jd|dddd�|jd|dddd�|jdddddd�|jddddd
d�|jd!d"ddd#d$�|jd%d&d'�|j|�}|j�r"|j
�r"td(��t|j|j
|j|j|j|jd)�}x|jD]}|j|��qJWdS)+NTrHF�base_prefixz.This
script is only for use with Python >= 3.3rzFCreates virtual Python
environments in one or more target directories.z|Once an environment has
been created, you may wish to activate it, e.g. by sourcing an activate
script in its bin
directory.)�progZdescriptionZepilogreZENV_DIR�+z)A directory to
create the environment
in.)�metavar�nargs�helpz--system-site-packages�
store_true�system_sitezDGive the virtual environment access to the
system site-packages dir.)�default�action�destr�rLz
--symlinksrz[Try to use symlinks rather than copies, when symlinks are not
the default for the platform.z--copiesZstore_falsez\Try to use copies
rather than symlinks, even when symlinks are the default for the
platform.z--clearrzcDelete the contents of the environment directory if
it already exists, before environment creation.z --upgraderzlUpgrade the
environment directory to use this version of Python, assuming Python has
been upgraded in-place.z
--without-piprz]Skips installing or upgrading pip
in the virtual environment (pip is bootstrapped by
default))r�r�r�r�z--promptz;Provides an alternative prompt prefix
for this environment.)r�z1you cannot supply --upgrade and --clear
together.)rrrrrr)rHrH)r7r;�hasattrr$�argparse�ArgumentParserr��add_argumentr
r=Zadd_mutually_exclusive_group�
parse_argsrrrr�rrrrer) �argsZ
compatibler��parserZuse_symlinks�groupZoptionsr�r%r
r
r�maines\
r��__main__r'z Error:
%s)�file)FFFFN)N)Zloggingr
rrgr7r2rpZ getLoggerr�rVrrr�ZrcrUr�printrf�exitr
r
r
r�<module>s*
M
H$