Universal flakehell replacement for almost any linter you like
Project description
linthell 🔥
Universal flakehell alternative that works with almost any linter you like.
Usage
All examples are shown with flake8
, edit them for you case.
At first generate baseline file for every linter you use:
flake8 . | linthell baseline -b baseline-flake8.txt -f <linter regex>
Then lint your project via linthell
:
flake8 . | linthell lint -b baseline-flake8.txt -f <linter regex>
Custom linter format
If you use another linter then you must provide custom regex string
string to parse it's output. Default format is flake8
default format.
Some premade formats for linters:
flake8
:(?P<path>[a-zA-Z0-9\._-]+(?:[\\/][a-zA-Z0-9\._-]+)*):(?P<line>\d+):\d+: (?P<message>[^\n]+)
pydocstyle
:(?P<path>[a-zA-Z0-9\._-]+(?:[\\/][a-zA-Z0-9\._-]+)*):(?P<line>\d+).+\n\s+(?P<message>[^\n]+)
pylint
:(?P<path>[a-zA-Z0-9\._-]+(?:[\\/][a-zA-Z0-9\._-]+)*):(?P<line>\d+):\d+: (?P<message>[^\n]+)
Create your own format regex
You can use your custom format regex. Suitable regex must contains 3 named python-like capturing groups:
path
- relative file pathline
- line numbermessage
- linter message
Your regex should matchs all message related to an issue because unfiltered issues are printed by the whole match.
You can test your regex against linter output with regexr.
pre-commit support
linthell can be used as pre-commit hook with python-based linters.
See linthell lint-pre-commit --help
for more.
Config file
linthell
can inject params from config file (linthell --config path/to/config.ini
).
common
section applies for all commands, command specific config are specified by their name
section, for example lint
. Keys must have same name as
argument name of their command function. For example, baseline_file
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.