Β Β Β Β
An utility for adding new import paths to
make your relative
import
work without hassle.
pip install importmonkey
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
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.
Show details
>>> import importmonkey
>>> help(importmonkey.add_path)
>>> # Or take a look at the well documented source.
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
# Also, remember to create .pypirc file in home directory
importmonkey$ python -m build --wheel && rm -rf build/ && rm -rf src/importmonkey.egg-info/
importmonkey$ python -m twine check dist/*
importmonkey$ python -m twine upload dist/*
importmonkey$ rm -rf dist/
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.