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.5.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: modulehandler-0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 07efeace5fd4643989796a8430db9631fe554a58d4e96399238c2ab44038a0e3
MD5 e5ae10eeaab6a41a76d64013b028db5c
BLAKE2b-256 1132c6ad99dce79c678e3838877c80c9faead812b934857993a8842e758c178e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: modulehandler-0.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6be9357ca0af38464490dc21e43d02703af5e6d2e9e2b89c510b81a6be7c4ad7
MD5 1933261eda19fa5e1a6d46cff8227a7d
BLAKE2b-256 5b590d94ff8f7b7262cdbebd4bda2d9b7f8711b6f2199e0fc087e1df8e17150e

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