You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					42 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					42 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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:
							 | 
						||
| 
								 | 
							
								            # 'pip help' with no args is handled by pip.__init__.parseopt()
							 | 
						||
| 
								 | 
							
								            cmd_name = args[0]  # the command we need help for
							 | 
						||
| 
								 | 
							
								        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
							 |