Skip to main content

flake8-functions-names

PyPI version PyPI - Python Version

An extension for flake8 that validates functions names, decomposition and conformity with annotations. The plugin also has some validations of deal contracts.

This plugin helps to provide better naming for functions. The validations are based on my articles:

deal-related validations are enabled only if deal is installed. They are disabled otherwise.

Installation

pip install flake8-functions-names

Example

def is_user_banned(user: User) -> str:
    return 'is_banned' if user.id in BANNED_USERS else 'not_banned'

def save_user(user: User) -> None:
    user.save()

Usage:

$ flake8 test.py
text.py:1:35: FNE001 Name of the function says that it should return bool-like, but it returns str
text.py:4:4: FNE003 Name of the function uses "save", but not uses "to"

Tested on Python 3.8+ and flake8 3.9+.

Error codes

Error code Description
FNE001 Name of the function says that it should return bool-like1, but it returns actual_type
FNE002 The method has a @property decorator, but has a verb in it's name (verb)
FNE003 Name of the function uses save, but not uses to
FNE004 Name of the function uses load, but not uses from
FNE005 Return type of the function is bool-like1, but the name doesn't show it
FNE006 Name of function says, that it works with data, so it should be pure, but it has no @deal.pure()
FNE007 and is not recommended in functions names
FNE008 Name of functions ends with it's first argument name
  1. bool-like return types: bool, TypeGuard ↩ ↩2

Metadata

Release files for flake8-functions-names 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flake8-functions-names 0.4.0
File Size Uploaded
flake8_functions_names-0.4.0.tar.gz 10.1 kB Details

Release files / flake8_functions_names-0.4.0.tar.gz

Download URL flake8_functions_names-0.4.0.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
27aeb881636680a130f609482c1d0f37d1b2e84a76b20b813d079c888ee0a13e
BLAKE2b-256 checksum
How to use checksums
b2c1e5f0e511f1426cd26959813e94254314e5163b6eff78c47b5c09f66641d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.1

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page