summaryrefslogtreecommitdiffstats
path: root/Lib/ensurepip/__init__.py
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2013-12-23 08:20:34 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2013-12-23 08:20:34 (GMT)
commitf71cae0a93ea0f8ba83da06bdd71709443d521b6 (patch)
treede2017a411c210e363fd3b3768584b9517b40ea7 /Lib/ensurepip/__init__.py
parent23f597e4622af79cc14f0040ec61e9fd7a68f862 (diff)
downloadcpython-f71cae0a93ea0f8ba83da06bdd71709443d521b6.zip
cpython-f71cae0a93ea0f8ba83da06bdd71709443d521b6.tar.gz
cpython-f71cae0a93ea0f8ba83da06bdd71709443d521b6.tar.bz2
Issue #19728: fix ensurepip name clash with submodule
Also added refactoring and added basic tests for the argument parsing in both ensurepip._main and ensurepip._uninstall._main.
Diffstat (limited to 'Lib/ensurepip/__init__.py')
-rw-r--r--Lib/ensurepip/__init__.py63
1 files changed, 62 insertions, 1 deletions
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
index 090c410..0f43bc4 100644
--- a/Lib/ensurepip/__init__.py
+++ b/Lib/ensurepip/__init__.py
@@ -104,7 +104,7 @@ def bootstrap(*, root=None, upgrade=False, user=False,
_run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
-def _uninstall(*, verbosity=0):
+def _uninstall_helper(*, verbosity=0):
"""Helper to support a clean default uninstall process on Windows
Note that calling this function may alter os.environ.
@@ -129,3 +129,64 @@ def _uninstall(*, verbosity=0):
args += ["-" + "v" * verbosity]
_run_pip(args + [p[0] for p in reversed(_PROJECTS)])
+
+
+def _main(argv=None):
+ import argparse
+ parser = argparse.ArgumentParser(prog="python -m ensurepip")
+ parser.add_argument(
+ "--version",
+ action="version",
+ version="pip {}".format(version()),
+ help="Show the version of pip that is bundled with this Python.",
+ )
+ parser.add_argument(
+ "-v", "--verbose",
+ action="count",
+ default=0,
+ dest="verbosity",
+ help=("Give more output. Option is additive, and can be used up to 3 "
+ "times."),
+ )
+ parser.add_argument(
+ "-U", "--upgrade",
+ action="store_true",
+ default=False,
+ help="Upgrade pip and dependencies, even if already installed.",
+ )
+ parser.add_argument(
+ "--user",
+ action="store_true",
+ default=False,
+ help="Install using the user scheme.",
+ )
+ parser.add_argument(
+ "--root",
+ default=None,
+ help="Install everything relative to this alternate root directory.",
+ )
+ parser.add_argument(
+ "--altinstall",
+ action="store_true",
+ default=False,
+ help=("Make an alternate install, installing only the X.Y versioned"
+ "scripts (Default: pipX, pipX.Y, easy_install-X.Y)"),
+ )
+ parser.add_argument(
+ "--default-pip",
+ action="store_true",
+ default=False,
+ help=("Make a default pip install, installing the unqualified pip "
+ "and easy_install in addition to the versioned scripts"),
+ )
+
+ args = parser.parse_args(argv)
+
+ bootstrap(
+ root=args.root,
+ upgrade=args.upgrade,
+ user=args.user,
+ verbosity=args.verbosity,
+ altinstall=args.altinstall,
+ default_pip=args.default_pip,
+ )