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

    parser = ConfigOptionParser(
        usage="\n%prog <command> [options]",
        add_help_option=False,
        formatter=UpdatingDefaultsHelpFormatter(),
        name="global",
        prog=get_prog(),
    )
    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 = [""] + [
        f"{name:27} {command_info.summary}"
        for name, command_info in commands_dict.items()
    ]
    parser.description = "\n".join(description)

    return parser
Beispiel #2
0
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 = [""] + [
        "%-27s %s" % (name, command_info.summary)
        for name, command_info in commands_dict.items()
    ]
    parser.description = "\n".join(description)

    return parser
Beispiel #3
0
 def test_get_prog(self, monkeypatch, argv, executable, expected):
     monkeypatch.setattr('pip._internal.utils.misc.sys.argv', [argv])
     monkeypatch.setattr(
         'pip._internal.utils.misc.sys.executable',
         executable
     )
     assert get_prog() == expected
Beispiel #4
0
def create_main_parser():
    # type: () -> ConfigOptionParser
    """Creates and returns the skeleton 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
    command_summaries = get_summaries()
    description = [''] + ['%-27s %s' % (i, j) for i, j in command_summaries]
    parser.description = '\n'.join(description)

    return parser
Beispiel #5
0
 def test_get_prog(self, monkeypatch, argv, executable, expected):
     monkeypatch.setattr('pip._internal.utils.misc.sys.argv', [argv])
     monkeypatch.setattr(
         'pip._internal.utils.misc.sys.executable',
         executable
     )
     assert get_prog() == expected
Beispiel #6
0
    def __init__(self, name, summary, isolated=False):
        # type: (str, str, bool) -> None
        super(Command, self).__init__()
        parser_kw = {
            "usage": self.usage,
            "prog": "%s %s" % (get_prog(), name),
            "formatter": UpdatingDefaultsHelpFormatter(),
            "add_help_option": False,
            "name": name,
            "description": self.__doc__,
            "isolated": isolated,
        }

        self.name = name
        self.summary = summary
        self.parser = ConfigOptionParser(**parser_kw)

        # Commands should add options to this option group
        optgroup_name = "%s Options" % self.name.capitalize()
        self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name)

        # Add the general options
        gen_opts = cmdoptions.make_option_group(
            cmdoptions.general_group,
            self.parser,
        )
        self.parser.add_option_group(gen_opts)
Beispiel #7
0
    def __init__(self, name, summary, isolated=False):
        # type: (str, str, bool) -> None
        parser_kw = {
            'usage': self.usage,
            'prog': '%s %s' % (get_prog(), name),
            'formatter': UpdatingDefaultsHelpFormatter(),
            'add_help_option': False,
            'name': name,
            'description': self.__doc__,
            'isolated': isolated,
        }

        self.name = name
        self.summary = summary
        self.parser = ConfigOptionParser(**parser_kw)

        # Commands should add options to this option group
        optgroup_name = '%s Options' % self.name.capitalize()
        self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name)

        # Add the general options
        gen_opts = cmdoptions.make_option_group(
            cmdoptions.general_group,
            self.parser,
        )
        self.parser.add_option_group(gen_opts)
Beispiel #8
0
def create_main_parser():
    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()

    pip_pkg_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    parser.version = "pip %s from %s (python %s)" % (
        __version__,
        pip_pkg_dir,
        sys.version[:3],
    )

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

    parser.main = True  # so the help formatter knows

    # create command listing for description
    command_summaries = get_summaries()
    description = [""] + ["%-27s %s" % (i, j) for i, j in command_summaries]
    parser.description = "\n".join(description)

    return parser
Beispiel #9
0
def create_main_parser():
    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()

    pip_pkg_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    parser.version = 'pip %s from %s (python %s)' % (
        __version__, pip_pkg_dir, sys.version[:3],
    )

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

    parser.main = True  # so the help formatter knows

    # create command listing for description
    command_summaries = get_summaries()
    description = [''] + ['%-27s %s' % (i, j) for i, j in command_summaries]
    parser.description = '\n'.join(description)

    return parser
Beispiel #10
0
def create_main_parser():
    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()

    pip_pkg_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    parser.version = 'pip %s from %s (python %s)' % (
        __version__,
        pip_pkg_dir,
        sys.version[:3],
    )

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

    parser.main = True  # so the help formatter knows

    # create command listing for description
    command_summaries = get_summaries()
    description = [''] + ['%-27s %s' % (i, j) for i, j in command_summaries]
    parser.description = '\n'.join(description)

    return parser
Beispiel #11
0
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
Beispiel #12
0
    def __init__(self, name, summary, isolated=False):
        # type: (str, str, bool) -> None
        super(Command, self).__init__()
        parser_kw = {
            'usage': self.usage,
            'prog': '{} {}'.format(get_prog(), name),
            'formatter': UpdatingDefaultsHelpFormatter(),
            'add_help_option': False,
            'name': name,
            'description': self.__doc__,
            'isolated': isolated,
        }

        self.name = name
        self.summary = summary
        self.parser = ConfigOptionParser(**parser_kw)

        self.tempdir_registry = None  # type: Optional[TempDirRegistry]

        # Commands should add options to this option group
        optgroup_name = '{} Options'.format(self.name.capitalize())
        self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name)

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

        self.add_options()
Beispiel #13
0
 def _get_n_args(self, args, example, n):
     """Helper to make sure the command got the right number of arguments
     """
     if len(args) != n:
         msg = (
             'Got unexpected number of arguments, expected {}. '
             '(example: "{} config {}")'
         ).format(n, get_prog(), example)
Beispiel #14
0
    def __init__(self, isolated=False):
        # type: (bool) -> None
        parser_kw = {
            'usage': self.usage,
            'prog': '%s %s' % (get_prog(), self.name),
            'formatter': UpdatingDefaultsHelpFormatter(),
            'add_help_option': False,
            'name': self.name,
>>>>>>> 71358189c5e72ee2ac9883b408a2f540a7f5745e
Beispiel #15
0
 def run(self, options, args):
     """Prints the completion code of the given shell"""
     shells = COMPLETION_SCRIPTS.keys()
     shell_options = ["--" + shell for shell in sorted(shells)]
     if options.shell in shells:
         script = textwrap.dedent(
             COMPLETION_SCRIPTS.get(options.shell, "") % {"prog": get_prog()}
         )
         print(BASE_COMPLETION % {"script": script, "shell": options.shell})
     else:
         sys.stderr.write("ERROR: You must pass %s\n" % " or ".join(shell_options))
Beispiel #16
0
    def _get_n_args(self, args: List[str], example: str, n: int) -> Any:
        """Helper to make sure the command got the right number of arguments"""
        if len(args) != n:
            msg = ("Got unexpected number of arguments, expected {}. "
                   '(example: "{} config {}")').format(n, get_prog(), example)
            raise PipError(msg)

        if n == 1:
            return args[0]
        else:
            return args
Beispiel #17
0
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(),
Beispiel #18
0
 def run(self, options, args):
     """Prints the completion code of the given shell"""
     shells = COMPLETION_SCRIPTS.keys()
     shell_options = ['--' + shell for shell in sorted(shells)]
     if options.shell in shells:
         script = textwrap.dedent(
             COMPLETION_SCRIPTS.get(options.shell,
                                    '').format(prog=get_prog()))
         print(BASE_COMPLETION.format(script=script, shell=options.shell))
     else:
         sys.stderr.write('ERROR: You must pass {}\n'.format(
             ' or '.join(shell_options)))
Beispiel #19
0
    def _get_n_args(self, args, example, n):
        """Helper to make sure the job_commands got the right number of arguments
        """
        if len(args) != n:
            msg = ('Got unexpected number of arguments, expected {}. '
                   '(example: "{} config {}")').format(n, get_prog(), example)
            raise PipError(msg)

        if n == 1:
            return args[0]
        else:
            return args
Beispiel #20
0
 def run(self, options, args):
     """Prints the completion code of the given shell"""
     shells = COMPLETION_SCRIPTS.keys()
     shell_options = ['--' + shell for shell in sorted(shells)]
     if options.shell in shells:
         script = textwrap.dedent(
             COMPLETION_SCRIPTS.get(options.shell, '') % {
                 'prog': get_prog(),
             })
         print(BASE_COMPLETION % {'script': script, 'shell': options.shell})
     else:
         sys.stderr.write('ERROR: You must pass %s\n' %
                          ' or '.join(shell_options))
 def run(self, options: Values, args: List[str]) -> int:
     """Prints the completion code of the given shell"""
     shells = COMPLETION_SCRIPTS.keys()
     shell_options = ["--" + shell for shell in sorted(shells)]
     if options.shell in shells:
         script = textwrap.dedent(
             COMPLETION_SCRIPTS.get(options.shell,
                                    "").format(prog=get_prog()))
         print(BASE_COMPLETION.format(script=script, shell=options.shell))
         return SUCCESS
     else:
         sys.stderr.write("ERROR: You must pass {}\n".format(
             " or ".join(shell_options)))
         return SUCCESS
    def _get_n_args(self, args, example, n):
        """Helper to make sure the command got the right number of arguments
        """
        if len(args) != n:
            msg = (
                'Got unexpected number of arguments, expected {}. '
                '(example: "{} config {}")'
            ).format(n, get_prog(), example)
            raise PipError(msg)

        if n == 1:
            return args[0]
        else:
            return args
Beispiel #23
0
 def run(self, options, args):
     """Prints the completion code of the given shell"""
     shells = COMPLETION_SCRIPTS.keys()
     shell_options = ['--' + shell for shell in sorted(shells)]
     if options.shell in shells:
         script = textwrap.dedent(
             COMPLETION_SCRIPTS.get(options.shell, '') % {
                 'prog': get_prog(),
             }
         )
         print(BASE_COMPLETION % {'script': script, 'shell': options.shell})
     else:
         sys.stderr.write(
             'ERROR: You must pass %s\n' % ' or '.join(shell_options)
         )
Beispiel #24
0
    def __init__(self, isolated=False):
        parser_kw = {
            'usage': self.usage,
            'prog': '%s %s' % (get_prog(), self.name),
            'formatter': UpdatingDefaultsHelpFormatter(),
            'add_help_option': False,
            'name': self.name,
            'description': self.__doc__,
            'isolated': isolated,
        }

        self.parser = ConfigOptionParser(**parser_kw)

        # Commands should add options to this option group
        optgroup_name = '%s Options' % self.name.capitalize()
        self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name)

        # Add the general options
        gen_opts = cmdoptions.make_option_group(
            cmdoptions.general_group,
            self.parser,
        )
        self.parser.add_option_group(gen_opts)
Beispiel #25
0
 def test_get_prog(self, monkeypatch: pytest.MonkeyPatch, argv: str,
                   executable: str, expected: str) -> None:
     monkeypatch.setattr("pip._internal.utils.misc.sys.argv", [argv])
     monkeypatch.setattr("pip._internal.utils.misc.sys.executable",
                         executable)
     assert get_prog() == expected
Beispiel #26
0
 def run(self):
     cmd = commands[self.arguments[0]]
     prog = '%s %s' % (get_prog(), cmd.name)
     usage = dedent(cmd.usage.replace('%prog', prog)).strip()
     node = nodes.literal_block(usage, usage)
     return [node]
Beispiel #27
0
        cmd_opts.add_option(
            '--zsh', '-z',
            action='store_const',
            const='zsh',
            dest='shell',
            help='Emit completion code for zsh')
        cmd_opts.add_option(
            '--fish', '-f',
            action='store_const',
            const='fish',
            dest='shell',
            help='Emit completion code for fish')

        self.parser.insert_option_group(0, cmd_opts)

    def run(self, options, args):
        """Prints the completion code of the given shell"""
        shells = COMPLETION_SCRIPTS.keys()
        shell_options = ['--' + shell for shell in sorted(shells)]
        if options.shell in shells:
            script = textwrap.dedent(
                COMPLETION_SCRIPTS.get(options.shell, '') % {
                    'prog': get_prog(),
                }
            )
            print(BASE_COMPLETION % {'script': script, 'shell': options.shell})
        else:
            sys.stderr.write(
                'ERROR: You must pass %s\n' % ' or '.join(shell_options)
            )