automagically install imports
Project description
Importation 🛸
automagically install missing imports
Is this a good idea? Probably not.
Should you use this? Probably not.
What is this?
importation
hijacks the import
keyword in Python to test if the module is importable, and auto-installs missing packages.
If you're in a virtual environment, it installs it to your current virtual environment. If not, it creates one at __pypackages__/importation
, adds it to sys.path
so packages are discoverable, and installs missing packages there.
It takes PEP-582 "Python local packages directory" one step further by resolving packages in __pypackages__
plus auto-installing to them.
How do I get it?
> python -m pip install importation --user
How do I use it?
Just import it.
The act of importing it has the side effect of hijacking Python's import system.
# example.py
import importation # noqa: 401
import httpx
print("module resolved at", httpx.__file__)
Then
$ python test.py
# module resolved at /home/__pypackages__/importation/lib/python3.8/site-packages/httpx/__init__.py
To debug or view details of what it's doing set the IMPORTATION_VERBOSE
environment variable:
$ IMPORTATION_VERBOSE=1 python test.py
Disclaimer
This has not been tested beyond this extremely simple example.
Credits
This package was inspired by PEP-582 and magicimport.py.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for importation-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3486498f857a65ee8d481c2c0ee5947da90ba31182095ea4a6a1c752e11e4643 |
|
MD5 | 1baa33bbbf1781f37e9a659b206cabfa |
|
BLAKE2b-256 | 3ece174d1a99d2b9217cdf154e3a62edf5e9ff5e5bcd79f4e73520cfebc14a83 |