mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 07:58:04 +00:00
66 lines
2.6 KiB
Python
66 lines
2.6 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/blob/main/CONTRIBUTORS.txt
|
|
|
|
|
|
import argparse
|
|
from typing import Optional
|
|
|
|
from pylint.config.callback_actions import _CallbackAction
|
|
from pylint.constants import DEFAULT_PYLINT_HOME, OLD_DEFAULT_PYLINT_HOME
|
|
|
|
|
|
class _HelpFormatter(argparse.RawDescriptionHelpFormatter):
|
|
"""Formatter for the help message emitted by argparse."""
|
|
|
|
def _get_help_string(self, action: argparse.Action) -> Optional[str]:
|
|
"""Copied from argparse.ArgumentDefaultsHelpFormatter."""
|
|
assert action.help
|
|
help_string = action.help
|
|
|
|
# CallbackActions don't have a default
|
|
if isinstance(action, _CallbackAction):
|
|
return help_string
|
|
|
|
if "%(default)" not in help_string:
|
|
if action.default is not argparse.SUPPRESS:
|
|
defaulting_nargs = [argparse.OPTIONAL, argparse.ZERO_OR_MORE]
|
|
if action.option_strings or action.nargs in defaulting_nargs:
|
|
help_string += " (default: %(default)s)"
|
|
return help_string
|
|
|
|
@staticmethod
|
|
def get_long_description() -> str:
|
|
return f"""
|
|
Environment variables:
|
|
The following environment variables are used:
|
|
* PYLINTHOME Path to the directory where persistent data for the run will
|
|
be stored. If not found, it defaults to '{DEFAULT_PYLINT_HOME}'
|
|
or '{OLD_DEFAULT_PYLINT_HOME}' (in the current working directory).
|
|
* PYLINTRC Path to the configuration file. See the documentation for the method used
|
|
to search for configuration file.
|
|
|
|
Output:
|
|
Using the default text output, the message format is :
|
|
|
|
MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE
|
|
|
|
There are 5 kind of message types :
|
|
* (I) info, for informational messages
|
|
* (C) convention, for programming standard violation
|
|
* (R) refactor, for bad code smell
|
|
* (W) warning, for python specific problems
|
|
* (E) error, for probable bugs in the code
|
|
* (F) fatal, if an error occurred which prevented pylint from doing further processing.
|
|
|
|
Output status code:
|
|
Pylint should leave with following bitwise status codes:
|
|
* 0 if everything went fine
|
|
* 1 if a fatal message was issued
|
|
* 2 if an error message was issued
|
|
* 4 if a warning message was issued
|
|
* 8 if a refactor message was issued
|
|
* 16 if a convention message was issued
|
|
* 32 on usage error
|
|
"""
|