Version 1.1#

DataLab Version 1.1.1 (2026-04-08)#

Note: This is a maintenance release that fixes a single bug affecting only the stand-alone executable version of DataLab for Microsoft Windows. If you installed DataLab via pip, conda, or if you are running DataLab on Linux or macOS, you are not affected by this bug and there is no need to update to this version.

🛠️ Bug Fixes since version 1.1.0#

Flip/rotation features crash or hang in stand-alone version:

  • Fixed image flip and rotation features (“Flip horizontally”, “Flip vertically”, “Rotate 90° left/right”, “Flip diagonally”) crashing with an ImportError or hanging indefinitely in the stand-alone Windows version (PyInstaller build)

  • The issue was caused by the multiprocessing worker process needing to import the full DataLab GUI module chain when unpickling the geometric transform wrapper, triggering circular imports in the frozen executable

  • Moved the geometry post-processing code to a standalone module with no GUI dependencies, so the worker process no longer triggers the DataLab GUI import chain

  • This was not reproducible with the Python package version of DataLab, only with the stand-alone executable

  • This closes Issue #304 - Flip/rotation features crash or hang in stand-alone (PyInstaller) version

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)