Skip to main content

module framework

Project description

modulepy

easily build modular applications

installation

pip3 install modulepy
# or
pip3 install git+https://github.com/nbdy/modulepy

features

  • module baseline
    • thread based module
    • process based module
  • module loader
    • one-line module loading
    • one-line directory loading
  • module manager
    • add module
    • remove module
    • reload module directory
    • module dependency resolution
    • ipc

usage

from modulepy import ThreadModule, ProcessModule, ModuleInformation, ModuleVersion, SharedData
from modulepy.manager import ModuleManager


class ModuleA(ThreadModule):
    information = ModuleInformation("A", ModuleVersion(1, 0, 0))
    dependencies = [ModuleInformation("B", ModuleVersion(1, 0, 0))]

    def work(self):
        self.data_enqueue({"A": 0})

    def process_input_data(self, data: SharedData):
        print(data)


class ModuleB(ProcessModule):
    information = ModuleInformation("B", ModuleVersion(1, 0, 0))

    def work(self):
        self.data_enqueue({"B": 1})


if __name__ == '__main__':
    manager = ModuleManager()
    manager.add_module(ModuleA())
    manager.add_module(ModuleB())
    manager.start()
    manager.join()

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

modulepy-0.10.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file modulepy-0.10.tar.gz.

File metadata

  • Download URL: modulepy-0.10.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.7

File hashes

Hashes for modulepy-0.10.tar.gz
Algorithm Hash digest
SHA256 cac29bfc4c6a5afd834bd1c8336b548e8c006b340f9f85361dbd0297a1abd305
MD5 18bbd205d8164f3409fda319f34db825
BLAKE2b-256 4cbdb5c4ca820856db87ffb6f6799fad37aedf4b6b7e0b1acaf81522c9577790

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