FlakeHeaven
flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.
This project is a fork of FlakeHell. FlakeHell and other forks of it such as
flakehell/flakehell are no longer maintained and do not work with Flake8 4.0.x.
FlakeHeaven works with Flake8 4.0.1 or greater. This fork will be maintained by the community that developed the existing forks.
Compatibility
FlakeHeaven supports all flake8 plugins, formatters, and configs. However, FlakeHeaven has its own beautiful way to configure enabled plugins and codes. So, options like --ignore
and --select
are unsupported. You can have flake8 and FlakeHeaven in one project if you want but enabled plugins should be explicitly specified.
Installation
python3 -m pip install --user flakeheaven
Usage
First of all, let's create pyproject.toml
config:
[tool.flakeheaven]
base = "https://raw.githubusercontent.com/flakeheaven/flakeheaven/main/pyproject.toml"
exclude = ["example.py"]
format = "grouped"
max_line_length = 90
show_source = true
[tool.flakeheaven.plugins]
pyflakes = ["+*", "-F401"]
flake8-bandit = ["-*", "+S1??"]
"flake8-*" = ["+*"]
flake8-docstrings = ["-*"]
Show plugins that aren't installed yet:
flakeheaven missed
Show installed plugins, used plugins, specified rules, codes prefixes:
flakeheaven plugins
Show codes and messages for a specific plugin:
flakeheaven codes pyflakes
Run flake8 against the code:
flakeheaven lint
This command accepts all the same arguments as Flake8.
Read the documentation for more information.
Contributing
- Add tests when possible (eg for features / fixes / refactor, etc. )
- Add your contribution to the code / docs
- Ensure your code passes all (both original and your own) tests.
- Commit using proper header
- Create a PR
Contributions are welcome! A few ideas where you can contribute:
- Improve documentation.
- Add more tests.
- Improve performance.
- Found a bug? Fix it!
- Made an article about FlakeHeaven? Great! Let's add it into the
README.md
. - Don't have time to code? No worries! Just tell your friends and subscribers about the project. More users -> more contributors -> more cool features.
A convenient way to run tests is using Poetry:
curl -sSL https://install.python-poetry.org | python3 -
poetry install
poetry run pytest tests
Thank you :heart:
The FlakeHeaven mascot (Flaky) is created by @illustrator.way and licensed under the CC BY-SA 4.0 license.