Skip to main content

automagically install imports

Project description

Importation 🛸

automagically install missing imports

PyPI version

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

importation-0.0.1.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

importation-0.0.1-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file importation-0.0.1.tar.gz.

File metadata

  • Download URL: importation-0.0.1.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for importation-0.0.1.tar.gz
Algorithm Hash digest
SHA256 dbc573557ab1e700af52d137f45b14a9b48f3d5acc849564927c43c099f88b2a
MD5 fe049ababa28f0ecb0802fc010e938ab
BLAKE2b-256 a18403d658818a37aa76338211a1b2b865fc1e644d3bfefba5544b350897e4c7

See more details on using hashes here.

File details

Details for the file importation-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: importation-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for importation-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3486498f857a65ee8d481c2c0ee5947da90ba31182095ea4a6a1c752e11e4643
MD5 1baa33bbbf1781f37e9a659b206cabfa
BLAKE2b-256 3ece174d1a99d2b9217cdf154e3a62edf5e9ff5e5bcd79f4e73520cfebc14a83

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page