Class EmbeddedPythonExecutionStrategy
java.lang.Object
ai.nervemind.app.executor.script.EmbeddedPythonExecutionStrategy
- All Implemented Interfaces:
ScriptExecutionStrategy
@Component
public class EmbeddedPythonExecutionStrategy
extends Object
implements ScriptExecutionStrategy
Embedded Python execution strategy using GraalPy.
Executes Python code using GraalVM's Python implementation (GraalPy). This provides zero-install Python execution with a sandboxed environment.
Features
- No Python installation required
- Sandboxed execution (no file system or network access by default)
- Fast startup compared to subprocess
- Access to Python standard library subset
Limitations
- Not all Python packages available (no pip)
- Some C extension modules not supported
- Slight compatibility differences from CPython
Available Globals
input/$input- Data from previous nodes (dict)node/$node- Current node parameters (dict)
Example
# Transform input data
items = input.get('items', [])
result = {
'count': len(items),
'processed': [x.upper() for x in items]
}
return result
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor for EmbeddedPythonExecutionStrategy. -
Method Summary
Modifier and TypeMethodDescriptionexecute(String code, Map<String, Object> input, ai.nervemind.common.domain.Node node, ExecutionService.ExecutionContext context) Execute a script with the given input data.Get information about why this strategy might not be available.Get a human-readable name for display.Get the language identifier this strategy handles.booleanCheck if this strategy is available (dependencies installed, etc.).
-
Constructor Details
-
EmbeddedPythonExecutionStrategy
public EmbeddedPythonExecutionStrategy()Default constructor for EmbeddedPythonExecutionStrategy.
-
-
Method Details
-
execute
public Map<String,Object> execute(String code, Map<String, Object> input, ai.nervemind.common.domain.Node node, ExecutionService.ExecutionContext context) throws ScriptExecutionExceptionDescription copied from interface:ScriptExecutionStrategyExecute a script with the given input data.- Specified by:
executein interfaceScriptExecutionStrategy- Parameters:
code- the script code to executeinput- input data from previous nodesnode- the node being executed (for accessing parameters)context- the execution context- Returns:
- output data including script results merged with input
- Throws:
ScriptExecutionException- if execution fails
-
getLanguageId
Description copied from interface:ScriptExecutionStrategyGet the language identifier this strategy handles.- Specified by:
getLanguageIdin interfaceScriptExecutionStrategy- Returns:
- the language ID ("python")
-
getDisplayName
Description copied from interface:ScriptExecutionStrategyGet a human-readable name for display.- Specified by:
getDisplayNamein interfaceScriptExecutionStrategy- Returns:
- display name with GraalPy mention
-
isAvailable
public boolean isAvailable()Description copied from interface:ScriptExecutionStrategyCheck if this strategy is available (dependencies installed, etc.).- Specified by:
isAvailablein interfaceScriptExecutionStrategy- Returns:
- true if GraalPy runtime is available
-
getAvailabilityInfo
Description copied from interface:ScriptExecutionStrategyGet information about why this strategy might not be available.- Specified by:
getAvailabilityInfoin interfaceScriptExecutionStrategy- Returns:
- details about GraalPy version or error message
-