Version 1.1#

DataLab Version 1.1.0 (2026-02-02)#

✨ New Features#

Web API for HTTP/JSON integration:

DataLab now provides a modern HTTP/JSON Web API as an alternative to the existing XML-RPC interface. This is the recommended integration path for new projects, especially for Jupyter notebooks and web-based tools.

  • Accessible via: File → Web API → Start Web API Server (or set DATALAB_WEBAPI_ENABLED=1 environment variable)

  • Key benefits:

    • JSON for metadata and NPZ for binary data (efficient large array transfer)

    • Bearer token authentication for security

    • REST conventions with OpenAPI documentation

    • WASM/Pyodide compatibility (works in browser environments)

  • Endpoints include:

    • Object listing, retrieval, creation, and deletion

    • Metadata management and binary data transfer (NPZ format)

    • Computation API for running processing operations remotely

  • Auto-discovery: DataLab-Kernel automatically finds and connects to a running DataLab instance without manual configuration

  • Security: Localhost binding by default, with optional localhost token bypass for simplified local development

PyQt6 compatibility:

  • DataLab now fully supports PyQt6 in addition to PyQt5

  • Fixed screen geometry retrieval to use primaryScreen() for Qt5-Qt6 compatibility

  • CI pipeline now includes PyQt6 testing to ensure ongoing compatibility

Remote control API enhancements:

Note: These new features also concern the macro commands API, as macros use the same proxy interface as remote control clients.

  • Added call_method() method to RemoteProxy class for calling any public method on DataLab main window or panels:

    • Enables programmatic access to operations not exposed through dedicated proxy methods (e.g., remove_object, delete_all_objects, get_current_panel)

    • Supports automatic method resolution: checks main window first, then current panel if method not found

    • Optional panel parameter allows targeting specific panel (“signal” or “image”)

    • Thread-safe execution: GUI operations automatically execute in main thread to prevent freezing

    • Proper exception handling: exceptions raised during method execution (e.g., attempting to call private methods) are captured and propagated to the client as xmlrpc.client.Fault objects with the original error message

    • New macro example test_call_method.py demonstrates usage: removing objects, getting current panel, and panel-specific operations

    • Expands automation capabilities for advanced macro workflows and external application control

  • Added remove_object() method to proxy interface (local and remote) for selective object deletion

    • Removes currently selected object from active panel

    • Optional force parameter to skip confirmation dialog

    • Complements existing reset_all() method which clears the entire workspace (including all macros)

Dependencies:

  • Updated Sigima dependency to version 1.1.0 which includes new features and bug fixes

  • Added Web API dependencies: FastAPI, Uvicorn, and Pydantic (included in standard installation)