Skip to main content

Tools for improving Python imports.

Project description

PyPI

imptools

Tools for improving Python imports.

Installation

pip3 install imptools

Docs

import_from_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. However, this pollutes the import path and can lead to accidentally importing the wrong modules. The function import_from_path() avoids this problem by importing a package from a search path 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 source file that calls import_from_path().

import imptools

imptools.import_from_path(
    name='my_module',              # Name of the module directory or file.
    path='../path/to/parent/dir',  # Path or list of paths to search under.
    notfound='error')              # Raise 'error' or 'ignore' when not found.

import my_module

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 specifying the __package__ variable in the script and importing the package or making it availble 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 relativer imports.

import imptools

imptools.enable_relative()

# Relative imports...

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

imptools-1.0.0.tar.gz (2.9 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page