Skip to main content

An extension for flake8 that forbids some functions in some modules.

Project description

flake8-forbidden-func

An extension for flake8 that forbids some functions in some modules.

Installation

pip install flake8-forbidden-func

Example

# users/views.py
from users import User
import datetime


def test_view():
    print(datetime.datetime.now())
    faz = User.objects.all().annotate().filter(a=2)
    baz = bar_func()

    if faz == baz:
        fuz = q.filter(a=1)
        return fuz.bar()
# setup.cfg
[flake8]
forbidden-functions =
    *.views: *.filter, views module should not use ORM filter
    *: datetime.datetime.now, we use django utils
allowed-functions =
    *.selectors: *.objects.*, only selectors module should use ORM

Usage:

$ flake8 users/views.py
users/views.py:6:11: CFF001 datetime.datetime.now call is forbidden,since we use django utils.
users/views.py:7:11: CFF001 *.objects.* call is forbidden, since only selectors module should use ORM.
users/views.py:7:11: CFF001 *.objects.* call is forbidden, since only selectors module should use ORM.
users/views.py:7:11: CFF001 *.objects.* call is forbidden, since only selectors module should use ORM.
users/views.py:11:15: CFF001 *.filter call is forbidden, since views module should not use ORM filter.

Tested on Python 3.7+ and flake8 4.0+.

Error codes

Error code Description
CFF001 call is forbidden, since reason

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8_forbidden_func-0.0.1.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

flake8_forbidden_func-0.0.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file flake8_forbidden_func-0.0.1.tar.gz.

File metadata

  • Download URL: flake8_forbidden_func-0.0.1.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for flake8_forbidden_func-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b6a685c063c081f9ca586e05312180834006042c9612e175162a6927822d4ba2
MD5 3edefcf5bd7918a2fe77e9fb26d1c2e3
BLAKE2b-256 e2ce373d705f77966f6bd30534f6fdb0368db60da29cfb875c7aa42b8f1bb8cc

See more details on using hashes here.

File details

Details for the file flake8_forbidden_func-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for flake8_forbidden_func-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ec03b3e924f8b96379f8d36a0cdc6567265ddae7a7c2da62ba306850b1b1edd
MD5 caebecbd29c0fff6e114c7eb3237275a
BLAKE2b-256 8f96bbe8fa55d6601c2a6f095ea4ebe332843600807cedfdc66da27d21e03de9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page