mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 16:19:21 +00:00
9e0baf370a
git is the source of truth for the copyright, copyrite (the tool) was taking exponentially longer with each release, and it's polluting the code with sometime as much as 50 lines of names.
48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
# 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/graphs/contributors
|
|
|
|
import optparse # pylint: disable=deprecated-module
|
|
|
|
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):
|
|
super().__init__(option_class=Option, *args, **kwargs)
|
|
|
|
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):
|
|
"""Disable abbreviations."""
|
|
if opt not in self._long_opt:
|
|
raise optparse.BadOptionError(opt)
|
|
return opt
|