| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- """Pyflakes support."""
- from pyflakes import checker
- from pylama.context import RunContext
- from pylama.lint import LinterV2 as Abstract
- m = checker.messages
- CODES = {
- m.UnusedImport.message: "W0611",
- m.RedefinedWhileUnused.message: "W0404",
- m.ImportShadowedByLoopVar.message: "W0621",
- m.ImportStarUsed.message: "W0401",
- m.ImportStarUsage.message: "W0401",
- m.UndefinedName.message: "E0602",
- m.DoctestSyntaxError.message: "W0511",
- m.UndefinedExport.message: "E0603",
- m.UndefinedLocal.message: "E0602",
- m.DuplicateArgument.message: "E1122",
- m.LateFutureImport.message: "W0410",
- m.UnusedVariable.message: "W0612",
- m.ReturnOutsideFunction.message: "E0104",
- }
- # RedefinedInListComp and ReturnWithArgsInsideGenerator were removed at pyflakes 2.5.0:
- # https://github.com/PyCQA/pyflakes/commit/2246217295dc8cb30ef4a7b9d8dc449ce32e603a
- if hasattr(m, "RedefinedInListComp"):
- CODES[m.RedefinedInListComp.message] = "W0621"
- if hasattr(m, "ReturnWithArgsInsideGenerator"):
- CODES[m.ReturnWithArgsInsideGenerator.message] = "E0106"
- class Linter(Abstract):
- """Pyflakes runner."""
- name = "pyflakes"
- def run_check(self, context: RunContext): # noqa
- """Check code with pyflakes."""
- params = context.get_params("pyflakes")
- builtins = params.get("builtins", "")
- if builtins:
- builtins = builtins.split(",")
- check = checker.Checker(context.ast, context.filename, builtins=builtins)
- for msg in check.messages:
- context.push(
- lnum=msg.lineno,
- col=msg.col + 1,
- text=msg.message % msg.message_args,
- number=CODES.get(msg.message, ""),
- source="pyflakes",
- )
- # pylama:ignore=E501,C0301
|