flake8-functions
An extension for flake8 to report on issues with functions.
We believe code readability is very important for a team that consists of more than one person. One of the issues we've encountered is functions that are more that two screens long.
The validator checks for:
- CFQ001 - function length (default max length is 100)
- CFQ002 - function arguments number (default max arguments amount is 6)
- CFQ003 - function is not pure.
- CFQ004 - function returns number (default max returns amount is 3)
Installation
pip install flake8-functions
Example
def some_long_function(
first_parameter: int,
second_parameter: int,
third_parameter: int,
):
first_parameter = (
first_parameter +
second_parameter +
third_parameter
)
first_parameter = (
first_parameter +
second_parameter +
third_parameter
)
first_parameter = (
first_parameter +
second_parameter +
third_parameter
)
first_parameter = (
first_parameter +
second_parameter +
third_parameter
)
return first_parameter
Usage:
$ flake8 --max-function-length=20 test.py
test.py:1:0: CFQ001 "some_long_function" function has length 25
that exceeds max allowed length 20
Error codes
| Error code | Description |
|---|---|
| CFQ001 | Function "some_function" has length %function_length% that exceeds max allowed length %max_length% |
| CFQ002 | Function "some_function" has %args_amount% arguments that exceeds max allowed %max_args_amount% |
| CFQ003 | Function "some_function" is not pure. |
| CFQ004 | Function "some_function" has %returns_amount% returns that exceeds max allowed %max_returns_amount% |
Code prerequisites
- Python 3.10+ (tested up to 3.14).
Contributing
We would love you to contribute to our project. It's simple:
- Create an issue with bug you found or proposal you have. Wait for approve from maintainer.
- Create a pull request. Make sure all checks are green.
- Fix review comments if any.
- Be awesome.
Here are useful tips:
- The project uses uv. Run
make installonce, thenmake checkto run all checks and tests before CI does. - Optionally enable the git hooks with
uv run pre-commit install. - We use BestDoctor python styleguide.
- We respect Django CoC. Make soft, not bullshit.
Metadata
Release files for flake8-functions 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flake8_functions-0.1.0.tar.gz | 9.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flake8_functions-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / flake8_functions-0.1.0.tar.gz
| Download URL | flake8_functions-0.1.0.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d4047bdf06c091b1156680505012d5c1139c9e52b2fefab7d5b18eea21e05f86
|
|
BLAKE2b-256 checksum How to use checksums |
45dd7dce9a49c73a3292b18b4da2ddc8578379d653d26895c50bb84575858d33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / flake8_functions-0.1.0-py3-none-any.whl
| Download URL | flake8_functions-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e13213bbe923244d4a4640c2780d788e1c37ff1fbe41bacd02c6576c3afcc3d
|
|
BLAKE2b-256 checksum How to use checksums |
52900ee64a1f4586695975380ecdb140078be51e03f6ee9eea9ca83c7251476a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|