THE PROJECT IS ARCHIVED
Forks: https://github.com/orsinium/forks
It's a Flake8 wrapper to make it cool.
- Lint md, rst, ipynb, and more.
- Shareable and remote configs.
- Legacy-friendly: ability to get report only about new errors.
- Caching for much better performance.
- Use only specified plugins, not everything installed.
- Make output beautiful.
- pyproject.toml support.
- Check that all required plugins are installed.
- Syntax highlighting in messages and code snippets.
- PyLint integration.
- Powerful GitLab support.
- Codes management:
- Manage codes per plugin.
- Enable and disable plugins and codes by wildcard.
- Show codes for installed plugins.
- Show all messages and codes for a plugin.
- Allow codes intersection for different plugins.
Compatibility
FlakeHell supports all flake8 plugins, formatters, and configs. However, FlakeHell has it's own beautiful way to configure enabled plugins and codes. So, options like --ignore
and --select
unsupported. You can have flake8 and FlakeHell in one project if you want but enabled plugins should be explicitly specified.
Installation
python3 -m pip install --user flakehell
Usage
First of all, let's create pyproject.toml
config:
[tool.flakehell]
# optionally inherit from remote config (or local if you want)
base = "https://raw.githubusercontent.com/life4/flakehell/master/pyproject.toml"
# specify any flake8 options. For example, exclude "example.py":
exclude = ["example.py"]
# make output nice
format = "grouped"
# 80 chars aren't enough in 21 century
max_line_length = 90
# show line of source code in output
show_source = true
# list of plugins and rules for them
[tool.flakehell.plugins]
# include everything in pyflakes except F401
pyflakes = ["+*", "-F401"]
# enable only codes from S100 to S199
flake8-bandit = ["-*", "+S1??"]
# enable everything that starts from `flake8-`
"flake8-*" = ["+*"]
# explicitly disable plugin
flake8-docstrings = ["-*"]
Show plugins that aren't installed yet:
flakehell missed
Show installed plugins, used plugins, specified rules, codes prefixes:
flakehell plugins
Show codes and messages for a specific plugin:
flakehell codes pyflakes
Run flake8 against the code:
flakehell lint
This command accepts all the same arguments as Flake8.
Read flakehell.readthedocs.io for more information.
Contributing
Contributions are welcome! A few ideas what you can contribute:
- Improve documentation.
- Add more tests.
- Improve performance.
- Found a bug? Fix it!
- Made an article about FlakeHell? 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 DepHell:
curl -L dephell.org/install | python3
dephell venv create --env=pytest
dephell deps install --env=pytest
dephell venv run --env=pytest
Bug-tracker is disabled by-design to shift contributions from words to actions. Please, help us make the project better and don't stalk maintainers in social networks and on the street.
Thank you
The FlakeHell mascot (Flaky) is created by @illustrator.way and licensed under the CC BY-SA 4.0 license.