Skip to content

hirsimaki-markus/importmonkey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

48 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


🐡
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
# 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/

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.