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 |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e4c7be21b96dda72e903c21de16ff928e11fccdf9427889bfb7ccf4610f6072
|
|
| MD5 |
d52117dcdeadc8e958365251ba889a85
|
|
| BLAKE2b-256 |
bd6e314f890189d95826e62be32120012e1d0fe5709334efe133d0df2461cb38
|