Source code for autogen_core.code_executor._base

# File based from: https://github.com/microsoft/autogen/blob/main/autogen/coding/base.py
# Credit to original authors

from __future__ import annotations

from dataclasses import dataclass
from typing import List, Protocol, runtime_checkable

from .._cancellation_token import CancellationToken


[docs] @dataclass class CodeBlock: """A code block extracted fromm an agent message.""" code: str language: str
[docs] @dataclass class CodeResult: """Result of a code execution.""" exit_code: int output: str
[docs] @runtime_checkable class CodeExecutor(Protocol): """Executes code blocks and returns the result."""
[docs] async def execute_code_blocks( self, code_blocks: List[CodeBlock], cancellation_token: CancellationToken ) -> CodeResult: """Execute code blocks and return the result. This method should be implemented by the code executor. Args: code_blocks (List[CodeBlock]): The code blocks to execute. Returns: CodeResult: The result of the code execution. Raises: ValueError: Errors in user inputs asyncio.TimeoutError: Code execution timeouts asyncio.CancelledError: CancellationToken evoked during execution """ ...
[docs] async def restart(self) -> None: """Restart the code executor. This method should be implemented by the code executor. This method is called when the agent is reset. """ ...