mirror of
https://github.com/microsoft/autogen.git
synced 2025-10-08 22:46:25 +00:00
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
![]() |
from autogencap.actor_runtime import IRuntime
|
||
|
from autogencap.constants import ZMQ_Runtime
|
||
|
from autogencap.DebugLog import Error
|
||
|
from autogencap.zmq_runtime import ZMQRuntime
|
||
|
|
||
|
|
||
|
class RuntimeFactory:
|
||
|
_supported_runtimes = {}
|
||
|
|
||
|
"""
|
||
|
Factory class for creating a runtime instance.
|
||
|
"""
|
||
|
|
||
|
@staticmethod
|
||
|
def get_runtime(runtime_type: str = ZMQ_Runtime) -> IRuntime:
|
||
|
"""
|
||
|
Creates a runtime instance based on the runtime type.
|
||
|
|
||
|
:param runtime_type: The type of runtime to create.
|
||
|
:return: The runtime instance.
|
||
|
"""
|
||
|
if runtime_type in RuntimeFactory._supported_runtimes:
|
||
|
return RuntimeFactory._supported_runtimes[runtime_type]
|
||
|
else:
|
||
|
not_found = f"Runtime type not found: {runtime_type}"
|
||
|
Error("RuntimeFactory", not_found)
|
||
|
raise ValueError(not_found)
|
||
|
|
||
|
@staticmethod
|
||
|
def register_runtime(runtime_type: str, runtime: IRuntime):
|
||
|
"""
|
||
|
Registers a runtime instance.
|
||
|
|
||
|
:param runtime: The runtime instance.
|
||
|
"""
|
||
|
RuntimeFactory._supported_runtimes[runtime_type] = runtime
|
||
|
|
||
|
@classmethod
|
||
|
def _initialize(cls):
|
||
|
"""
|
||
|
Static initialization method.
|
||
|
"""
|
||
|
cls.register_runtime(ZMQ_Runtime, ZMQRuntime())
|
||
|
|
||
|
|
||
|
# Static initialization
|
||
|
RuntimeFactory._initialize()
|