Flake8 wrapper to make it nice and configurable
Project description
It’s a Flake8 wrapper to make it cool.
Sharable and remote configs.
Legacy-friendly: ability to get report only about new errors.
Use only specified plugins, not everything installed.
Manage codes per plugin.
Enable and disable plugins and codes by wildcard.
Make output beautiful.
pyproject.toml support.
Show codes for installed plugins.
Show all messages and codes for a plugin.
Check that all required plugins are installed.
Syntax highlighting in messages and code snippets.
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.
Formatters
Formatters make errors output nice. Available formatters:
colored – for humans.
grouped – also colored, but all messages are explicitly grouped by file.
json – no colors, only one json-dict per line for every error.
default – classic Flake8 formatter. Booooring.
Also, you can specify show_source = true in the config to show line of source code where error occurred with syntax highlighting.
Colored:
Colored with source code:
Grouped:
Grouped with source code:
JSON:
Integrating into a huge codebase
First of all, let’s create baseline.
flakehell baseline > baseline.txt
Then specify path to the baseline file:
[tool.flakehell]
baseline = "baseline.txt"
Now, flakehell lint command will ignore all your current errors. It will report only about new errors, all errors in a new code, or if old line of code was modified.
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.
Source Distribution
Built Distribution
File details
Details for the file flakehell-0.1.4.tar.gz
.
File metadata
- Download URL: flakehell-0.1.4.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0718f984036b41d72412fcc81e819953e26540d3f8e8cca22070e29eace4d103 |
|
MD5 | 8e5043efa0e51f7d1c81baca43f381b7 |
|
BLAKE2b-256 | 104703e7e6821ccc27e1c2bb16e42c5b1d5980ae29524463d36543f248dc8789 |
File details
Details for the file flakehell-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: flakehell-0.1.4-py3-none-any.whl
- Upload date:
- Size: 24.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18e6a130d71d02e67e9028e5127e05f60d6bdacdd88140c766d3166dd99cf023 |
|
MD5 | 86cdeae8bfe1fee577889a66b803d38c |
|
BLAKE2b-256 | eb5cf7575b2805b627459780ccd61ec65abc4826da12d66f0768103cc02e0e60 |