Flake8-pyproject / flake8p
Runs Flake8 with configuration from pyproject.toml
Flake8 cannot be configured via pyproject.toml, even though
virtually all other Python dev tools have adopted it as the central
location for project configuration. The discussion of the original
proposal (#234) was closed as "too heated", subsequent feature
and pull requests were marked as "spam" (#1332, #1421, #1431,
#1447, #1501).
Flake8-pyproject also has bad manners and force-feeds Flake8 the spam it so despises.
It is inspired by pyproject-Flake8, which had received little maintenance following its initial commit. Though this may have changed in the meantime. Consider using it instead, or any of the other alternatives mentioned in issue #2.
Compared to pyproject-Flake8, the code here (little as there was to
begin with) was completely rewritten and a simple test suite makes it
all a little more palatable.
Usage
First, move your Flake8 configuration to pyproject.toml. Then,
optionally, add Flake8p as a git pre-commit hook.
Move the configuration
Say your Flake8 configuration in .flake8 (or in tox.ini, or
setup.cfg) is this:
[flake8]
ignore = E231, E241
per-file-ignores =
__init__.py:F401
max-line-length = 88
count = true
Copy that [flake8] section to pyproject.toml, rename it as
[tool.flake8], and convert the key–value pairs to the TOML format:
[tool.flake8]
ignore = ['E231', 'E241']
per-file-ignores = [
'__init__.py:F401',
]
max-line-length = 88
count = true
From then on run flake8p instead of flake8 to lint the code, so that
the configuration in pyproject.toml will be used.
Add pre-commit hook
Automatically apply flake8p upon git commit by adding the following
to your project's pre-commit configuration:
# your-project-root/.pre-commit-hooks.yaml
- repo: https://github.com/john-hen/Flake8-pyproject
rev: 0.9.0
hooks:
- id: Flake8-pyproject
Implementation
Flake8 uses RawConfigParser from the standard library to parse its
configuration files, and therefore expects them to have the INI format.
This library adds pyproject.toml to Flake8's list of acceptable
configuration files and monkey-patches Flake8's RawConfigParser class
definition so that, when pyproject.toml is being read, the format is
converted from TOML to INI on the fly. TOML parsing is handled by
Tomli, which will be part of the standard library as of Python 3.11
(PEP 680).
A few very simple integration tests round out the package, making sure that any one of the possible configuration files are in fact accepted.
Metadata
Release files for Flake8-pyproject 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flake8_pyproject-0.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / flake8_pyproject-0.9.1-py3-none-any.whl
| Download URL | flake8_pyproject-0.9.1-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e4b6973021ab78aeb2a0ec993a0f990f26e01746728b102db3b212d1e509b43e
|
|
BLAKE2b-256 checksum How to use checksums |
8cc8cdbc40157c7631acc8d070bce09e6e4ecda3f07accf4c5895be9a95c66f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.28.1
|