Flake8
flake8.pycqa.org
Spec sheet
- What it does
- Flake8 is a Python command-line tool that combines pycodestyle, PyFlakes, McCabe complexity checks and third-party plugins into merged per-file diagnostics.Read 15 Oct 2026 · github.com
- Purpose
- Flake8 combines pycodestyle, pyflakes, McCabe, and third-party plugins to check Python code style and quality.Read 7 Oct 2026 · github.com
- Built-in checks
- Flake8 installs pycodestyle, pyflakes, and mccabe by default.Read 7 Oct 2026 · flake8.pycqa.org
- Complexity analysis
- McCabe checks are enabled through the C90 family and require the max-complexity option to report complexity violations.Read 15 Oct 2026 · flake8.pycqa.org
- Configurable checks
- Users can select or ignore error codes and configure per-file ignores.Read 7 Oct 2026 · flake8.pycqa.org
- Configuration
- Project configuration can be stored in setup.cfg, tox.ini, or .flake8 using INI format.Read 7 Oct 2026 · flake8.pycqa.org
- Configuration files
- The documented project configuration locations are setup.cfg, tox.ini and .flake8, using an INI [flake8] section.Read 15 Oct 2026 · flake8.pycqa.org
- Configuration precedence
- Command-line options override project configuration, which overrides defaults.Read 15 Oct 2026 · flake8.pycqa.org
- Core checks
- The default violation groups cover McCabe complexity (C90), pycodestyle errors (E), pyflakes errors (F) and pycodestyle warnings (W).Read 15 Oct 2026 · flake8.pycqa.org
- Extensibility
- Flake8 supports community plugins, most of which are uploaded to PyPI, and provides guidance for plugin developers.Read 7 Oct 2026 · flake8.pycqa.org
- File suppression
- Entire files can be skipped with an exclude configuration or a # flake8: noqa header.Read 15 Oct 2026 · flake8.pycqa.org
- GitHub activity
- The public repository showed about 3.8k stars, 362 forks and 2,544 commits when opened.Read 15 Oct 2026 · github.com
- Homebrew distribution
- Homebrew offers flake8 through brew install flake8, lists MIT licensing and version 7.4.1, and depends on [email protected].Read 15 Oct 2026 · formulae.brew.sh
- How it runs
- Flake8 runs from the command line and displays warnings in merged per-file output.Read 7 Oct 2026 · github.com
- Inline suppression
- A line can suppress selected diagnostics with a case-insensitive # noqa comment and one or more error codes.Read 15 Oct 2026 · flake8.pycqa.org
- Installation
- The official quickstart installs Flake8 with python -m pip install flake8 and recommends invoking the interpreter-specific module when multiple Python versions are installed.Read 15 Oct 2026 · flake8.pycqa.org
- Interpreter coupling
- The documentation says Flake8 must run under the Python version whose syntax it needs to parse, so installing it for one interpreter does not install it for another.Read 15 Oct 2026 · flake8.pycqa.org
- Latest release
- PyPI lists version 7.4.1 uploaded on September 23, 2026.Read 15 Oct 2026 · pypi.org
- Licence
- PyPI identifies Flake8 as MIT licensed.Read 15 Oct 2026 · pypi.org
- Limit: analysis scope
- A Reddit comparison noted that Flake8's ecosystem cannot perform some cross-file and type-inference checks, such as detecting a function called with the wrong number of arguments.Read 15 Oct 2026 · reddit.com
- Limit: configuration format
- Reddit commenters criticized Flake8 for not supporting pyproject.toml configuration and described its issue discussions as difficult to navigate.Read 15 Oct 2026 · reddit.com
- Limit: no automatic fixes
- A Stack Overflow answer by Flake8 maintainer Anthony Sottile states that Flake8 only checks code and users need a formatter such as Black or autopep8 to modify it.Read 15 Oct 2026 · stackoverflow.com
- Limit: speed
- A Princeton software-quality handout measured Flake8 at 12.26 seconds in its comparison, much slower than Ruff's 0.29 seconds.Read 15 Oct 2026 · researchcomputing.princeton.edu
- Local plugins
- Projects can define local extension and reporter plugins in a flake8:local-plugins section and optionally add import paths.Read 15 Oct 2026 · flake8.pycqa.org
- Maker and maintainers
- The project was created by Tarek Ziadé and is maintained by Anthony Sottile and Ian Cordasco.Read 15 Oct 2026 · github.com
- Plugin caveat
- The documentation says third-party plugin accuracy and reliability may vary and that plugins are not guaranteed to work with Flake8 3.0.Read 7 Oct 2026 · flake8.pycqa.org
- Plugin ecosystem
- Installed plugins are discovered through entry points in the flake8.extension and flake8.report groups.Read 15 Oct 2026 · flake8.pycqa.org
- Plugin parameters
- Check plugins can request filename, line number, physical line, logical line, tree, and other inputs from Flake8.Read 15 Oct 2026 · flake8.pycqa.org
- Praise: reliability
- A Reddit user said Flake8 caught a bug introduced by another linter and that project teammates had already bought into using its extension.Read 15 Oct 2026 · reddit.com
- Pre-commit
- Flake8 can be included as a hook in the pre-commit Git hooks framework.Read 7 Oct 2026 · flake8.pycqa.org
- Project history
- PyCQA was formed around Flake8's migration from Mercurial to Git, initiated by Ian Cordasco on September 12, 2014.Read 15 Oct 2026 · meta.pycqa.org
- Public API
- The documentation includes a dedicated Public Python API section and a documented module index.Read 15 Oct 2026 · flake8.pycqa.org
- Python requirement
- The current PyPI release requires Python 3.10 or newer.Read 15 Oct 2026 · pypi.org
- Recent release change
- Release 7.4.0 dated September 22, 2026 drops Python 3.10 support, adds Python 3.15 support, and updates pycodestyle and Pyflakes dependency ranges.Read 15 Oct 2026 · flake8.pycqa.org
- Security information
- The GitHub repository exposes a security-policy link, but the opened repository page does not state certifications, compliance programs or hosted-data controls.Read 15 Oct 2026 · github.com
- Target users
- The documentation includes a user guide for Flake8 users and a plugin developer guide for people creating or maintaining plugins.Read 7 Oct 2026 · flake8.pycqa.org
- Version control hooks
- The project README lists Git and Mercurial hooks as features.Read 7 Oct 2026 · github.com
- Version-control integration
- Flake8 provides documented Git and Mercurial hook support.Read 15 Oct 2026 · github.com
- VS Code customization
- The extension can use a bundled or environment-installed binary, supports monorepo working directories and lets users change diagnostic severity by code.Read 15 Oct 2026 · marketplace.visualstudio.com
- VS Code integration
- Microsoft's Flake8 extension bundles Flake8 7.3.0, supports Python versions that are actively supported, and runs linting when Python files open.Read 15 Oct 2026 · marketplace.visualstudio.com
Plans and prices
Flake8 Free Open-source Python command-line tool Read 7 Oct 2026 · github.com
Flake8 Free MIT-licensed Python package · requires Python >=3.10 Read 15 Oct 2026 · pypi.org
Where Specifiction places it
- Linters#2 of 338.8