Lightweight Framework - Remove circular dependencies in an event-driven way by decoupling your imports from your class/function execution.
Project description
EZ Module Manager
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a66e62b84caf68373f3bd02b0c68d15bad2f651392ebfd2ad270720049159ce
|
|
| MD5 |
2591c8d691bd6a70b290c4e2b1feae45
|
|
| BLAKE2b-256 |
eef458bee63db81935052768e56fc6de193ec0d8692511d2ffe9ad5f9657eddf
|
File details
Details for the file ezmodulemanager-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ezmodulemanager-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
684a333f39fc36e6e92c9327129adf6cea302d5f14ef384aa67377e07953fa4d
|
|
| MD5 |
d3caae8b5d7dd0457fa5863bf1a37fc7
|
|
| BLAKE2b-256 |
23f0796a5c2ed966d66584bac9ca0c8ebfb3164e0024ee3e4fce548f0faad02c
|