ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ iB^c@`sddlmZddlmZddlmZddlZddlZddlZddlmZddl m Z m Z m Z ddl mZd Zejjejjed Zd Zd Zd efdYZdddZdddZdddZdddZdS(i(tprint_function(tdivision(tabsolute_importN(t iteritems(t check_callt list_dirstrun_command_fulli(t Interpretertnodevenvs nodevenv.pys/opt/alt/python27/bin/python2.7s package.jsont EnvironmentcB`seZdddZdZdZddZddZedZ dZ dZ dZ d Z d dd Zd Zd ZdZdZRS(cC`s||_|r||_ntjtjj|_|dkrNt|_ n ||_ tj j t |j|j ||_ d|_ d|_d||_dS(Ntnode(tnametusertpwdtgetpwuidtostgetuidtpw_nametNonetDEFAULT_PREFIXtprefixtpathtjoint _abs_prefixt _interpretert_npmtinterpreter_name(tselfR R R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/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__R R R(R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyt__repr__+sc`s(tjjfd}|S(Nc`sDtjjtjjjtjd<jtjd||=i|t||6S|S(NR t interpreter(R R-tgetattr(Rtkeyte((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytas_dict;s cC`sHi|jd6|jjd6}|rD||=i|t||6S|S(NR R-(R R-R1R.(RR/R0((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyt as_deepdictEs cC`sttd|jg}|r+|jdn|j|ji|jd6}tjdkrpdg|}nt||dS(Ns--nodes--recreate-bint preexec_fnis/bin/cagefs_enter( t PYTHON_PATHt NODEVENV_BINtbinarytappendRR,RRR(RR-t destroy_firsttargstkwargs((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytcreateOscC`s&tddd|jd|jdS(Ns/bin/rms-rs--interactive=neverR3(RRR,(R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytdestroy\scC`stjj|jS(N(RRtexists(R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyR=`scC`s(|js!td|j|_n|jS(NR(RRR(R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyR-cs cC`s1|js*tjj|jdd|_n|jS(Ntbintnpm(RRRR(R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyR?hs !t-cC`s||jdf}|dkr.||f7}n+tjj|t}tjj|sYdStd|d|jd|dS(s Install nodejs extension :param cwd: current working directory for npm (it's full path to app root by default) :param extension: name and version of extension :return: None tinstallR@iR9R3tcwdN(R?RRRt APP_CONFIGtisfileRR,(Rt extensionRBtcommandt config_path((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytextension_installms  cC`sD|jdg}|j|t|d|j\}}}|S(s~ Install nodejs extension :param extensions_list: name and version of extension :return: None RAR3(R?textendRR,(Rtextensions_listRFtret_codet_((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytextension_install_single_calls !cC`stddS(Ns!It's not used for nodejs selector(tNotImplementedError(RRE((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytextension_updatescC`stddS(Ns!It's not used for nodejs selector(RN(RRE((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytextension_uninstallsc C`s1tjjtjj|jdd}t|jddgd|jd|\}}}|jrtj|}ni}|j di}g}xt |D]~\}}|j dt sd|ksd |krqn|dj d r|j |dq|j d ||d fqW|S( s Retrieves extensions dictionary for this virtual environment :return: Extensions list. Example: [u'xpath@0.0.27', u'https://github.com/visionmedia/express'] itlists--jsonR3RBt dependenciestmissingtfromtversionsgit+s%s@%s(RRtsplitR?RR,tstriptjsontloadstgetRtFalset startswithR7( RRBRLtoutputtdatat extensionstresultR tinfo((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyR_s,6 *N(RRRRR R,R1R2R[R;R<R=R-R?RHRMRORPR_(((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyR s       cC`s]|st}n|r4tjjtj|j|Stjjtjtjj|SdS(N( RRRRR R+R(RR(R R((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyRs  cC`sht||}yt|}Wntk r3gSXg}x'|D]}|jt|||qAW|S(N(RRtOSErrorR7R (R Rt venv_pathtenv_listtenvstenv_name((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyt environmentss  c`s#tfdt||DS(Nc3`s-|]#}t|jdjVqdS(R/N(RQR1titems(t.0R0(R/(sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pys s(tdictRg(R/R R((R/sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytenvironments_dictsc`s#tfdt||DS(Nc3`s-|]#}t|jdjVqdS(R/N(RQR2Rh(RiR0(R/(sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pys s(RjRg(R/R R((R/sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pytenvironments_deepdicts(t __future__RRRRXRR t future.utilsRtclselect.utilsRRRt interpretersRRRRtdirnamet__file__R5R4RCtobjectR RRRgRkRl(((sY/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectnodejsuser/environments.pyts"   !