Skip to main content

An extension for flake8 that forbids some imports statements in some modules.

Project description

flake8-obey-import-goat

An extension for flake8 that forbids some imports statements in some modules.

Important: this project is developed using DDD, so some of the docs can not exists. Stay tuned :)

Installation

pip install flake8-obey-import-goat

Example

# foo.py
from datetime import datetime
from typing import Optional

def foo():
    pass


# users/bar.py
from foo import foo


# users/domain.py
def foo():
    pass


# users/implementation.py
from users.domain import foo


# orders/implementation.py
from users.domain import foo
# setup.cfg
[flake8]
forbidden-imports =
    *: datetime.datetime, stdlib modules should be imported as a module
    *: typing.Optional, we use T | None instead of Optional[T]
    users.*: foo.*, users module should not use foo module
    *.implementation.*: *.domain.*, implementation layer should not use domain layer

Usage:

$ flake8 test.py
foo.py:1:1: OIG001 datetime.datetime is forbidden, since stdlib modules should be imported as a module.
foo.py:2:1: OIG001 typing.Optional is forbidden, since we use T | None instead of Optional[T].
users/bar.py:1:1: OIG001 foo.foo import is forbidden is forbidden, since users module should not use foo module.
users/implementation.py:1:1: OIG001 *.domain.* import is forbidden is forbidden, since implementation layer should not use domain layer.
orders/implementation.py:1:1: OIG001 *.domain.* import is forbidden is forbidden, since implementation layer should not use domain layer.

Tested on Python 3.9+ and flake8 4.0+.

Error codes

Error code Description
OIG001 importable 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_obey_import_goat-0.1.1.tar.gz (4.3 kB view details)

Uploaded Source

File details

Details for the file flake8_obey_import_goat-0.1.1.tar.gz.

File metadata

  • Download URL: flake8_obey_import_goat-0.1.1.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for flake8_obey_import_goat-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2e4c7be21b96dda72e903c21de16ff928e11fccdf9427889bfb7ccf4610f6072
MD5 d52117dcdeadc8e958365251ba889a85
BLAKE2b-256 bd6e314f890189d95826e62be32120012e1d0fe5709334efe133d0df2461cb38

See more details on using hashes here.

Supported by

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