A flake8 plugin used to disallow certain forms of imports.
Project description
flake8-import-restrictions
A flake8 plugin used to disallow certain forms of imports.
This plugin talks about the import syntax (import X.Y.Z [as foo])
and the from syntax (from X.Y import Z [as foo]). It talks about
import segments (import X), from segments (from Y), and as
segments (as Z).
Options
For every error IMR2xx listed below, there are options --imr2xx_include and --imr2xx_exclude
which are passed a comma separated list of UNIX wildcard patterns each. The error
will then only be reported on imports of modules that match a include pattern but no exclude
pattern.
By default, IMR200, IMR201, IMR202, IMR221, IMR223, IMR241, and IMR243 include all (*) modules. Only IMR241 excludes the
typing module from checks, the other errors have no excludes by default.
General Import Errors
IMR200
Imports should only happen on module level, not locally.
# Bad
def f():
import os.path
return os.path.join("a", "b")
# Good
import os.path
def f():
return os.path.join("a", "b")
IMR201
Alias identifiers defined from as segments should be at
least two characters long.
# Bad
import os.path as p
# Good
import os.path as path
IMR202
Alias identifiers should not have the same name as the imported object.
# Bad
import sys as sys
# Good
import sys
import Syntax Errors
IMR220
When using the import syntax, if the imported module is a submodule,
i.e. not a top level module, an as segment should be present.
# Bad
import os.path
# Good
import sys
import os.path as path
IMR221
When using the import syntax, each import statement should
only import one module.
# Bad
import sys, os
# Good
import sys
import os
IMR222
The import syntax should not be used.
IMR223
When using the import syntax, do not duplicate module names in the as
segment.
# Bad
import os.path as path
# Good
from os import path
import os.path as ospath
from Syntax Errors
IMR240
When using the from syntax, the import segment only contains one
import.
# Bad
from os import path, environ
# Good
from os import path
from os import environ
IMR241
When using the from syntax, only submodules are imported, not
module elements.
# Bad
from os.path import join
# Good
from os import path
IMR242
When using the from syntax, only module elements are imported,
not submodules.
# Bad
from os import path
# Good
from os.path import join
IMR243
When using the from syntax, import * should not be used.
# Bad
from os.path import *
# Good
from os.path import join
IMR244
Relative imports should not be used.
# Bad
from . import foo
# Good
from flake8_import_restrictions import foo
IMR245
The from syntax should not be used.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flake8_import_restrictions-2.1.tar.gz.
File metadata
- Download URL: flake8_import_restrictions-2.1.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f27cb026e45ca60adfe7281f7145a250dbcc289b7cbc877a8cd295ee935bd56c
|
|
| MD5 |
788eb087c64250c046b163c666482ddf
|
|
| BLAKE2b-256 |
cd25edfb89dded3644c3371c706b9f7165a9f05deb1137960fdbf93cc96760e7
|
File details
Details for the file flake8_import_restrictions-2.1-py3-none-any.whl.
File metadata
- Download URL: flake8_import_restrictions-2.1-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77522e76b82a6ccb25820b1e195825a695094ceded23a18c1b5ce026c23e1071
|
|
| MD5 |
a3d84af810904fcb42be5ced39c09fa0
|
|
| BLAKE2b-256 |
f6619155263732f085bf757d6687a06d31499d1b13a54a3dd903ad41573cf5c2
|