Skip to content

CodeExecutorFactory

autogen.coding.CodeExecutorFactory #

(Experimental) A factory class for creating code executors.

create staticmethod #

create(code_execution_config)

(Experimental) Get a code executor based on the code execution config.

PARAMETER DESCRIPTION
code_execution_config

The code execution config, which is a dictionary that must contain the key "executor". The value of the key "executor" can be either a string or an instance of CodeExecutor, in which case the code executor is returned directly.

TYPE: Dict

RETURNS DESCRIPTION
CodeExecutor

The code executor.

TYPE: CodeExecutor

RAISES DESCRIPTION
ValueError

If the code executor is unknown or not specified.

Source code in autogen/coding/factory.py
@staticmethod
def create(code_execution_config: CodeExecutionConfig) -> CodeExecutor:
    """(Experimental) Get a code executor based on the code execution config.

    Args:
        code_execution_config (Dict): The code execution config,
            which is a dictionary that must contain the key "executor".
            The value of the key "executor" can be either a string
            or an instance of CodeExecutor, in which case the code
            executor is returned directly.

    Returns:
        CodeExecutor: The code executor.

    Raises:
        ValueError: If the code executor is unknown or not specified.
    """
    executor = code_execution_config.get("executor")
    if isinstance(executor, CodeExecutor):
        # If the executor is already an instance of CodeExecutor, return it.
        return executor
    if executor == "ipython-embedded":
        from .jupyter.embedded_ipython_code_executor import EmbeddedIPythonCodeExecutor

        return EmbeddedIPythonCodeExecutor(**code_execution_config.get("ipython-embedded", {}))
    elif executor == "commandline-local":
        from .local_commandline_code_executor import LocalCommandLineCodeExecutor

        return LocalCommandLineCodeExecutor(**code_execution_config.get("commandline-local", {}))
    else:
        raise ValueError(f"Unknown code executor {executor}")