flakehell¶
flakehell
is a legacy-first
wrapper around flake8
linter to make it awesome.
What does it mean? It means, that it adds some useful
features to the core flake8
with the new command line utility:
pip install flakehell # however we recommend to use `poetry`
flakehell lint # accepts the same arguments, does the same as `flake8`
The most exciting feature for us is baseline
generation.
Legacy first¶
When you project is old you cannot just install and use a new linter. Since your codebase will contain hundreds or even thousands of violations.
Some of them can be auto-formatted, some of them can be silenced. But, what if there are still too many of them to fix right here and right now?
Let me introduce the baseline
concept:
The first step is to create a
baseline
via:flakehell baseline > .flakehell_baseline
It will contain all your current violations list with exact locations and quantity.
Then specify the
baseline
in the configuration:# Inside your pyproject.toml [tool.flakehell] baseline = ".flakehell_baseline"
Run your linter again with
flakehell lint
. You will see no violations!Try to add a new one into your source code. And run your linter again. It will be reported!
The baseline
method allows you to report any new violations
and fix the old ones little by little.
So, the integration is almost painless.
That’s why we call it “legacy-first”. Enjoy your new linter in your old project!
Support¶
flakehell
is officially supported by wemake-python-styleguide
and developed by the same people.
Further reading¶
Our Legacy projects guide
Official docs: flakehell.readthedocs.io