Skip to content

flake8 plugin for validation of function parameters (length, complexity, etc)

License

Notifications You must be signed in to change notification settings

best-doctor/flake8-functions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7f0ab41 · Apr 10, 2023

History

40 Commits
Feb 24, 2022
Apr 10, 2023
Apr 23, 2021
Sep 3, 2021
Oct 1, 2019
May 10, 2020
Oct 1, 2019
Apr 23, 2021
May 3, 2020
Oct 1, 2019
Apr 23, 2021
Apr 23, 2021
Apr 6, 2023
Feb 24, 2022
Feb 24, 2022

Repository files navigation

flake8-functions

Build Status Maintainability Test Coverage PyPI version PyPI - Python Version

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

  1. Python 3.7+;

Contributing

We would love you to contribute to our project. It's simple:

  1. Create an issue with bug you found or proposal you have. Wait for approve from maintainer.
  2. Create a pull request. Make sure all checks are green.
  3. Fix review comments if any.
  4. Be awesome.

Here are useful tips: