%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyc

�
i�B^c@`s�ddlmZddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
m
Z
ddlmZddl
mZmZmZmZdd	lmZmZdd
lmZmZddlZddlmZddlmZd
ZdZdZdZdZ dZ!dZ"de#fd��YZ$e%e%d�Z&e%e%d�Z'e%e%d�Z(e%e%d�Z)dS(i(tprint_function(tabsolute_import(tdivisionN(tdatetime(t
get_directory(t
check_calltcheck_outputt	list_dirstrun_commandi(tEXTENSION_PATTERNt
ExtensionInfo(tInterpretertinterpreters(tJSONDecodeError(tClSelectExceptt
virtualenvs.virtualenv.backups/usr/bin/virtualenvt#s/usr/share/l.v.e-manager/utilstpython_wrappersset_env_vars.pytEnvironmentcB`s
eZddd�Zd�Zd�Zdd�Zded�Zdddd�Z	e
d�Zdd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zdd�Zdd�Ze
e
edd�Zdd�Zd�ZRS(cC`s||_|r||_ntjtj��j|_tj|j�j|_	tj
j|j	d�|_|dkr�t|_n	||_tj
jt|j|j�|�|_
tj
jt|jt�|j�|_d|_d|_d|_d||_idd6|_dS(Ns.pip/pip.logtpythonsMySQL-pythontMySQLdb(tnametusertpwdtgetpwuidtostgetuidtpw_nametgetpwnamtpw_dirthomepathtpathtjointpip_logfiletNonetDEFAULT_PREFIXtprefixt_abs_prefixt
BACKUP_PREFIXtbackup_patht
_requirementst_interpretert_piptinterpreter_namet_extension_remap(tselfRRR$((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt__init__%s"		'				
cC`s,d|jj|jj|j|j|jfS(Ns(%s.%s(name='%s', user='%s', prefix='%s')(t	__class__t
__module__t__name__RRR$(R-((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt__repr__;sc`s(tj�j����fd�}|S(Nc`sDtj�j�tj�j��jtjd<�jtjd<dS(NtUSERtHOME(Rtsetgidtpw_gidtsetuidtpw_uidRtenvironR((R-tuser_pwd(sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytfuncCs(RRR(R-R;((R-R:sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt_demote@scC`sOi|jd6|j�d6|j�d6}|rK||=i|t||�6S|S(NRtinterpretert
extensions(RR=R>tgetattr(R-tkeyte((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytas_dictKs

cC`ski|jd6|j�j�d6}|rF|ji|j�d6�n|rg||=i|t||�6S|S(NRR=R>(RR=RBtupdateR>R?(R-R@twith_extensionsRA((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytas_deepdictVs
	c
C`s�|st�}n|j}|r9tjj||�}ndjttjj|j��|j�}t	d|d|j
|g}i|j�d6|jd6|d6}yt
||�Wn�tjk
r�}t|�}d}	d|kr�d}
n�d	|kri|jd
|jd
�d�}|| jd�}|d
ksE|d
krN|}
qo|| }	||d}
n|}
tjd|
d|	��nX|j�dS(Ns({}:{})s--prompts--pythont
preexec_fntcwdtwaitsDisk quota exceededsJDisk quota exceeded.
 Contact system administrator to increase disk quota.t	Tracebackt:is
i����tmessagetdetails(RRRR tformatRtbasenameR$RtVIRTUALENV_BINtbinaryR<RRRtExternalProgramFailedtstrR"tfindtrfindtconfigure_environment(
R-R=tversionRHRtprompttargstkwargsterrt	err_traceterr_textterr_chart
err_trace_end((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytcreateds>	$		$		
	
cC`sFtjj|jd�}tjj||j�}|d}tjj|�rPdStjj|�rrtj|�ntj||�y8tjj|�s�tjtjjt	t
�|�nWn3ttfk
r�|r�tj||�n�nXtjjtjj|t
��sBtjtjjt	t
�tjj|t
��ndS(s�
        Configures environment:
        1. Rename binary to pythonX.Y_bin
        2. Makes symlink from python binary to python_wrapper
        tbint_binN(RRR R+tislinktexiststremovetrenametsymlinkt
WRAPPERS_PATHtPYTHON_WRAPPERtIOErrortOSErrortSET_ENV_VARS_SCRIPT(R-tauto_restoretbin_pathtinterpreter_pathtnew_interpreter_path((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyRU�s$
&!cC`s_|j}|r'tjj||�}ntjj|�r[tddd|d|j��ndS(Ns/bin/rms-rs--interactive=neverRF(RRR RcRR<(R-RVR((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytdestroy�s	cC`s"||jkr|j|S|SdS(s�
        Returns extensions name considering extension remap table
        :param extension_name: Input extension name
        :return: Result extension name
        N(R,(R-textension_name((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt_get_extension_name�scC`stjj|j|�}tjj|jd|��s:dStd|�|j|�|j|�}g}tjj|�r�t|d�}|j	�}|j
�n|jd|�|jd|dt
�t|d�}|j|�|j
�t|jd|�dd|j|��dS(	sX
        Recreate python virtual environment with requirements
        :return:
        RVNsRe-create python virtualenv:trRHtwtinstalls-r(RRR Rctpiptprintt_pip_freezetpip_requirementstopent	readlinestcloseRpR_tTruet
writelinesR(R-RVtenv_pathtrequirements_pathtrequirementst	reqs_file((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt	_recreate�s&




cC`s1x*tdd�j�D]}|j|�qWdS(NR@RV(RtkeysR�(R-RV((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytrecreate�scC`stjj|j�S(N(RRRc(R-((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyRc�scC`s(|js!td|j�|_n|jS(NR$(R)RR(R-((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyR=�s	cC`s|j|�}tj|j�}|jt�}|d|dpDd}}ddd|j�d|jd|f}|r�|d}ddd|j�d|jd|d	|f}ntj|||�r�t	d
|��nt
d|d|j�d
|j�|j
�dS(Niits	/bin/bashs-ls-cs --log-file=s	 install s==s6Extension '%s' install is prohibited. System extensionRXRFRG(RrR
tget_locked_extensionsR+tsplittVERSION_DELIMITERRvR!tis_extensions_lockedt
ValueErrorRR<RRx(R-Rqtlocked_extensionsttt	extensionRVtcommand((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytextension_install�s	"
	-"cC`s`ddd|j�d|jdj|�f}td|d|j�d|j�|j�dS(	Ns	/bin/bashs-ls-cs --log-file=s install -r {}RXRFRG(RvR!RMRR<RRx(R-R�R�((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytextension_install_requirements�s"c
C`sFt|j�d|jdd|d|j�d|j�|j�dS(Ns--log-file=Rus	--upgradeRFRG(RRvR!R<RRx(R-R�((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytextension_updatescC`stj|j�}|jt�}|d|dp5d}}|rO|d}ntj|||�rwtd|��ntj|j	�d|j
d|fd|j�dtjd	tjd
tjd|j
�}|jd�\}}|jrt|p�|��n|j�dS(
NiiR�s$Extension '%s' removal is prohibiteds--log-file=t	uninstallRFtstdintstderrtstdoutRGty(R
R�R+R�R�R�R�t
subprocesstPopenRvR!R<tPIPERtcommunicatet
returncodet	ExceptionRx(R-R�R�R�RVtpR�R�((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytextension_uninstall
s
+	c	C`s�i}tj|j�}ykt|j�dd|jdd|j�d|j�}gtj	|�D]}|d|df^qb}Wnit
ttt
jt
jfk
r�t|j�dd|jd|j�d|j�}tj|�}nXd�|D�}x�t||�D]�\\}}}	tj|||�r�ttg|jd	�D]}
|
j�^qL�t|j|���}|r�t|j|��d
kr�i|	d6dj|�d6||<q�qi|	d6|d6||<qW|S(
Ntlists--log-file=s
--format=jsonRFRGRRVcs`s'|]\}}t�j|�VqdS(N(R
t
extension_doc(t.0R�t_((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pys	<genexpr>$st,itdocs, (R
R�R+RRvR!R<RtjsontloadsR
tKeyErrorR�RtFileProcessErrorRQR	tfindalltzipR�R�tsetR�tstriptgettlenR (R-tresultR�toutputtxR>tdocsRRVR�tvtversion_diff((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyR>s$74"4
".!'cC`sY|dk	r(tjj|j|dd�S|jsRtjj|jdd�|_n|jS(NR`Rv(R"RRR R*(R-RV((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyRv1s
	!cC`s;|dk	r%tjj|j|d�Stjj|jd�S(Nsrequirement.pip(R"RRR (R-RV((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyRy8scC`s�t}|j�}|r(||j}ntdd�|j}t�}|jdtj�jd�}	t	j
|j�}
tj|j|	�t	j
|	|
j|
j�y�x�|jD]�}tj|j|j�r�|r�t}|r�td|�q�q�n|r tjjd|j|f�ntddd	|j|f�|j|�td
�q�Wt}Wn[ttfk
r�}tdt|��x|D]}
tj|	|
�q�Wt	j|	�nX|s�t	j|	�n|S(s_
        copy binary python from /opt/alt/pythonXY/bin/pythonX.Y to virtualenvdir/bin/pythonX.Y
        :param backup: make backup old python interpreter
        :param force: force rewrite python interpreter without check
        :param verbose: print actions details to stdout
        :return: True - updating success; False - updating fail
        R@RVs.orig_%ss%Y-%m-%d_%H-%Ms     not need updating; skip '%s's    copy '%s' -> '%s'...tcmds/bin/cps--forcetDonesFail %s(tFalseR=RVRR�t
python_binRtnowtstrftimeRtstattshutiltcopytchowntst_uidtbinary_listtfilecmptcmpRPRwtsysR�twriteRtappendR}RjRiRRtcopyfiletunlink(R-tbackuptforcetverboset_alt_interpreters_dictt
update_resultR=tmain_interpretertupdated_listt
python_backuptstat_tvirtualenv_python_binRAtupdated_python((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytupdate_python_interpreter=s>	  


c	C`s{tjj|j|��sdS|j|�ddf}t|j|�d�}td|d|j�d|jd|�dS(	sX
        Output installed packages in requirements format
        :return: None
        Ntfreezes-lRtRXRFRGR�(	RRRcRvRzRyRR<R(R-RVR�tf((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyRxlscC`s4x-tdd�j�D]}|jd|�qWdS(sX
        Output installed packages in requirements format
        :return: None
        R@RVN(RR�Rx(R-RV((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt
pip_freezexsN(R1R0R"R.R2R<RBR}RER_R�RURpRrR�R�RcR=R�R�R�R�R>RvRyR�RxR�(((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyR#s.		.		!								/cC`s]|st}n|r4tjjtj|�j|�Stjjtjtj��j|�SdS(N(	R#RRR RRRRR(RR$((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyR%�s
	cC`sht||�}yt|�}Wntk
r3gSXg}x'|D]}|jt|||��qAW|S(N(R%RRjR�R(RR$t	venv_pathtenv_listtenvstenv_name((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytenvironments�s

c`s#t�fd�t||�D��S(Nc3`s-|]#}t|jd��j��VqdS(R@N(R�RBtitems(R�RA(R@(sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pys	<genexpr>�s(tdictR�(R@RR$((R@sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytenvironments_dict�sc`s#t�fd�t||�D��S(Nc3`s-|]#}t|jd��j��VqdS(R@N(R�RER�(R�RA(R@(sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pys	<genexpr>�s(R�R�(R@RR$((R@sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pytenvironments_deepdict�s(*t
__future__RRRRR�RR�R�R�Rtclselect.clselectctlRtclselect.utilsRRRRR>R	R
RRt
simplejsonR�R
tclselect.clselectexceptRR#R&ROR�RgRhRktobjectRR"R%R�R�R�(((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpythonuser/environments.pyt<module>s:"�_	

Zerion Mini Shell 1.0