python_runner
Adapted from the Griptape AI Framework documentation.
Source Code in griptape/utils/python_runner.py
@define class PythonRunner: libs: dict[str, str] = field(factory=dict, kw_only=True) def run(self, code: str) -> str: global_stdout = sys.stdout sys.stdout = local_stdout = StringIO() try: for lib, alias in self.libs.items(): imported_lib = importlib.import_module(lib) globals()[alias] = imported_lib exec(f"print({code})", {}, {alias: eval(alias) for alias in self.libs.values()}) output = local_stdout.getvalue() except Exception as e: output = str(e) finally: sys.stdout = global_stdout return output.strip()
libs = field(factory=dict, kw_only=True)
class-attribute instance-attribute
run(code)
Source Code in griptape/utils/python_runner.py
def run(self, code: str) -> str: global_stdout = sys.stdout sys.stdout = local_stdout = StringIO() try: for lib, alias in self.libs.items(): imported_lib = importlib.import_module(lib) globals()[alias] = imported_lib exec(f"print({code})", {}, {alias: eval(alias) for alias in self.libs.values()}) output = local_stdout.getvalue() except Exception as e: output = str(e) finally: sys.stdout = global_stdout return output.strip()
- On this page
- run(code)
Could this page be better? Report a problem or suggest an addition!