pylint-restricted-imports is a Pylint plugin to restrict what imports are allowed in different modules
Project description
About
pylint-restricted-imports is Pylint plugin for restricting what imports are allowed in specific module trees. Want to prevent django from being imported in a flask app? This plugin is for you!
Usage
Ensure pylint-restricted-imports is installed and on your path, and then run pylint using pylint-restricted-imports as a plugin:
pip install pylint-restricted-imports pylint --load-plugins pylint_restricted_imports [..your module..]
Configuration
Before the plugin will do anything, it needs configuring. You can use pylint to generate the default configuration:
pylint --load-plugins pylint_restricted_imports --generate-rcfile
You will end up with a block similar to below:
[RESTRICTED-IMPORT] # Colon/semicolon-delimited sets of names that determine what modules are # allowed to be imported from another module restricted-imports= # Check restricted imports recursively restricted-import-recurse=no
Restricted Imports
restricted-imports is a csv list of module/restricted imports. The format is <module>:<restricted module>;.... For example, the following would prevent restricted1 and restricted2 from being imported in module1 and restricted3 and restricted4 from being imported in module2:
module1:restricted1;restricted2,module2:fordibben3;restricted4
Recursion
You can enable the transitive detection of restricted imports, however this takes a lot more compute.
For example, if have the following files:
# flask_app.py import flask import common_utils # common_utils.py import django
If flask_app is not allowed to import django, the transitive checker would throw an error because importing common_utils would cause django to be imported, which is restricted.
Project details
Release history Release notifications | RSS feed
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
Hashes for pylint_restricted_imports-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47e250d8c8713c232e90d4722dd27d8562c7d167f1c10ee47d9c266ef4bd243f |
|
MD5 | d5dfdecff07d62668d8dec9c4188fab1 |
|
BLAKE2b-256 | f268ebd95276e4c744752576c280927583f5bd58bef6fe91ac8bb2336ac73bde |
Hashes for pylint_restricted_imports-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd5c6aea8cf9a1f6d64bb7ff96aec0004b66752a14f2339cbcf9bc7e521a2d6 |
|
MD5 | fe19ef2e8733f8018f8d3c9f3d470f38 |
|
BLAKE2b-256 | 5f12d2148b841590e5a95e3284f29746d2d7e7339a263b9806d82081e63de9ab |