| from astroid import nodes |
| |
| from pylint.checkers import BaseChecker |
| from pylint.interfaces import IRawChecker |
| |
| |
| class MyRawChecker(BaseChecker): |
| """check for line continuations with '\' instead of using triple |
| quoted string or parenthesis |
| """ |
| |
| __implements__ = IRawChecker |
| |
| name = "custom_raw" |
| msgs = { |
| "W9901": ( |
| "use \\ for line continuation", |
| "backslash-line-continuation", |
| ( |
| "Used when a \\ is used for a line continuation instead" |
| " of using triple quoted string or parenthesis." |
| ), |
| ) |
| } |
| options = () |
| |
| def process_module(self, node: nodes.Module) -> None: |
| """process a module |
| |
| the module's content is accessible via node.stream() function |
| """ |
| with node.stream() as stream: |
| for (lineno, line) in enumerate(stream): |
| if line.rstrip().endswith("\\"): |
| self.add_message("backslash-line-continuation", line=lineno) |
| |
| |
| def register(linter): |
| """required method to auto register this checker""" |
| linter.register_checker(MyRawChecker(linter)) |