Version 1.1#

DataLab Version 1.1.0 (2026-02-02)#

✨ Nouvelles fonctionnalités#

API Web pour l’intégration HTTP/JSON :

DataLab propose désormais une API Web HTTP/JSON moderne comme alternative à l’interface XML-RPC existante. C’est la voie d’intégration recommandée pour les nouveaux projets, notamment pour les notebooks Jupyter et les outils web.

  • Accessible via : Fichier → API Web → Démarrer le serveur API Web (ou définir la variable d’environnement DATALAB_WEBAPI_ENABLED=1)

  • Avantages clés :

    • JSON pour les métadonnées et NPZ pour les données binaires (transfert efficace de grands tableaux)

    • Authentification par jeton Bearer pour la sécurité

    • Conventions REST avec documentation OpenAPI

    • Compatibilité WASM/Pyodide (fonctionne dans les environnements navigateur)

  • Points d’accès inclus :

    • Listage, récupération, création et suppression d’objets

    • Gestion des métadonnées et transfert de données binaires (format NPZ)

    • API de calcul pour exécuter des opérations de traitement à distance

  • Découverte automatique : DataLab-Kernel trouve et se connecte automatiquement à une instance DataLab en cours d’exécution sans configuration manuelle

  • Sécurité : Liaison localhost par défaut, avec contournement optionnel du jeton localhost pour simplifier le développement local

Compatibilité PyQt6 :

  • DataLab prend désormais entièrement en charge PyQt6 en plus de PyQt5

  • Correction de la récupération de la géométrie de l’écran pour utiliser primaryScreen() pour la compatibilité Qt5-Qt6

  • Le pipeline CI inclut désormais les tests PyQt6 pour garantir une compatibilité continue

Améliorations de l’API de contrôle à distance :

Remarque : Ces nouvelles fonctionnalités concernent également l’API des commandes de macro, car les macros utilisent la même interface proxy que les clients de contrôle à distance.

  • Ajout de la méthode call_method() à la classe RemoteProxy pour appeler n’importe quelle méthode publique sur la fenêtre principale de DataLab ou les panneaux :

    • Permet l’accès programmatique à des opérations non exposées via des méthodes proxy dédiées (par exemple, remove_object, delete_all_objects, get_current_panel)

    • Prend en charge la résolution automatique des méthodes : vérifie d’abord la fenêtre principale, puis le panneau actuel si la méthode n’est pas trouvée

    • Le paramètre optionnel panel permet de cibler un panneau spécifique (« signal » ou « image »)

    • Exécution thread-safe : les opérations GUI s’exécutent automatiquement dans le thread principal pour éviter le gel

    • Gestion appropriée des exceptions : les exceptions levées lors de l’exécution de la méthode (par exemple, tenter d’appeler des méthodes privées) sont capturées et propagées au client sous forme d’objets xmlrpc.client.Fault avec le message d’erreur original

    • Un nouvel exemple de macro test_call_method.py démontre l’utilisation : suppression d’objets, obtention du panneau actuel et opérations spécifiques au panneau

    • Étend les capacités d’automatisation pour des flux de travail de macro avancés et le contrôle d’applications externes

  • Ajout de la méthode remove_object() à l’interface proxy (locale et distante) pour la suppression sélective d’objets

    • Supprime l’objet actuellement sélectionné du panneau actif

    • Paramètre optionnel force pour ignorer la boîte de dialogue de confirmation

    • Complète la méthode existante reset_all() qui efface l’ensemble de l’espace de travail (y compris toutes les macros)

Dépendances :

  • Mise à jour de la dépendance Sigima vers la version 1.1.0 qui inclut de nouvelles fonctionnalités et corrections de bugs

  • Ajout des dépendances pour l’API Web : FastAPI, Uvicorn et Pydantic (incluses dans l’installation standard)