Mini Shell
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Everything related to the setup of the 'pylint-config' command."""
from __future__ import annotations
import argparse
from collections.abc import Sequence
from typing import Any
from pylint.config._pylint_config.help_message import get_help
from pylint.config.callback_actions import _AccessParserAction
class _HelpAction(_AccessParserAction):
def __call__(
self,
parser: argparse.ArgumentParser,
namespace: argparse.Namespace,
values: str | Sequence[Any] | None,
option_string: str | None = "--help",
) -> None:
get_help(self.parser)
def _register_generate_config_options(parser: argparse.ArgumentParser) -> None:
"""Registers the necessary arguments on the parser."""
parser.prog = "pylint-config"
# Overwrite the help command
parser.add_argument(
"-h",
"--help",
action=_HelpAction,
default=argparse.SUPPRESS,
help="show this help message and exit",
parser=parser,
)
# We use subparsers to create various subcommands under 'pylint-config'
subparsers = parser.add_subparsers(dest="config_subcommand", title="Subcommands")
# Add the generate command
generate_parser = subparsers.add_parser(
"generate", help="Generate a pylint configuration"
)
generate_parser.add_argument("--interactive", action="store_true")
Zerion Mini Shell 1.0