Skip to main content

Flake8 Restrict Imports Plugin

Overview

This Flake8 plugin provides a mechanism to restrict imports based on a specified configuration. The plugin allows you to define sets of denied and allowed imports, helping you enforce coding standards and maintain a clean codebase.

Features

  • Denied Imports: Specify a configuration that defines imports to be denied for specific modules/packages.
  • Allowed Imports: Specify a configuration that defines allowed imports for specific modules/packages.

Installation

Install the plugin using pip:

pip install flake8-restrict-imports

Usage

Once the plugin is installed, you can run Flake8 with the plugin enabled:

flake8 your_project_directory

Configuration

You need to configure the plugin in your Flake8 configuration file (e.g., .flake8):

denied_imports_config = {'libs': ['db', 'tests'],'db': ['libs', 'tests']}
allowed_imports_config = {'api.tests.utils': ['db', 'libs'], 'db': ['tests']}

Adjust the configurations based on your project's needs.

Example

Consider the following code snippet:

# your_module.py

# Denied import
from core import some_module  # This import is denied according to the configuration

# Allowed import
from api.tests.event_utils import some_function  # This import is allowed according to the configuration

Denied import

from core import some_module This import is denied according to the configuration

Allowed import

from api.tests.event_utils import some_function This import is allowed according to the configuration`

When Flake8 is run, it will raise a warning for the denied import and ensure compliance with your defined import restrictions.

Contribution

Feel free to contribute to the development of this Flake8 plugin. Fork the repository, make your changes, and submit a pull request.

License

This Flake8 plugin is licensed under the MIT License.

Release files for flake8-restrict-imports 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flake8-restrict-imports 0.1.1
File Size Uploaded
flake8-restrict-imports-0.1.1.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flake8-restrict-imports 0.1.1
File Interpreter ABI Platform
flake8_restrict_imports-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.2 kB

Release files / flake8-restrict-imports-0.1.1.tar.gz

Download URL flake8-restrict-imports-0.1.1.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
46773ba0d26017a8a7a7483e861f6844f030958115aa9cea6fdc8b6037b9a3e0
BLAKE2b-256 checksum
How to use checksums
0ab509dd3c434425e6560f9483b2c877ab1ecec2682728b551e4fd4e1d4d5db5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / flake8_restrict_imports-0.1.1-py3-none-any.whl

Download URL flake8_restrict_imports-0.1.1-py3-none-any.whl
Size 4.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d8bfda97bbedffb6af41849c4eb1d5b105867f7a267e7f42b622076da4472aa
BLAKE2b-256 checksum
How to use checksums
920c76567d2d5213efa268133d137576e39d1fbe8ddf243039f92dc191dc3444
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page