B a@sddlmZmZddlZddlZddlmZddlmZddl m Z ddl m Z m Z ddlmZdd lmZdd lmZd d lmZd d lmZd dlmZd dlmZd"ddZd#ddZd$ddZd%ddZddZ ddZ!ddZ"dd Z#d!Z$dS)&)absolute_importunicode_literalsN)partial) make_app_data)VirtualEnvConfigParser)LEVELS setup_report)Session)manual_upgrade) __version__)ActivationSelector)CreatorSelector) get_discover)SeederSelectorTc Cs<|dkrtjn|}t||||}||WdQRX|S)a Create a virtual environment given some command line interface arguments. :param args: the command line arguments :param options: passing in a ``VirtualEnvOptions`` object allows return of the parsed options :param setup_logging: ``True`` if setup logging handlers, ``False`` to use handlers already registered :param env: environment variables to use :return: the session object of the creation (its structure for now is experimental and might change on short notice) N)osenvironsession_via_clirun)argsoptions setup_loggingenv of_sessionrH/opt/alt/python37/lib/python3.7/site-packages/virtualenv/run/__init__.pycli_runs rc sf|dkrtjn|}t|||\}}||tfdd|D\}}}tjj|j|||} | S)aq Create a virtualenv session (same as cli_run, but this does not perform the creation). Use this if you just want to query what the virtual environment would look like, but not actually create it. :param args: the command line arguments :param options: passing in a ``VirtualEnvOptions`` object allows return of the parsed options :param setup_logging: ``True`` if setup logging handlers, ``False`` to use handlers already registered :param env: environment variables to use :return: the session object of the creation (its structure for now is experimental and might change on short notice) Nc3s|]}|VqdS)N)create).0e)rrr 2sz"session_via_cli..) rr build_parser parse_argstupler verbosityapp_data _interpreter) rrrrparserelementsZcreatorZseederZ activatorsrr)rrr$s  rc Cst||dkrtjn|}t||jddddddt|||t|||}t|t||}|j |_ }|dkrt d |t ||t||t||g}||\}}x|D]} | |qW|||fS)Nz--with-tracebackwith_traceback store_trueFz>on failure also display the stacktrace internals of virtualenv)destactiondefaulthelpz!failed to find interpreter for {})rrradd_version_flag add_argument_do_report_setup load_app_datahandle_extra_commandsr interpreterr' RuntimeErrorformatrrrparse_known_argsZhandle_selected_arg_parseZ enable_help) rrrrr(discoverr5r)_elementrrrr"7s.      r"cCs t|dS)z/Used to provide a parser for the doc generationr)r")rrrrbuild_parser_onlyUsr<cCs |jrt|j|j}t|dS)N)Zupgrade_embed_wheelsr r&r SystemExit)rresultrrrr4Zsr4c Cs|jdddd|j||d\}}|jddtt|j|jdtd|j|jdd |jd dd d|jd dd d|j||d\}}|jr|j|S)Nz--read-only-app-datar+zMuse app data folder in read-only mode (write operations will fail with error))r-r/) namespacez --app-dataz-a data folder used as cache by the virtualenv)Z read_onlyr)r/typer.z--reset-app-dataz start with empty app data folderz--upgrade-embed-wheelsz.trigger a manual update of the embedded wheels) r1r8rrZread_only_app_datarZreset_app_datar&reset)rr(rr:rrrr3`s, r3cCs(ddl}|jdddt|jdddS)Nrz --versionversionz%(prog)s {} from {}zIdisplay the version of the virtualenv package and its location, then exit)r-rBr/) virtualenvr1r7r __file__)r(rCrrrr0s  r0c CsdddtttD}d}|jd|ttd|d}| }|j dd d d d d d|j ddd dddd| |\}}|rt |j dS)Nz, css$|]\}}dt||VqdS)z{}={}N)r7logging getLevelName)rclrrrr!sz#_do_report_setup..z6verbosity = verbose - quiet, default {}, mapping => {}r%)title descriptionz-vz --verbosecountverbosezincrease verbosityr)r-r,r/r.z-qz--quietquietzdecrease verbosityr)joinsortedlistritemsadd_argument_groupr7rErFadd_mutually_exclusive_groupr1r8r r%) r(rrZ level_mapmsgZverbosity_groupr%optionr:rrrr2s r2)rr)NTN)NTN)NNTN)N)% __future__rrrEr functoolsrr&rZconfig.cli.parserrreportrr Z run.sessionr Zseed.wheels.periodic_updater rBr Zplugin.activatorsrZplugin.creatorsrZplugin.discoveryrZplugin.seedersrrrr"r<r4r3r0r2__all__rrrrs,