|
from optparse import Values |
|
from typing import List |
|
|
|
from pip._internal.cli.base_command import Command |
|
from pip._internal.cli.status_codes import SUCCESS |
|
from pip._internal.exceptions import CommandError |
|
|
|
|
|
class HelpCommand(Command): |
|
"""Show help for commands""" |
|
|
|
usage = """ |
|
%prog <command>""" |
|
ignore_require_venv = True |
|
|
|
def run(self, options: Values, args: List[str]) -> int: |
|
from pip._internal.commands import ( |
|
commands_dict, |
|
create_command, |
|
get_similar_commands, |
|
) |
|
|
|
try: |
|
|
|
cmd_name = args[0] |
|
except IndexError: |
|
return SUCCESS |
|
|
|
if cmd_name not in commands_dict: |
|
guess = get_similar_commands(cmd_name) |
|
|
|
msg = [f'unknown command "{cmd_name}"'] |
|
if guess: |
|
msg.append(f'maybe you meant "{guess}"') |
|
|
|
raise CommandError(" - ".join(msg)) |
|
|
|
command = create_command(cmd_name) |
|
command.parser.print_help() |
|
|
|
return SUCCESS |
|
|