[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.188.27.67: ~ $
"""A single place for constructing and exposing the main parser
"""

import os
import sys

from pip._internal.cli import cmdoptions
from pip._internal.cli.parser import (
    ConfigOptionParser,
    UpdatingDefaultsHelpFormatter,
)
from pip._internal.commands import commands_dict, get_similar_commands
from pip._internal.exceptions import CommandError
from pip._internal.utils.misc import get_pip_version, get_prog
from pip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:
    from typing import Tuple, List


__all__ = ["create_main_parser", "parse_command"]


def create_main_parser():
    # type: () -> ConfigOptionParser
    """Creates and returns the main parser for pip's CLI
    """

    parser_kw = {
        'usage': '\n%prog <command> [options]',
        'add_help_option': False,
        'formatter': UpdatingDefaultsHelpFormatter(),
        'name': 'global',
        'prog': get_prog(),
    }

    parser = ConfigOptionParser(**parser_kw)
    parser.disable_interspersed_args()

    parser.version = get_pip_version()

    # add the general options
    gen_opts = cmdoptions.make_option_group(cmdoptions.general_group, parser)
    parser.add_option_group(gen_opts)

    # so the help formatter knows
    parser.main = True  # type: ignore

    # create command listing for description
    description = [''] + [
        '{name:27} {command_info.summary}'.format(**locals())
        for name, command_info in commands_dict.items()
    ]
    parser.description = '\n'.join(description)

    return parser


def parse_command(args):
    # type: (List[str]) -> Tuple[str, List[str]]
    parser = create_main_parser()

    # Note: parser calls disable_interspersed_args(), so the result of this
    # call is to split the initial args into the general options before the
    # subcommand and everything else.
    # For example:
    #  args: ['--timeout=5', 'install', '--user', 'INITools']
    #  general_options: ['--timeout==5']
    #  args_else: ['install', '--user', 'INITools']
    general_options, args_else = parser.parse_args(args)

    # --version
    if general_options.version:
        sys.stdout.write(parser.version)  # type: ignore
        sys.stdout.write(os.linesep)
        sys.exit()

    # pip || pip help -> print_help()
    if not args_else or (args_else[0] == 'help' and len(args_else) == 1):
        parser.print_help()
        sys.exit()

    # the subcommand name
    cmd_name = args_else[0]

    if cmd_name not in commands_dict:
        guess = get_similar_commands(cmd_name)

        msg = ['unknown command "{}"'.format(cmd_name)]
        if guess:
            msg.append('maybe you meant "{}"'.format(guess))

        raise CommandError(' - '.join(msg))

    # all the args without the subcommand
    cmd_args = args[:]
    cmd_args.remove(cmd_name)

    return cmd_name, cmd_args

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
.__init__.pyo.40009 File 256 B 0644
.autocompletion.pyo.40009 File 5.39 KB 0644
.cmdoptions.pyo.40009 File 24.87 KB 0644
.main.pyo.40009 File 1.72 KB 0644
.main_parser.pyo.40009 File 2.63 KB 0644
.progress_bars.pyo.40009 File 9.99 KB 0644
.status_codes.pyo.40009 File 420 B 0644
__init__.py File 132 B 0644
__init__.pyc File 256 B 0644
__init__.pyo File 256 B 0644
autocompletion.py File 6.39 KB 0644
autocompletion.pyc File 5.39 KB 0644
autocompletion.pyo File 5.39 KB 0644
base_command.py File 9.08 KB 0644
base_command.pyc File 7.88 KB 0644
base_command.pyo File 7.76 KB 0644
cmdoptions.py File 28.11 KB 0644
cmdoptions.pyc File 24.87 KB 0644
cmdoptions.pyo File 24.87 KB 0644
command_context.py File 975 B 0644
command_context.pyc File 1.64 KB 0644
command_context.pyo File 1.58 KB 0644
main.py File 2.55 KB 0644
main.pyc File 1.72 KB 0644
main.pyo File 1.72 KB 0644
main_parser.py File 2.78 KB 0644
main_parser.pyc File 2.63 KB 0644
main_parser.pyo File 2.63 KB 0644
parser.py File 9.26 KB 0644
parser.pyc File 10.46 KB 0644
parser.pyo File 10.43 KB 0644
progress_bars.py File 8.91 KB 0644
progress_bars.pyc File 9.99 KB 0644
progress_bars.pyo File 9.99 KB 0644
req_command.py File 14.78 KB 0644
req_command.pyc File 11.89 KB 0644
req_command.pyo File 11.7 KB 0644
spinners.py File 5.38 KB 0644
spinners.pyc File 6.27 KB 0644
spinners.pyo File 6.2 KB 0644
status_codes.py File 156 B 0644
status_codes.pyc File 420 B 0644
status_codes.pyo File 420 B 0644