importmonkey

Utility for adding new import paths.


Keywords
awesome, black, cross-platform, dependency-free, development, fix, hack, import, importerror, library, package, path, pip, python, python-library, python3, relative-import, standalone, unittest, utility
License
Unlicense
Install
pip install importmonkey==2.0.0

Documentation


๐Ÿต
importmonkey



ย  ย  ย  ย 

An utility for adding new import paths to
make your relative import work without hassle.

pip install importmonkey



What does it do?

Here is your repository:

โ”œโ”€ src
โ”‚   โ””โ”€ project
โ”‚       โ”œโ”€ __init__.py
โ”‚       โ””โ”€ module.py
โ””โ”€ test
    โ””โ”€ test.py

test.py can't find module.py:

ModuleNotFoundError: No module named 'module'
ImportError: attempted relative import with no known parent package
SystemError: Parent module '' not loaded, cannot perform relative import

importmonkey will fix that:

from importmonkey import add_path  # In test.py
add_path("../src")
import project

Why?

Show details

Sometimes you want a specific repo structure to test and build a package from the same files so you need a relative / sibling / parent import.


Documentation

Show details
>>> import importmonkey
>>> help(importmonkey.add_path)
>>> # Or take a look at the well documented source.

Development details

Show details

Linting

importmonkey$ python -m black .
importmonkey$ python -m flake8 src/ test/

Testing

importmonkey$ python test/run_test_suite.py

Building & releasing

# Remember to increment __version__ in __init__.py
importmonkey$ python -m build --wheel && rm -rf build/ && rm -rf src/importmonkey.egg-info/
importmonkey$ importmonkey$ python -m twine check dist/*
importmonkey$ python -m twine upload dist/*
importmonkey$ rm -rf dist/

Additional licensing

Show details

This software is licensed under The Unlicense as the author's protest towards the modern copyright landscape. If you need a different lisence for legal or compability reasons, just ask.