Categories

Versions

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.
  • (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.extLoc setting 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 use rapidminer-ai-sdk going forward!
  • (PEL) Added python_sdk.reloadPythonExtensions and python_sdk.getRegisteredPythonExtensions actions to the ActionRegistry in the AI Core
    • python_sdk.reloadPythonExtensions reloads all Python extensions, requires 3 inputs: (Boolean, ProgressListener, BooleanSupplier)
      • Boolean indicates if first load or reload
      • ProgressListener for when calling from within ProgressThread - can be null
      • BooleanSupplier that can be used to cancel a reload as it is evaluated for true constantly during extension loading
    • python_sdk.getRegisteredPythonExtensions gets all registered Python extensions, requires no input and returns a list of <String, String> maps describing each extension
    • python_sdk.getPythonExtensionForOperatorKey gets the Python extension for the given full operator key, requires 1 input: (String)
      • String is the full operator key including the usual extension_id prefix
      • Will return null if 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, and operators fields to each extension returned by the python_sdk.getRegisteredPythonExtensions action from the ActionRegistry in the AI Core