""" Package containing all pip commands """ # The following comment should be removed at some point in the future. # mypy: disallow-untyped-defs=False # There is currently a bug in python/typeshed mentioned at # https://github.com/python/typeshed/issues/3906 which causes the # return type of difflib.get_close_matches to be reported # as List[Sequence[str]] whereas it should have been List[str] from __future__ import absolute_import import importlib from collections import OrderedDict, namedtuple from pip._internal.utils.typing import MYPY_CHECK_RUNNING if MYPY_CHECK_RUNNING: from typing import Any from pip._internal.cli.base_command import Command CommandInfo = namedtuple('CommandInfo', 'module_path, class_name, summary') # The ordering matters for help display. # Also, even though the module path starts with the same # "pip._internal.commands" prefix in each case, we include the full path # because it makes testing easier (specifically when modifying commands_dict # in test setup / teardown by adding info for a FakeCommand class defined # in a test-related module). # Finally, we need to pass an iterable of pairs here rather than a dict # so that the ordering won't be lost when using Python 2.7. commands_dict = OrderedDict([ ('install', CommandInfo( 'pip._internal.commands.install', 'InstallCommand', 'Install packages.', )), ('download', CommandInfo( 'pip._internal.commands.download', 'DownloadCommand', 'Download packages.', )), ('uninstall', CommandInfo( 'pip._internal.commands.uninstall', 'UninstallCommand', 'Uninstall packages.', )), ('freeze', CommandInfo( 'pip._internal.commands.freeze', 'FreezeCommand', 'Output installed packages in requirements format.', )), ('list', CommandInfo( 'pip._internal.commands.list', 'ListCommand', 'List installed packages.', )), ('show', CommandInfo( 'pip._internal.commands.show', 'ShowCommand', 'Show information about installed packages.', )), ('check', CommandInfo( 'pip._internal.commands.check', 'CheckCommand', 'Verify installed packages have compatible dependencies.', )), ('config', CommandInfo( 'pip._internal.commands.configuration', 'ConfigurationCommand', 'Manage local and global configuration.', )), ('search', CommandInfo( 'pip._internal.commands.search', 'SearchCommand', 'Search PyPI for packages.', )), ('cache', CommandInfo( 'pip._internal.commands.cache', 'CacheCommand', "Inspect and manage pip's wheel cache.", )), ('wheel', CommandInfo( 'pip._internal.commands.wheel', 'WheelCommand', 'Build wheels from your requirements.', )), ('hash', CommandInfo( 'pip._internal.commands.hash', 'HashCommand', 'Compute hashes of package archives.', )), ('completion', CommandInfo( 'pip._internal.commands.completion', 'CompletionCommand', 'A helper command used for command completion.', )), ('debug', CommandInfo( 'pip._internal.commands.debug', 'DebugCommand', 'Show information useful for debugging.', )), ('help', CommandInfo( 'pip._internal.commands.help', 'HelpCommand', 'Show help for commands.', )), ]) # type: OrderedDict[str, CommandInfo] def create_command(name, **kwargs): # type: (str, **Any) -> Command """ Create an instance of the Command class with the given name. """ module_path, class_name, summary = commands_dict[name] module = importlib.import_module(module_path) command_class = getattr(module, class_name) command = command_class(name=name, summary=summary, **kwargs) return command def get_similar_commands(name): """Command name auto-correct.""" from difflib import get_close_matches name = name.lower() close_commands = get_close_matches(name, commands_dict.keys()) if close_commands: return close_commands[0] else: return False
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
.__init__.pyo.40009 | File | 3.48 KB | 0644 |
|
.cache.pyo.40009 | File | 5.45 KB | 0644 |
|
.check.pyo.40009 | File | 1.91 KB | 0644 |
|
.completion.pyo.40009 | File | 3.51 KB | 0644 |
|
.configuration.pyo.40009 | File | 9.52 KB | 0644 |
|
.debug.pyo.40009 | File | 7.9 KB | 0644 |
|
.download.pyo.40009 | File | 4.7 KB | 0644 |
|
.freeze.pyo.40009 | File | 3.69 KB | 0644 |
|
.hash.pyo.40009 | File | 2.67 KB | 0644 |
|
.help.pyo.40009 | File | 1.68 KB | 0644 |
|
.list.pyo.40009 | File | 10.33 KB | 0644 |
|
.show.pyo.40009 | File | 6.59 KB | 0644 |
|
.uninstall.pyo.40009 | File | 3.47 KB | 0644 |
|
__init__.py | File | 4 KB | 0644 |
|
__init__.pyc | File | 3.48 KB | 0644 |
|
__init__.pyo | File | 3.48 KB | 0644 |
|
cache.py | File | 5.54 KB | 0644 |
|
cache.pyc | File | 5.45 KB | 0644 |
|
cache.pyo | File | 5.45 KB | 0644 |
|
check.py | File | 1.64 KB | 0644 |
|
check.pyc | File | 1.91 KB | 0644 |
|
check.pyo | File | 1.91 KB | 0644 |
|
completion.py | File | 3.01 KB | 0644 |
|
completion.pyc | File | 3.51 KB | 0644 |
|
completion.pyo | File | 3.51 KB | 0644 |
|
configuration.py | File | 9.13 KB | 0644 |
|
configuration.pyc | File | 9.52 KB | 0644 |
|
configuration.pyo | File | 9.52 KB | 0644 |
|
debug.py | File | 7.14 KB | 0644 |
|
debug.pyc | File | 7.9 KB | 0644 |
|
debug.pyo | File | 7.9 KB | 0644 |
|
download.py | File | 4.8 KB | 0644 |
|
download.pyc | File | 4.7 KB | 0644 |
|
download.pyo | File | 4.7 KB | 0644 |
|
freeze.py | File | 3.37 KB | 0644 |
|
freeze.pyc | File | 3.69 KB | 0644 |
|
freeze.pyo | File | 3.69 KB | 0644 |
|
hash.py | File | 1.8 KB | 0644 |
|
hash.pyc | File | 2.67 KB | 0644 |
|
hash.pyo | File | 2.67 KB | 0644 |
|
help.py | File | 1.24 KB | 0644 |
|
help.pyc | File | 1.68 KB | 0644 |
|
help.pyo | File | 1.68 KB | 0644 |
|
install.py | File | 28.05 KB | 0644 |
|
install.pyc | File | 20.44 KB | 0644 |
|
install.pyo | File | 20.38 KB | 0644 |
|
list.py | File | 11.05 KB | 0644 |
|
list.pyc | File | 10.33 KB | 0644 |
|
list.pyo | File | 10.33 KB | 0644 |
|
search.py | File | 5.62 KB | 0644 |
|
search.pyc | File | 5.81 KB | 0644 |
|
search.pyo | File | 5.77 KB | 0644 |
|
show.py | File | 6.83 KB | 0644 |
|
show.pyc | File | 6.59 KB | 0644 |
|
show.pyo | File | 6.59 KB | 0644 |
|
uninstall.py | File | 3.23 KB | 0644 |
|
uninstall.pyc | File | 3.47 KB | 0644 |
|
uninstall.pyo | File | 3.47 KB | 0644 |
|
wheel.py | File | 6.27 KB | 0644 |
|
wheel.pyc | File | 5.8 KB | 0644 |
|
wheel.pyo | File | 5.72 KB | 0644 |
|