Skip to main content

PyPI

imptools

Tools for improving Python imports.

Installation

pip3 install imptools

Docs

import_path()

Import a module from any path on the filesystem.

Usually, this would be achieved by adding the parent directory of the module to sys.path or the PYTHONPATH environment variable and then importing it normally. However, this pollutes Python's import path, which can lead to accidentally importing the wrong modules. The function import_path() avoids this problem by importing a package from a path on the filesystem without modifying the Python import path.

The module can be either a directory containing __init__.py or a single file.

Relative paths are resolved relative to the directory of the source file that calls import_path().

import imptools

my_module = imptools.import_path(
    '../path/to/my_module',  # Path to a module directory or single file.
    notfound='error',        # Raise 'error' or 'ignore' if not found.
    reload=False,            # Whether to import if already available.
)

import my_module  # Import statement also works.

enable_relative()

Enable relative imports for scripts that are not executed as module.

Usually, scripts that are part of a module and use relative imports must be run as python3 -m module.script. However, this requires being in the correct working directory and can be annoying. The enable_relative() function allows to execute those scripts normally as python3 script.py.

Since PEP 366, this can be achieved by setting the __package__ variable in the script and importing the package or making it available on the Pyhton import path. The enable_relative() function hides this behind a simple function that can be imported and called inside the script, before any relative imports.

import imptools

imptools.enable_relative()

# Relative imports...

Tests

python3 -m pytest tests

Release files for imptools 1.3.0

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

Source distribution (sdist)

Source distribution for imptools 1.3.0
File Size Uploaded
imptools-1.3.0.tar.gz 4.1 kB Details

Release files / imptools-1.3.0.tar.gz

Download URL imptools-1.3.0.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e95e3a46d4f0af35412eaaea8be53f05ac33d356a32a5db6309d2e3953e74fd2
BLAKE2b-256 checksum
How to use checksums
e4031779cd5b928cae0248ed963f6b782e3f0172aed8302fde00424164cfc41f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.7

Release history Release notifications | RSS feed

This release

1.3.0 This release

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

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