Module rulebook-pylint.rulebook_pylint.parameter_wrap

Functions

def register(linter: PyLinter)
Expand source code
def register(linter: 'PyLinter') -> None:
    linter.register_checker(ParameterWrapChecker(linter))

Classes

class ParameterWrapChecker (linter: PyLinter)
Expand source code
class ParameterWrapChecker(RulebookChecker):
    """See detail: https://hanggrian.github.io/rulebook/rules/#parameter-wrap"""
    MSG: str = 'parameter-wrap'

    name: str = 'parameter-wrap'
    msgs: dict[str, MessageDefinitionTuple] = Messages.of(MSG)

    def visit_functiondef(self, node: FunctionDef) -> None:
        self._process(node.args.args)

    def visit_call(self, node: Call) -> None:
        self._process(node.args)

    def _process(self, parameters: list[NodeNG]) -> None:
        # target multiline parameters
        if not parameters or \
            parameters[0].lineno == parameters[-1].end_lineno:
            return

        # checks for violation
        for i, parameter in enumerate(parameters):
            if i == 0 or \
                parameters[i - 1].end_lineno != parameter.lineno:
                continue
            self.add_message(self.MSG, node=parameter)

See detail: https://hanggrian.github.io/rulebook/rules/#parameter-wrap

Checker instances should have the linter as argument.

Ancestors

  • rulebook_pylint.checkers.RulebookChecker
  • pylint.checkers.base_checker.BaseChecker
  • pylint.config.arguments_provider._ArgumentsProvider

Class variables

var MSG : str

The type of the None singleton.

var msgs : dict[str, tuple[str, str, str] | tuple[str, str, str, pylint.typing.ExtraMessageOptions]]

The type of the None singleton.

var name : str

The type of the None singleton.

Methods

def visit_call(self, node: astroid.nodes.node_classes.Call) ‑> None
Expand source code
def visit_call(self, node: Call) -> None:
    self._process(node.args)
def visit_functiondef(self, node: astroid.nodes.scoped_nodes.scoped_nodes.FunctionDef) ‑> None
Expand source code
def visit_functiondef(self, node: FunctionDef) -> None:
    self._process(node.args.args)