pyproject-flake8
pyproject-flake8 (`pflake8`), a monkey patching wrapper to connect flake8 with pyproject.toml configuration
What it is and what it does
pyproject-flake8 is a wrapper script that monkey patches flake8 to read its configuration from the [tool.flake8] section of pyproject.toml instead of requiring a separate .flake8 or setup.cfg file. You invoke it via the pflake8 command rather than flake8, and it handles the redirection transparently. The package depends on flake8 itself and tomli for TOML parsing.
The project explicitly versions itself to track flake8 releases—release versions pin identical flake8 versions, while alpha versions pin to a minimum compatible flake8 version. This dual approach lets you choose between stability (fixed version) and flexibility (minimum version with risk of breakage). The maintainer acknowledges that monkey patching carries inherent fragility and may break if Python or flake8 restructure their internals.
Use it for:
- Consolidate linter config into pyproject.toml alongside other tool settings, reducing .flake8 and setup.cfg clutter.
- Use flake8 in projects that have standardized on pyproject.toml for all tool configuration.
- Maintain a single source of truth for linting rules across a monorepo or multi-project setup.
- Migrate from separate flake8 config files to a unified pyproject.toml without rewriting linting rules.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Enables flake8 linting to read configuration from pyproject.toml by wrapping flake8 with monkey patches that redirect its config parsing.
Yes, if you need flake8 to read pyproject.toml and accept the trade-offs. The install is low-friction and the package has no known vulnerabilities. However, dormant maintenance (857 days since last release) means no active support for future flake8 or Python changes, and the monkey-patching approach is inherently fragile. Verify the license terms before use. Best suited for stable, mature projects where flake8 compatibility is unlikely to shift rapidly.
Install
pyproject-flake8 on PyPI
pip
pip install pyproject-flake8uv
uv add pyproject-flake8poetry
poetry add pyproject-flake8Installing pyproject-flake8
Before you install
Low friction install with only two runtime dependencies (tomli and flake8). Maintenance is dormant—last release was 857 days ago—so expect no active bug fixes or flake8 compatibility updates going forward.
License in practice
License status is unclear; the package declares no SPDX identifier or raw license text in its metadata, though the repository mentions Unlicense. Verify the actual license terms before use in proprietary or restricted-license projects.
Quickstart
pip install pyproject-flake8
# In pyproject.toml:
# [tool.flake8]
# max-line-length = 88
# Then run:
pflake8 .
Requires Python >=3.8.1. Monkey patches flake8 and configparser; may break if flake8 or Python internals change significantly.
Verify before relying
- Actual license terms (Unlicense vs. other) and any restrictions on commercial use.
- Compatibility with flake8 versions beyond those explicitly tested in recent releases.
- Whether dormant status means the project is stable or abandoned.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.8.1) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — tomli, flake8 |
| Maintenance | dormant — 857 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 338,095/month — #7,438 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyproject_flake8-7.0.0-py3-none-any.whl
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
Flake8-pyprojectFlake8-pyproject enables Flake8 to read its…
permissive · top 5,000 on PyPI
sphinx-pyprojectLoads Sphinx documentation configuration from…
permissive · top 15,000 on PyPI
autowraptAutowrapt enables monkey patching of Python…
permissive · top 15,000 on PyPI
flake8Flake8 is a command-line tool that combines…
permissive · top 1,000 on PyPI
pysenOrchestrates multiple Python linters (black,…
permissive · top 5,000 on PyPI
pyproject-apiProvides a programmatic API to read and…
permissive · top 5,000 on PyPI
flake8-polyfillProvides compatibility helpers for Flake8…
permissive · top 5,000 on PyPI
pep8-namingA flake8 plugin that checks Python code for…
permissive · top 5,000 on PyPI
pyproject-parserParses and extracts metadata from…
permissive · top 15,000 on PyPI
lintrunner-adaptersProvides adapter integrations for lintrunner,…
permissive · top 5,000 on PyPI