Skip to main content

A dynamic module handler, with standalone tools

Project description

ModuleHandler

Installation

.. code:: bash

pip3 install modulehandler

Usage

Considering this folder tree

.. code:: bash

tests_import_handler
├── addons
│   └── m1
│       ├── __init__.py
│       ├── manifest.json
│       └── README.md
├── m2
│   ├── __init__.py
│   └── manifest.json
└── m3.py

.. code:: python

import ModuleHandler
from pathlib import Path
registry = ModuleHandler.ModuleRegistry()

tests_import_handler = Path("tests_import_handler").resolve()
addons = tests_import_handler.joinpath("addons")
m2 = tests_import_handler.joinpath("m2")
m3 = tests_import_handler.joinpath("m3.py")

# Register won't load
registry.register_search_dir(addons)
registry.register_module(m2)
registry.register_module(m3)

# load modules individually
m3 = registry.load("m3")  # ignore if already loader with noreload=True

# load all modules
registry.load_all()  # ignore if already loader with noreload=True

# access loaded module
m1 = registry["m1"]
m4 = registry.get("m4")  # return None

# register + load
m2 = registry.import_module(m2)

# import from search paths if not already loaded
m1 = registry.imports("m1")

# get readme as html
registry.description("m1")

# get module absolute path
registry.path("m1")

Nb:

  • This won't change sys search paths nor add modules to sys.modules: "m1" in sys.modules # False
  • loading only replace module in registry but this won't propagate to copy of old module.

Future

  • Currently, the configuration filename is not easily editable, same for configuration validation. It may be editable but still with current behaviour kept as default.

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

modulehandler-0.4.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

modulehandler-0.4-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file modulehandler-0.4.tar.gz.

File metadata

  • Download URL: modulehandler-0.4.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9

File hashes

Hashes for modulehandler-0.4.tar.gz
Algorithm Hash digest
SHA256 28866369e6bc0f45bb5f059ada983d2d67be3b393d240e84f2deca94a3790fa6
MD5 607f791fa924ea0cca56a64731ab889e
BLAKE2b-256 b007b690f4fb5c61ff988058735853fc2a39f74d1b56c00c03708957d727e5aa

See more details on using hashes here.

File details

Details for the file modulehandler-0.4-py3-none-any.whl.

File metadata

  • Download URL: modulehandler-0.4-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9

File hashes

Hashes for modulehandler-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f5d7930daaa33792e17171ecead3a38dbb55ff09b50bed6b9d2ed9a8b976f498
MD5 0e73fed1a265a95b222149b449149d5c
BLAKE2b-256 3cd70a1056c25e27ae4b129f7f05ae49b3395f62f0d0156d0ad4a389af19e0f1

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