Frequently Asked Questions

General Questions

What is the difference between Python Extension and Python Scripting Extension?

The Python Scripting extension provides operators for executing arbitrary Python code within workflows, requiring users to have Python already installed. In contrast, the Python SDK is a framework for creating custom, production-ready operators with managed environments, eliminating the need for end users to configure Python themselves.

Are Python extensions available on Altair RapidMiner Marketplace?

No. Currently, the Altair RapidMiner Marketplace only supports Java-based extensions. Python extensions must be distributed directly to users.

Can Python Extensions be used in air-gapped (offline) environments?

Yes. A key feature of the Python extension framework is its support for systems without internet connectivity through the offline packaging option (--download-env flag during build).

Installation & Configuration

How do I add an extension to Altair AI Studio?

You can add extensions by placing the extension ZIP file in the default extensions directory: ~/.AltairRapidMiner/AI Studio/shared/extensions/python-extensions. For more details, see the Python Extension Loader documentation.

Where should I place custom Python distributions?

If you're using custom Python distributions instead of the auto-managed environments, place them in the directory specified by the pysdk.pel.distLoc setting (default: ~/.AltairRapidMiner/AI Studio/shared/python-distributions).

What version of Python is supported?

We recommend Python 3.9+ for developing extensions.

Development Questions

How do I define icons for my operators?

You can specify icons using the Icon Experience collection. Add the icon name in your extension's configuration file using the icon attribute for each operator.

Can I use pip packages with my extension?

Yes. The Python SDK supports including pip packages with your extension. These can be bundled directly in offline mode or defined as dependencies to be downloaded in online mode.

How do I handle custom data types?

Use the custom data object framework by subclassing BaseDataObject. This allows you to create complex, structured data types that can be passed between operators. See the Custom Data Objects documentation.

How do I debug my extension?

Enable debug mode by setting pysdk.debugMode to OPERATOR or ALL. You can also insert print statements in your code, which will appear in the log when your operator runs. You can also use standard logging from Python with debug messages.

Performance & Production

How does the Python Extension Loader handle memory management?

The PEL maintains Python processes that are kept alive between operator executions for performance. These processes are automatically terminated after a configurable idle period to free resources.

Can I distribute my extension to users without Python knowledge?

Yes! That's one of the main benefits of the Python SDK. End users don't need to install or configure Python - the extension handles all environment management automatically.

Is there a size limit for Python extensions?

There's no hard limit, but smaller extensions load faster. For large dependencies, consider using the online mode where packages are downloaded during installation rather than bundled with the extension.