What's New in Rapidminer AI Python SDK 2.0?
The following sections describe what's new in Rapidminer AI Python SDK 2.0.
The release notes below differentiate between SDK (The Rapidminer AI Python SDK) and PEL (the Python Extension Loader extension).
Note: While the SDK has version 2.x, for technical reasons PEL has a version of 11.x
Features
- (PEL) Support for Rapidminer AI Python SDK 2.0
- (PEL) Added support for signed Python extensions to show they are from trusted/unknown sources and the potential risks associated
- (PEL) Added support for admin settings to enforce e.g. usage of only signed extensions and/or whitelisted ones
- New admin settings:
python_sdk.security.extensions.whitelist- for allowing only whitelisted Python extensions.- Format is a comma-separated list of Python extension namespaces, which optionally can have a version in square brackets. Example: "py_pysa[1.0],py_tensor" would mean that the py_pysa extension version 1.0 is allowed, as well as any version of the py_tensor extension.
- Note: typically should be used together with allowing only signed extensions to avoid imposter extensions
python_sdk.security.extensions.enforce_signing- for allowing only signed Python extensions which have been signed by our code signing certificate we also use for the Java extension .jar files.python_sdk.security.extensions.allow_shipped- for allowing shipped Python extensions which have been signed by our code signing certificate we also use for the Java extension .jar files.- Will only allow shipped extensions signed by us to avoid imposter extensions.
- New admin settings:
- (SDK / PEL) Added support for defining operator colors which are shown in AI Studio (2025.1+)
- (SDK / PEL) Added support for error messages defined in Python extensions with I18N support
- (SDK / PEL) Added support for defining an optional vendor for a Python extension
Enhancements
- (PEL) Moved to Java 17
- (PEL) Reworked how Python operators are run - they now use a sophisticated single Python operator execution mechanism using Python-side caching for communication between operators via websocket communication. This allowed us to get rid of a couple of annoying bugs and workarounds when dealing with Python operators and makes them behave much more like any other traditional operator in the platform.
- (PEL) Added automatic upgrade of legacy altair-aitools-runtime to minimum required version if it is too low (e.g. needed now due to switch to network-based communication)
- (PEL) Made flag list_operators_at_root_level in the extension only be respected if the extension is signed
- (PEL) Updated
pysdk.pel.extLocsetting to allow specification of more than a single directory for loading extensions from (separated via;) - (PEL) Improved the "About Installed Python Extensions" dialog:
- Added indication if outdated packages are used in a Python extension
- Added indication for signed & integrity verification of a Python extension
- Added vendor listing support for Python extensions
- Added button to reset a Python extension environment in the "About Installed Python Extensions" dialog
- Prevent reloading of Python extensions via the "About Installed Python Extensions" dialog while a reload has already been triggered
Bugfixes
- (PEL) Fixed another very rare case of the Python server not starting
- (PEL) Fixed crash in case the default Python extension lookup directory did not exist & could not be created
- (PEL) Removed Python operator chaining setting due to architecture changes (each operator is executed via websocket immediately now, no need for chaining trick anymore)
Development
- (SDK) The new Rapidminer AI Python SDK (
rapidminer-ai-sdk) package has superseded the now deprecated Altair AI Tools Python Devkit (altair-aitools-devkit)! All functionality has fully transitioned into the new package, so please userapidminer-ai-sdkgoing forward! - (PEL) Added
python_sdk.reloadPythonExtensionsandpython_sdk.getRegisteredPythonExtensionsactions to theActionRegistryin the AI Corepython_sdk.reloadPythonExtensionsreloads all Python extensions, requires 3 inputs: (Boolean, ProgressListener, BooleanSupplier)Booleanindicates if first load or reloadProgressListenerfor when calling from within ProgressThread - can be nullBooleanSupplierthat can be used to cancel a reload as it is evaluated for true constantly during extension loading
python_sdk.getRegisteredPythonExtensionsgets all registered Python extensions, requires no input and returns a list of <String, String> maps describing each extensionpython_sdk.getPythonExtensionForOperatorKeygets the Python extension for the given full operator key, requires 1 input: (String)Stringis the full operator key including the usual extension_id prefix- Will return
nullif operator key is unknown or not belonging to a (registered) Python extension
- These actions are for internal use within the Rapidminer ecosystem only!
- (PEL) Added
vendor,signed, andoperatorsfields to each extension returned by thepython_sdk.getRegisteredPythonExtensionsaction from theActionRegistryin the AI Core