ai-codebase-intelligence / tools /python_exec_tool.py
pkraman06's picture
Create python_exec_tool.py
dfe015f verified
raw
history blame
673 Bytes
from crewai.tools import BaseTool
import subprocess
import tempfile
class PythonExecTool(BaseTool):
name: str = "Python Execution Tool"
description: str = "Executes Python code safely"
def _run(self, code: str):
with tempfile.NamedTemporaryFile(mode="w", suffix=".py", delete=False) as file:
file.write(code)
file_path = file.name
try:
result = subprocess.check_output(
["python", file_path],
stderr=subprocess.STDOUT,
text=True,
)
return result
except subprocess.CalledProcessError as error:
return error.output