summaryrefslogtreecommitdiffstats
path: root/Lib/ensurepip
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
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')
-rw-r--r--Lib/ensurepip/__init__.py63
-rw-r--r--Lib/ensurepip/__main__.py64
-rw-r--r--Lib/ensurepip/_uninstall.py8
3 files changed, 67 insertions, 68 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,
+ )
diff --git a/Lib/ensurepip/__main__.py b/Lib/ensurepip/__main__.py
index 53e8459..77527d7 100644
--- a/Lib/ensurepip/__main__.py
+++ b/Lib/ensurepip/__main__.py
@@ -1,66 +1,4 @@
-import argparse
import ensurepip
-
-def main():
- parser = argparse.ArgumentParser(prog="python -m ensurepip")
- parser.add_argument(
- "--version",
- action="version",
- version="pip {}".format(ensurepip.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()
-
- ensurepip.bootstrap(
- root=args.root,
- upgrade=args.upgrade,
- user=args.user,
- verbosity=args.verbosity,
- altinstall=args.altinstall,
- default_pip=args.default_pip,
- )
-
-
if __name__ == "__main__":
- main()
+ ensurepip._main()
diff --git a/Lib/ensurepip/_uninstall.py b/Lib/ensurepip/_uninstall.py
index 38c486b..750365e 100644
--- a/Lib/ensurepip/_uninstall.py
+++ b/Lib/ensurepip/_uninstall.py
@@ -4,7 +4,7 @@ import argparse
import ensurepip
-def main():
+def _main(argv=None):
parser = argparse.ArgumentParser(prog="python -m ensurepip._uninstall")
parser.add_argument(
"--version",
@@ -21,10 +21,10 @@ def main():
"times."),
)
- args = parser.parse_args()
+ args = parser.parse_args(argv)
- ensurepip._uninstall(verbosity=args.verbosity)
+ ensurepip._uninstall_helper(verbosity=args.verbosity)
if __name__ == "__main__":
- main()
+ _main()