diff options
| author | Bernát Gábor <bgabor8@bloomberg.net> | 2020-04-25 17:45:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-25 17:45:53 +0100 |
| commit | 078c945c861d53910481fb0c97d70f1d42cacfb9 (patch) | |
| tree | 5dd1f36a6a3b4b677f0abd0bade8b99acb02915a /src/virtualenv/run | |
| parent | 01b09f6968f64f709e9dfde1903aeb7e0f994b4e (diff) | |
| download | virtualenv-078c945c861d53910481fb0c97d70f1d42cacfb9.tar.gz | |
Better handling of conflicting --copies and --symlinks (#1785)
Diffstat (limited to 'src/virtualenv/run')
| -rw-r--r-- | src/virtualenv/run/__init__.py | 26 | ||||
| -rw-r--r-- | src/virtualenv/run/plugin/discovery.py | 4 |
2 files changed, 13 insertions, 17 deletions
diff --git a/src/virtualenv/run/__init__.py b/src/virtualenv/run/__init__.py index 6983e33..7c63ab9 100644 --- a/src/virtualenv/run/__init__.py +++ b/src/virtualenv/run/__init__.py @@ -1,6 +1,5 @@ from __future__ import absolute_import, unicode_literals -import argparse import logging from virtualenv.run.app_data import AppDataAction @@ -19,11 +18,9 @@ def cli_run(args, options=None): """Create a virtual environment given some command line interface arguments :param args: the command line arguments - :param options: passing in a ``argparse.Namespace`` object allows return of the parsed options + :param options: passing in a ``VirtualEnvOptions`` object allows return of the parsed options :return: the session object of the creation (its structure for now is experimental and might change on short notice) """ - if options is None: - options = argparse.Namespace() session = session_via_cli(args, options) with session: session.run() @@ -31,11 +28,11 @@ def cli_run(args, options=None): # noinspection PyProtectedMember -def session_via_cli(args, options): +def session_via_cli(args, options=None): parser = build_parser(args, options) - parser.parse_args(args, namespace=parser._options) - creator, seeder, activators = tuple(e.create(parser._options) for e in parser._elements) # create types - session = Session(parser._verbosity, options.app_data, parser._interpreter, creator, seeder, activators) + options = parser.parse_args(args) + creator, seeder, activators = tuple(e.create(options) for e in parser._elements) # create types + session = Session(options.verbosity, options.app_data, parser._interpreter, creator, seeder, activators) return session @@ -50,7 +47,7 @@ def build_parser(args=None, options=None): default=False, help="on failure also display the stacktrace internals of virtualenv", ) - parser._options, parser._verbosity = _do_report_setup(parser, args) + _do_report_setup(parser, args) # here we need a write-able application data (e.g. the zipapp might need this for discovery cache) default_app_data = AppDataAction.default() parser.add_argument( @@ -67,7 +64,7 @@ def build_parser(args=None, options=None): help="start with empty app data folder", default=False, ) - discover = get_discover(parser, args, parser._options) + discover = get_discover(parser, args) parser._interpreter = interpreter = discover.interpreter if interpreter is None: raise RuntimeError("failed to find interpreter for {}".format(discover)) @@ -76,9 +73,9 @@ def build_parser(args=None, options=None): SeederSelector(interpreter, parser), ActivationSelector(interpreter, parser), ] - parser.parse_known_args(args, namespace=parser._options) + options, _ = parser.parse_known_args(args) for element in parser._elements: - element.handle_selected_arg_parse(parser._options) + element.handle_selected_arg_parse(options) parser.enable_help() return parser @@ -103,6 +100,5 @@ def _do_report_setup(parser, args): verbosity = verbosity_group.add_mutually_exclusive_group() verbosity.add_argument("-v", "--verbose", action="count", dest="verbose", help="increase verbosity", default=2) verbosity.add_argument("-q", "--quiet", action="count", dest="quiet", help="decrease verbosity", default=0) - options, _ = parser.parse_known_args(args, namespace=parser._options) - verbosity_value = setup_report(options.verbose, options.quiet) - return options, verbosity_value + option, _ = parser.parse_known_args(args) + setup_report(option.verbosity) diff --git a/src/virtualenv/run/plugin/discovery.py b/src/virtualenv/run/plugin/discovery.py index 43d5eb2..03f0590 100644 --- a/src/virtualenv/run/plugin/discovery.py +++ b/src/virtualenv/run/plugin/discovery.py @@ -9,7 +9,7 @@ class Discovery(PluginLoader): """""" -def get_discover(parser, args, options): +def get_discover(parser, args): discover_types = Discovery.entry_points_for("virtualenv.discovery") discovery_parser = parser.add_argument_group( title="discovery", description="discover and provide a target interpreter" @@ -21,7 +21,7 @@ def get_discover(parser, args, options): required=False, help="interpreter discovery method", ) - options, _ = parser.parse_known_args(args, namespace=options) + options, _ = parser.parse_known_args(args) if options.app_data == "<temp folder>": options.app_data = TempAppData() if options.clear_app_data: |
