root_mcp.extended.root_native.executor module

Subprocess-based PyROOT code execution engine.

Executes user-provided Python/PyROOT code in an isolated subprocess, capturing stdout, stderr, output files, and a structured result.

class root_mcp.extended.root_native.executor.ExecutionResult(status, stdout='', stderr='', return_value=None, output_files=<factory>, execution_time_seconds=0.0, error=None, traceback=None, validation=None)[source]

Bases: object

Result of a PyROOT code execution.

Parameters:
__init__(status, stdout='', stderr='', return_value=None, output_files=<factory>, execution_time_seconds=0.0, error=None, traceback=None, validation=None)
Parameters:
Return type:

None

error: str | None = None
execution_time_seconds: float = 0.0
output_files: list[str]
return_value: Any = None
status: str
stderr: str = ''
stdout: str = ''
traceback: str | None = None
validation: ValidationResult | None = None
class root_mcp.extended.root_native.executor.RootCodeExecutor(*, execution_timeout=60, max_output_size=10000000, allowed_output_formats=None, working_directory='/tmp/root_mcp_native', validator=None)[source]

Bases: object

Execute PyROOT code in an isolated subprocess.

Parameters:
  • execution_timeout (int) – Maximum execution time in seconds.

  • max_output_size (int) – Maximum size of captured stdout/stderr in bytes.

  • allowed_output_formats (list[str]) – File extensions allowed in output directory.

  • working_directory (str) – Base directory for execution working dirs.

  • validator (CodeValidator | None) – Code validator instance. If None, a default one is created.

__init__(*, execution_timeout=60, max_output_size=10000000, allowed_output_formats=None, working_directory='/tmp/root_mcp_native', validator=None)[source]
Parameters:
  • execution_timeout (int)

  • max_output_size (int)

  • allowed_output_formats (list[str] | None)

  • working_directory (str)

  • validator (CodeValidator | None)

Return type:

None

execute(code, *, input_files=None, output_dir=None, timeout=None, skip_validation=False)[source]

Execute PyROOT code in a subprocess.

Parameters:
  • code (str) – Python code to execute (may import ROOT).

  • input_files (list[str] | None) – Paths to ROOT files the code needs access to.

  • output_dir (str | None) – Directory for output files. Created inside working_directory if None.

  • timeout (int | None) – Override execution timeout in seconds.

  • skip_validation (bool) – Skip AST validation (for trusted/internal code).

Returns:

Structured execution result.

Return type:

ExecutionResult