--- id: flake8-functions version: "0.1.0" license: MIT license_treatment: permissive maintenance: active --- # flake8-functions — A flake8 extension that checks functions License: permissive · Maintenance: active · Downloads: 356.8K/mo ## What it is and what it does flake8-functions is a linter plugin that adds four new rule categories to flake8, targeting functions that may harm code readability or maintainability. It checks for functions exceeding a configurable line length (CFQ001, default 100), functions with too many parameters (CFQ002, default 6), functions that are not pure (CFQ003), and functions with excessive return statements (CFQ004, default 3). The tool integrates directly into flake8's reporting pipeline, so violations appear alongside standard flake8 output. The package is designed for teams where code readability across multiple developers is a priority. It has no runtime dependencies beyond flake8 itself, installs cleanly, and supports Python 3.10 through 3.14. Configuration is done via flake8's standard command-line flags (e.g., --max-function-length). The project is actively maintained and carries an MIT license. Use it for: - Enforce maximum function length in team codebases to prevent functions spanning multiple screens - Limit function parameter counts to catch overly complex function signatures during code review - Detect functions with multiple return statements that may indicate unclear control flow - Identify impure functions (those with side effects) in codebases targeting functional programming patterns ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. A flake8 extension that enforces function-level code quality rules: function length, argument count, return statement count, and function purity. Yes, if your team values function-level code quality enforcement and uses flake8. The plugin is lightweight, actively maintained, carries no licensing restrictions, and has no external dependencies. Install it if you want automated checks for function complexity; skip it if your team prefers manual review or uses a different linter. ## Install pip install flake8-functions uv add flake8-functions poetry add flake8-functions ## Installing flake8-functions Before you install: Low friction install with no runtime dependencies. Active maintenance as of 2026-08-14 with recent release history since 2019. License in practice: MIT license permits commercial and private use with minimal restrictions; suitable for most projects. Quickstart: pip install flake8-functions flake8 --max-function-length=100 your_code.py Requires Python 3.10 or later; flake8 must be installed and configured. Verify before relying: - Whether CFQ003 (purity check) correctly identifies side effects in all Python patterns - How configurable thresholds interact with existing flake8 configuration files - Performance impact on large codebases with many functions ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 356.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags flake8 function length checker, enforce function complexity limits, function argument count linter, flake8 code quality extension, function purity checker, flake8-plugin, code-quality, linting [View on SkillFed](https://skillfed.io/packages/flake8-functions) · [View on PyPI](https://pypi.org/project/flake8-functions/)