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
# type: ignore # Deprecated module.
import optparse # pylint: disable=deprecated-module
import warnings
from pylint.config.option import Option
def _level_options(group, outputlevel):
return [
option
for option in group.option_list
if (getattr(option, "level", 0) or 0) <= outputlevel
and option.help is not optparse.SUPPRESS_HELP
]
class OptionParser(optparse.OptionParser):
def __init__(self, option_class, *args, **kwargs):
# TODO: 3.0: Remove deprecated class
warnings.warn(
"OptionParser has been deprecated and will be removed in pylint 3.0",
DeprecationWarning,
stacklevel=2,
)
super().__init__(option_class=Option, *args, **kwargs) # noqa: B026
def format_option_help(self, formatter=None):
if formatter is None:
formatter = self.formatter
outputlevel = getattr(formatter, "output_level", 0)
formatter.store_option_strings(self)
result = [formatter.format_heading("Options")]
formatter.indent()
if self.option_list:
result.append(optparse.OptionContainer.format_option_help(self, formatter))
result.append("\n")
for group in self.option_groups:
if group.level <= outputlevel and (
group.description or _level_options(group, outputlevel)
):
result.append(group.format_help(formatter))
result.append("\n")
formatter.dedent()
# Drop the last "\n", or the header if no options or option groups:
return "".join(result[:-1])
def _match_long_opt(self, opt): # pragma: no cover # Unused
"""Disable abbreviations."""
if opt not in self._long_opt:
raise optparse.BadOptionError(opt)
return opt
Zerion Mini Shell 1.0