Framework Core
The framework-core library is constructed around a few key components: the Host, the Client, the Event Manager, and the Registry.
In essence, the framework-core library's architecture is established by initializing the Host and the Client, which then interact through events managed by the Event Manager. Meanwhile, the Registry is leveraged to manage and provide extensions, with a set of default ones available in the framework-common-extensions.
Host
The Host plays a pivotal role in the framework. Its main responsibilities include:
- Managing interactions with the underlying host type, typically a DCC (Digital Content Creation) application.
- Instantiation with an
Event Manager, facilitating communication between theHostand theClient. - Execute tool-configs ordered by the client on the
Engine.
Host(event_manager, registry=registry_instance)
Client
The Client component is tasked with:
- Reading the tool configuration and context from the
Host. - Executing framework dialogs
- Instructing the
Hostto execute the augmented tool configuration, its plugins, and options gathered from the user.
client = Client(event_manager, registry=registry_instance)
Event Manager
The Event Manager is integral for:
- Facilitating communication between the
Hostand theClient. - Managing and dispatching events within the system.
- Being instantiated with a session to handle these events effectively.
event_manager = EventManager(
session=session, mode=constants.event.LOCAL_EVENT_MODE
)
Registry
The Registry serves to:
- Store and manage extensions within the framework.
- Be instantiated and scanned to identify available extensions.
- Provide default extensions, which are included in the
framework-common-extensions.
registry_instance = Registry()
registry_instance.scan_extensions(paths=framework_extensions_path)
Overview
📄️ Engine
Engines
📄️ Plugin
Plugin Execution