U ed@sddlmZddlZddlZddlmZddlmZddlm Z ddl m Z m Z ddl mZddlmZdd lmZd d lmZd d lmZd d lmZd dlmZd ddZd!ddZd"ddZd#ddZddZddZ ddZ!ddZ"ddgZ#dS)$) annotationsN)partial) make_app_data)VirtualEnvConfigParser)LEVELS setup_report)Session)manual_upgrade) __version__)ActivationSelector)CreatorSelector) get_discover)SeederSelectorTc Cs<|dkrtjn|}t||||}||W5QRX|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_loggingenvZ of_sessionrE/opt/hc_python/lib/python3.8/site-packages/virtualenv/run/__init__.pycli_runs rc sb|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|]}|VqdSN)create).0errr 3sz"session_via_cli..) rr build_parser parse_argstupler verbosityapp_data _interpreter) rrrrparserelementsZcreatorZseederZ activatorsrrrr%s  rc Cst||dkrtjn|}t||jddddddt|||t|||}t|t||}|j |_ }|dkrd|}t |t ||t ||t||g}||\}} |D]} | |q|||fS)Nz--with-tracebackwith_traceback store_trueFz>on failure also display the stacktrace internals of virtualenv)destactiondefaulthelpzfailed to find interpreter for )rrradd_version_flag add_argument_do_report_setup load_app_datahandle_extra_commandsr interpreterr& RuntimeErrorr rr parse_known_argsZhandle_selected_arg_parseZ enable_help) rrrrr'Zdiscoverr4msgr(_elementrrrr!>s4      r!cCs t|dS)z0Used to provide a parser for the doc generation.r)r!)rrrrbuild_parser_only]sr:cCs |jrt|j|j}t|dSr)Zupgrade_embed_wheelsr r%r SystemExit)rresultrrrr3bsr3c 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) r0r6rrZread_only_app_datarZreset_app_datar%reset)rr'rr8rrrr2hs4 r2cCs,ddl}|jdddtd|jdddS)Nrz --versionversionz %(prog)s z from zIdisplay the version of the virtualenv package and its location, then exit)r,r@r.) virtualenvr0r __file__)r'rArrrr/sr/c CsdddttD}d}|jd|ttd|d}|}|j dd d d d d d|j ddd dddd| |\}}|rt |j dS)Nz, css&|]\}}t|d|VqdS)=N)logging getLevelName)rclinerrrr sz#_do_report_setup..z6verbosity = verbose - quiet, default {}, mapping => {}r$)title descriptionz-vz --verbosecountverbosezincrease verbosity)r,r+r.r-z-qz--quietquietzdecrease verbosityr) joinsortedritemsadd_argument_groupformatrDrEadd_mutually_exclusive_groupr0r6rr$) r'rrZ level_mapr7Zverbosity_groupr$optionr8rrrr1sr1)NTN)NTN)NNTN)N)$ __future__rrDr functoolsrZvirtualenv.app_datarZvirtualenv.config.cli.parserrZvirtualenv.reportrrZvirtualenv.run.sessionrZ&virtualenv.seed.wheels.periodic_updater Zvirtualenv.versionr Zplugin.activatorsr Zplugin.creatorsr Zplugin.discoveryrZplugin.seedersrrrr!r:r3r2r/r1__all__rrrrs0