PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  qY2N@sddlZddlZddlZddlZddlZddlZejeZGdddZ ddddddZ dddZ ed krd Z ye dZ Wn<e k rZzed ed ejWYddZ[XnXeje dS) Nc@seZdZdddddddZddZddZdd Zd d Zej d krrd dZ dddZ ddZ ddZ ddZddZddZddZdS) EnvBuilderFcCs1||_||_||_||_||_dS)N)system_site_packagesclearsymlinksupgradewith_pip)selfrrrrrr '/opt/python35/lib/python3.5/__init__.py__init__?s     zEnvBuilder.__init__cCstjj|}|j|}|j}d|_|j||j||jrc|j||j s|j ||j ||rd|_|j|dS)NFT) ospathabspathensure_directoriesrcreate_configuration setup_pythonr _setup_pipr setup_scripts post_setup)renv_dircontextZtrue_system_site_packagesr r r createGs          zEnvBuilder.createcCsxtj|D]n}tjj||}tjj|sOtjj|r_tj|qtjj|rtj |qWdS)N) r listdirr joinislinkisfileremoveisdirshutilrmtree)rr fnr r r clear_directoryas $zEnvBuilder.clear_directorycCsEdd}tjj|r4|jr4|j|tj}||_tjj|d|_ d|j |_ ||tj }t j dkrd|krtj d}n t j}tjjtjj|\}}||_||_||_t j dkr.d}d } tjj|d d } n8d }d } tjj|ddt jddd } tjj|| |_} || || t jdkrtjdkrt j dkrtjj|d} tjj| stjd| tjj|||_} ||_tjj| ||_|| |S)NcSsZtjj|s"tj|n4tjj|sFtjj|rVtd|dS)NzUnable to create directory %r)r r existsmakedirsrr ValueError)dr r r create_if_neededqs$z7EnvBuilder.ensure_directories..create_if_neededz(%s) darwin__PYVENV_LAUNCHER__win32ZScriptsZIncludeLibz site-packagesbinincludelibz python%d.%d posixZlib64l)r r r"rr!typesSimpleNamespacersplitenv_namepromptenvironsysplatform executabler python_dirZ python_exer version_infoZinc_pathmaxsizenamesymlinkbin_pathbin_nameenv_exe)rrr&renvr:dirnameZexenameZbinnameZincpathZlibpathr Z link_pathbinpathr r r risL       $        zEnvBuilder.ensure_directoriesc Cstjj|jd|_}t|dddb}|jd|j|jr]d}nd}|jd||jd t j dd WdQRXdS) Nz pyvenv.cfgwencodingzutf-8z home = %s truefalsez"include-system-site-packages = %s zversion = %d.%d.%d ) r r rrZcfg_pathopenwriter;rr8r<)rrr fZinclr r r rs   zEnvBuilder.create_configurationntcCs:|jdrd}n|jdo3|jd}|S)N.pyd.dllTpythonz.exe)rOrP)endswith startswith)rrMresultr r r include_binarys zEnvBuilder.include_binaryc Cs|j }|syKtjj|sZ|rJtjtjj||ntj||Wn+tk rtjd||d}YnX|rt j ||dS)NzUnable to symlink %r to %rT) rr r rr?basename Exceptionloggerwarningrcopyfile)rsrcdstrelative_symlinks_okZ force_copyr r r symlink_or_copys   zEnvBuilder.symlink_or_copycs|j}|j}|j}||j||j}tjdkrtjj|setj |dxBd D]e}tjj ||}tjj |sl||j|ddtjj|sltj |dqlWnd}|j fdd tj |D}xT|D]L} tjj || } tjj || } | |jkr|| | qWtjj ||}tjj|rfd d tj |D}xE|D]=} tjj || } tjj || } || | qWxtj|jD]\} } }d |krtjj| }tjj |jd |}tjj |sktj|tjj | d } tjj |d } tj| | PqWdS)NrNirQpython3r]TZDLLscs"g|]}|r|qSr r ).0rM)r-r r s z+EnvBuilder.setup_python..cs"g|]}|r|qSr r )r`rM)r-r r ras zinit.tclr+)rQr_)r@rBr^r:r;r r>r rchmodrr"rUrrwalkrVrr#rrZ)rrrEr copierrDsuffixZsubdirfilesrMr[r\rootdirsZtcldirr )r-r rsN      " " "  zEnvBuilder.setup_pythoncCs2|jddddg}tj|dtjdS)Nz-ImZ ensurepipz --upgradez --default-pipstderr)rB subprocess check_outputSTDOUT)rrcmdr r r rs zEnvBuilder._setup_pipcCsGtjjtjjt}tjj|d}|j||dS)Nscripts)r r rrD__file__rinstall_scripts)rrr r r r r s zEnvBuilder.setup_scriptscCsdS)Nr )rrr r r rszEnvBuilder.post_setupcCsm|jd|j}|jd|j}|jd|j}|jd|j}|jd|j}|S)NZ __VENV_DIR__Z __VENV_NAME__Z__VENV_PROMPT__Z__VENV_BIN_NAME__Z__VENV_PYTHON__)replacerr5r6rArB)rtextrr r r replace_variables#s zEnvBuilder.replace_variablesc!Cs|j}t|}xtj|D]\}}}||krx:|ddD](}|dtjfkrQ|j|qQWq%x|D]} tjj|| } ||djtj dd} | s|} ntjj|| } tjj | s tj | tjj| | } t | d} | j }WdQRX| jdsy4|jd}|j||}|jd}Wn>tk r}zd}tjd| |WYdd}~XnX|dk rt | d} | j|WdQRXtj| | qWq%WdS)Ncommonr/rbz.exezutf-8z+unable to copy script %r, may be binary: %swb)r@lenr rcr>rr rr4sepr"r#rKreadrRdecodersencode UnicodeErrorrXrYrLrcopymode)rrr rEZplenrgrhrfr%rMZsrcfilereZdstdirZdstfiledataer r r rp5s@    &    zEnvBuilder.install_scriptsN)__name__ __module__ __qualname__r rr!rrr r>rUr^rrrrrsrpr r r r r's    7   3  rFc Cs2td|d|d|d|}|j|dS)Nrrrr)rr)rrrrrbuilderr r r res rc Cs"d}tjd,krd}nttds3d}|sHtdnddl}|jdtdd d d }|jd d ddddd|jdddddddddtj dkrd}nd}|j }|jdd|dddddd|jdd| dddddd |jd!dddddd"dd#|jd$dddddd%dd&|jd'dd(dddddd)|j |}|j r|j rtd*td+|jd"|j d|jd%|j d(|j}x|jD]}|j|qWdS)-NTrJF base_prefixz.This script is only for use with Python >= 3.3rprog descriptionzFCreates virtual Python environments in one or more target directories.epilogz|Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory.rhmetavarZENV_DIRnargs+helpz)A directory to create the environment in.z--system-site-packagesdefaultaction store_truedest system_sitezDGive the virtual environment access to the system site-packages dir.rNz --symlinksrz[Try to use symlinks rather than copies, when symlinks are not the default for the platform.z--copies store_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)z1you cannot supply --upgrade and --clear together.r)rJrJ)r8r<hasattrr$argparseArgumentParserr add_argumentr r>add_mutually_exclusive_group parse_argsrrrrrrrhr) argsZ compatiblerparserZ use_symlinksgroupoptionsrr%r r r main|sV                r__main__r'z Error: %sfile)loggingr rrjr8r2 getLoggerrrXrrrrcrWrprintriexitr r r r s&      ?D  *