Skip to main content

Lightweight Framework - Remove circular dependencies in an event-driven way by decoupling your imports from your class/function execution.

Project description

EZ Module Manager

PyPI - Version PyPI - License

Get it

#PyPI
python3 -m pip install ezmodulemanager

Read the full documentation on GitHub

What is it?

EZ Module Manager is a zero-bloat, event-driven framework designed to decouple your imports from your function and class executions. It uses a registry component - isolated at the end of the system - to hold references to any shared objects you deem fit.

This architecture allows your modules to remain completely unaware of each other while still being able to call each other's functions, pass variables, and execute class method objects. By storing references in this registry, you eliminate circular dependencies and the need for complex import chains. It is truly "Plug-n-Play" and requires no additional imports or external bloat.

Features

Supports All Object Types: Functions, Classes, Class methods, Variables... Bring it on.

Decoupled Object Execution: Call a function in module_A from module_B as easily as calling a local function, without the modules ever importing one another.

Isolated Registry: A powerful registry component that stores the reference of any shared objects, allowing for "magic" communication across your entire codebase.

Simple Registration: Use a custom decorator @mmreg to easily register your classes, class methods and functions.

Circular Dependency Elimination: Bypasses the common pitfalls of Python imports by utilizing a centralized registry for object access.

Sequential Event-Driven Loading: Uses importlib to load modules via custom import_modlist(), ensuring every shared object is registered before your application logic ever executes.

Versatile Calling Methods:

  • Direct Calls: Execute functions/class methods immediately across namespaces (with or without arguments).

  • Deferred Use: Retrieve and store objects for later use in your program.

Zero-Bloat System: No third-party dependencies; the system is designed to be lightweight and stay out of your way.

Framework Agnostic: Compatible with any standard Python entry point, including Django, Flask, and FastAPI. Completely standalone and modular.

Version: As it sits, works with Python 3.8+. The only reason for not having backwards compatibility across all versions, is simply type-hinting.

License

MIT License

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

ezmodulemanager-1.0.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezmodulemanager-1.0.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file ezmodulemanager-1.0.0.tar.gz.

File metadata

  • Download URL: ezmodulemanager-1.0.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for ezmodulemanager-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6a66e62b84caf68373f3bd02b0c68d15bad2f651392ebfd2ad270720049159ce
MD5 2591c8d691bd6a70b290c4e2b1feae45
BLAKE2b-256 eef458bee63db81935052768e56fc6de193ec0d8692511d2ffe9ad5f9657eddf

See more details on using hashes here.

File details

Details for the file ezmodulemanager-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ezmodulemanager-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 684a333f39fc36e6e92c9327129adf6cea302d5f14ef384aa67377e07953fa4d
MD5 d3caae8b5d7dd0457fa5863bf1a37fc7
BLAKE2b-256 23f0796a5c2ed966d66584bac9ca0c8ebfb3164e0024ee3e4fce548f0faad02c

See more details on using hashes here.

Supported by

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