Version 1.3#
DataLab Version 1.3.0#
✨ Nouvelles fonctionnalités#
Panneau d’historique :
DataLab enregistre désormais vos actions et vous permet de les rejouer. Un nouveau panneau Historique suit chaque action appliquée aux signaux et aux images, de la création d’objets et du chargement de fichiers au traitement, à l’analyse et aux modifications des régions d’intérêt (implémente Issue #90).
Sessions d’enregistrement : les actions sont regroupées en sessions, une session active par panneau. L’enregistrement est désactivé par défaut et est proposé lors de la création ou du chargement d’un objet ; les politiques de session configurables contrôlent la manière dont les objets plugin et macro sont attachés aux sessions
Chaînes de traitement : chaque session est présentée comme une chaîne de traitement linéaire, rendant immédiatement lisible la filiation d’un résultat
Relecture : relire une session entière, ou la parcourir action par action, pour reproduire un flux de travail sur de nouvelles données. Les ajustements de courbes interactifs et les profils d’intensité sont enregistrés comme des actions déterministes et rejoués sans rouvrir leurs boîtes de dialogue
Édition sur place : les paramètres de traitement, d’analyse et de création d’objets peuvent être modifiés directement depuis l’historique, et les étapes en aval sont recalculées en cascade
Duplication : dupliquer une chaîne pour explorer une variante sans toucher à l’originale
Persistance : les historiques sont stockés dans l’espace de travail HDF5 et peuvent également être exportés et importés en tant que fichiers
.dlhistautonomesVérifications de compatibilité : avant la relecture, DataLab valide les actions enregistrées par rapport à l’état actuel de l’espace de travail et signale ce qui peut ou ne peut pas être appliqué
La touche Suppr supprime les entrées sélectionnées dans le panneau Historique (même comportement que dans les panneaux Signal et Image), et ne s’applique que lorsque l’arborescence de l’historique a le focus
Une boîte de dialogue de résolution s’affiche lors de la relecture d’une chaîne de traitement interrompue par des objets supprimés : choisissez « Réparer et continuer » pour élaguer les étapes cassées et rejouer les étapes valides restantes, ou annulez sans rien modifier
Une page de documentation dédiée et un tutoriel pas à pas sont disponibles
Assistant IA intégré :
DataLab est désormais livré avec un panneau d’ancrage optionnel Assistant IA qui peut converser avec vous, inspecter l’espace de travail, créer et traiter des signaux et des images, et écrire et exécuter des macros Python (implémente Issue #316).
Fonctionne avec n’importe quel endpoint compatible OpenAI : OpenAI, GitHub Models, Azure OpenAI, Ollama, LM Studio, etc. Un fournisseur factice est disponible pour essayer l’assistant hors ligne, sans clé API
L’assistant peut appeler un ensemble d”outils intégrés : lister et inspecter les objets, introspecter les opérations disponibles, créer des signaux et des images synthétiques, charger des fichiers, appliquer tout traitement enregistré, déclencher des actions de plugins, et créer et exécuter des macros
Chaque action modifiant l’espace de travail nécessite une confirmation explicite, avec un aperçu des paramètres et un aperçu du code source de la macro avec coloration syntaxique lorsque une macro est proposée. Les outils en lecture seule peuvent être approuvés automatiquement
Les conversations sont conservées, peuvent être consultées et rechargées, et exportées en Markdown ; l’utilisation des jetons et la taille du contexte sont affichées
Les paramètres (fournisseur, modèle, clé API, URL de base, température, délai d’attente, limite d’itérations, approbation automatique) sont regroupés dans un onglet dédié Assistant IA de la boîte de dialogue des préférences, avec un bouton de test de connexion
La clé API est stockée en clair dans le fichier de configuration de DataLab, et la boîte de dialogue des paramètres l’indique explicitement
Palette de commandes :
Une palette de commandes de style VSCode vous permet de rechercher et d’exécuter n’importe quelle commande de menu en tapant une partie de son nom ou de son chemin de menu, par exemple « Traitement ‣ Analyse de Fourier ‣ FFT » (implémente Issue #337)
Trois points d’entrée : une zone de recherche dans le coin supérieur droit de la barre de menu, une entrée « Palette de commandes… » en haut du menu Aide, et le raccourci clavier
Ctrl+Shift+PLa correspondance approximative classe les résultats, donc quelques caractères suffisent pour atteindre la bonne commande, avec une navigation complète au clavier
Support de l’analyse spectrale :
Suite au travail d’analyse spectrale réalisé dans Sigima, DataLab bénéficie de l’interface correspondante (implémente Issue #309).
Nouvelle fonctionnalité Analyse > Extraire les positions des pics, stockant les pics détectés sous forme de tableau de marqueurs XY rendu sous forme de croix sur le graphique
Nouvelle boîte de dialogue interactive Analyse > Détection de pics…, pour ajuster visuellement le seuil et la distance minimale avant de stocker le résultat
Nouvelle fonctionnalité Opérations > Créer un signal à partir d’un tableau de marqueurs…, construisant un signal en bâtons à partir d’un tableau de marqueurs XY — pratique pour superposer des lignes de référence sur un spectre
Les résultats des marqueurs peuvent être étiquetés dans les tableaux de résultats (
#1,#2, … pour les marqueurs XY,a,b,c, … pour les marqueurs d’axe), de sorte que chaque ligne peut être associée au marqueur correspondant tracé sur le graphique. Cela est contrôlé par une nouvelle option « Afficher les étiquettes des marqueurs dans les tableaux de résultats » dans les paramètresLes étiquettes de résultat prennent désormais en charge une position et un décalage personnalisables
Régions d’intérêt du signal tracées le long de la courbe :
Les ROI du signal ne sont plus tracées sous forme d’un seul rectangle jaune pleine hauteur : le remplissage translucide est désormais découpé selon la courbe du signal avec une ligne de base à
y = 0, et chaque ROI utilise une couleur différente tirée d’une palette cyclique de dix couleurs (implémente Issue #314)Les couleurs sont dérivées de l’indice de la ROI, de sorte qu’une ROI donnée conserve la même couleur malgré les suppressions, les réorganisations et la réouverture de l’éditeur
Les échantillons non finis sont filtrés avant le tracé, de sorte que les signaux avec des lacunes sont rendus proprement ; sur un axe Y logarithmique, la ligne de base revient au bas de la zone de dessin
La persistance des ROI reste inchangée : seules les coordonnées sont stockées, les propriétés visuelles sont recalculées au moment du rendu
Régions d’intérêt issues de la détection (masque automatique) :
La détection de contours, de blobs, de pics et de cercles de Hough peut créer des régions d’intérêt directement à partir des caractéristiques détectées, transformant les contours d’intensité en ROI polygonales éditables utilisables par toutes les fonctionnalités de traitement prenant en charge les ROI (implémente Issue #294)
Découverte des plugins tiers via une variable d’environnement :
Ajout de la prise en charge de la variable d’environnement
DATALAB_PLUGINS, permettant de spécifier un ou plusieurs répertoires comme chemins de recherche supplémentaires pour les pluginsPlusieurs répertoires peuvent être listés en utilisant le séparateur de chemin du système d’exploitation (
;sous Windows,:sous Linux/macOS), selon la même convention quePYTHONPATHLes répertoires listés sont ajoutés aux chemins de recherche existants au démarrage et sont automatiquement pris en compte par le mécanisme de découverte des plugins
Les répertoires inexistants sont ignorés silencieusement (un avertissement est consigné dans le fichier journal), ainsi une variable d’environnement obsolète sur une autre machine n’empêchera pas le démarrage de DataLab
Expérience utilisateur de gestion des plugins :
La boîte de dialogue de configuration des plugins a été repensée pour faciliter l’installation, l’inspection et le dépannage des plugins tiers (implémente Issue #302).
Répertoires de plugins supplémentaires persistants : plusieurs répertoires supplémentaires peuvent être ajoutés, modifiés et supprimés depuis la boîte de dialogue et sont enregistrés dans la configuration de DataLab, à côté de la liste en lecture seule des répertoires par défaut
Boutons Ouvrir le fichier et Afficher dans le dossier par plugin, pour inspecter ou modifier un script de plugin sans parcourir le système de fichiers
Un bouton « Appliquer et recharger les plugins » et une entrée de menu Plugins > Recharger les plugins, pour prendre en compte les modifications des plugins sans redémarrer DataLab
Un horodatage de dernier chargement affiché pour la session en cours, pour confirmer que les modifications ont été prises en compte
Filtrage de la liste des plugins (tous / activés / désactivés / avec erreurs), un interrupteur global activer/désactiver, et une option pour masquer les avertissements de compatibilité pour les plugins hérités v0.20
Une action Afficher dans le dossier est désormais disponible pour le fichier de configuration de DataLab, depuis le visualiseur d’installation et de configuration
Éditeur de macros :
Récupération après plantage : les macros non enregistrées sont automatiquement sauvegardées, et DataLab propose de les récupérer au prochain démarrage
Boîte de dialogue Macros récentes, listant les macros utilisées lors des sessions précédentes et permettant d’en rouvrir une en un seul clic
Modèles de macros, pour commencer à partir d’un squelette fonctionnel (macro simple, traitement d’image, appel de méthode générique)
Complétion de code et un widget chercher & remplacer dans l’éditeur de macros
Titres d’objets :
Les identifiants courts intégrés dans les titres d’objets (par ex.
s001,i012) sont désormais rendus comme des liens cliquables dans les arbres de signaux et d’images, de sorte que les objets sources d’un calcul peuvent être sélectionnés en un seul clic
Traitement de remplacement des valeurs spéciales (signal et image) :
DataLab fournit désormais une fonction de traitement dédiée « Remplacer les valeurs spéciales » qui détecte et remplace les valeurs NaN, +Inf et -Inf dans les signaux et les images. La fonctionnalité est disponible sous Traitement → Ajustement des niveaux → Remplacer les valeurs spéciales dans les panneaux Signal et Image.
Chaque cible (
NaN,+Inf,-Inf) peut être traitée indépendamment avec sa propre stratégieStratégies pour les signaux : ne rien faire, remplacer par zéro / constante / minimum / maximum / moyenne / médiane, supprimer les points affectés, remplissage avant, remplissage arrière, interpolation (linéaire, spline, quadratique, cubique, PCHIP), minimum / maximum / moyenne / médiane des N voisins
Stratégies pour les images : ne rien faire, remplacer par zéro / constante / minimum / maximum / moyenne / médiane, minimum / maximum / moyenne / médiane des N voisins
La boîte de dialogue des paramètres affiche des badges colorés indiquant le nombre (et le pourcentage) d’échantillons
NaN,+Infet-Inftrouvés dans l’objet source, offrant une visibilité immédiate sur ce qui sera modifiéLorsqu’une stratégie de voisinage est sélectionnée, un aperçu en direct du noyau montre la forme du voisinage qui sera utilisé pour le remplacement
Les images entières sont traitées explicitement : comme les valeurs
NaNet infinies ne peuvent pas exister dans les données entières, la boîte de dialogue explique que l’opération n’est pas applicable et empêche un traitement accidentel, tout en préservant le type de données d’image d’origine sans conversion inutile en flottant
🔄 Modifications#
DataLab repose désormais sur SigimaX :
Toutes les parties génériques et au niveau de l’application de DataLab (squelette de la fenêtre principale, système de configuration, widgets de tracé amovibles, espace de travail et navigateur HDF5, visualiseur de journal, écran de démarrage, barre d’état, boîtes de dialogue scientifiques et adaptateurs PlotPy) ont été extraites dans une nouvelle bibliothèque réutilisable, SigimaX, et DataLab en dérive désormais au lieu de maintenir ses propres copies (implémente Issue #182)
Il s’agit d’un refactoring interne : les flux de travail, les paramètres et les fichiers existants ne sont pas modifiés, mais cela réduit considérablement le code dupliqué et permet de créer d’autres applications scientifiques Qt sur la même base
Par conséquent, DataLab nécessite désormais SigimaX ≥ 1.0.1, et ses versions minimales sont alignées sur celles qu’impose SigimaX : Sigima ≥ 1.2.0, guidata ≥ 3.15.0 et PlotPy ≥ 2.11.0
Système de configuration :
La configuration de DataLab a été migrée vers le système d’options typées fourni par SigimaX : les options ont désormais un type explicite, une valeur par défaut et une description, et sont validées lors de la lecture ou de l’écriture
Les paramètres enregistrés par les versions précédentes sont migrés automatiquement au premier démarrage ; la disposition du fichier de configuration est sinon préservée
Package cdlclient archivé :
Le package autonome
cdlclientest obsolète et archivé. Son client XML-RPC léger est désormais fourni par Sigima, sous la forme desigima.client.SimpleRemoteProxy(implémente Issue #183)Ses widgets Qt compagnons ont été repris par SigimaX : la boîte de dialogue de progression de connexion est désormais
sigimax.widgets.connection.ConnectionDialog, utilisable avec tout proxy distant exposant une méthodeconnect()bloquanteLa documentation ne fait plus référence à
cdlclient
Les outils de détection préservent désormais les régions d’intérêt existantes :
Les régions d’intérêt créées par la détection de pics, de blobs, de cercles de Hough et de contours sont désormais ajoutées aux ROI existantes au lieu de les remplacer, sans afficher de boîte de dialogue de confirmation destructive
Les résultats d’analyse sont désormais actualisés à la demande plutôt qu’automatiquement :
Les résultats d’analyse (statistiques, FWHM, centroïde, détection de pics/contours/blobs, etc.) ne sont plus recalculés automatiquement lorsque vous modifiez une région d’intérêt, transformez les données ou modifiez les propriétés de l’objet
Les résultats d’analyse existants sont désormais laissés intacts après de telles modifications, évitant des effets de bord inattendus et des résultats susceptibles de devenir trompeurs lorsque les données ne correspondent plus aux paramètres d’analyse enregistrés
La relecture ordinaire et les mutations ordinaires ne recalculent pas les analyses ; toutefois, en mode d’édition de l’historique, la modification de paramètres en amont recalcule les actions d’analyse en aval par propagation en cascade
L’action familière « Recalculer » (menu Édition,
Ctrl+R) actualise désormais à la fois les résultats de traitement et d’analyse, vous permettant de maîtriser pleinement le moment où les analyses sont mises à jourPour les développeurs, l’ancien point d’entrée
recompute_analysisau niveau du panneau a été renommérecompute_selected;recompute_analysisdésigne désormais une autre fonction auxiliaire au niveau du processeur, dédiée à l’actualisation explicite des analyses 1-vers-0
🛠️ Corrections de bugs#
Régions d’intérêt :
Les régions d’intérêt créées par une fonction de détection (blob, contour, pic ou détection de cercle de Hough) réapparaissant immédiatement après avoir été supprimées ou modifiées — les ROI de détection sont désormais des ROI ordinaires, entièrement modifiables (corrige Issue #329)
Les régions d’intérêt supprimées réapparaissant après un recalcul automatique en post-traitement
Correction d’un plantage lorsque l’index de la région d’intérêt était hors limites lors de la création d’un titre de ROI
Profils d’intensité :
Correction du bouton « Réinitialiser la sélection » des dialogues de profil d’intensité ne supprimant pas la sélection précédente : après réinitialisation et dessin d’une nouvelle région, le profil extrait correspondait toujours à la première sélection (corrige Issue #322)
Correction du recalcul du profil utilisant les paramètres d’un autre objet lorsque plusieurs objets étaient sélectionnés
Palette de commandes :
Correction des résultats de recherche étant non pertinents pour les requêtes courtes — taper « rota » ne renvoie plus de commandes non liées avant les entrées de rotation (corrige Issue #345)
Largeur à mi-hauteur :
Une régression FWHM signalée par un utilisateur et observée dans DataLab v0.20.1 (une largeur aberrante, beaucoup trop petite) a été identifiée grâce à un test de non-régression basé sur le signal original, désormais inclus dans les données de test de Sigima. Le calcul était déjà correct dans la v1.2.x et reste correct dans cette version (corrige Issue #356)
Plugins :
Correction des fonctions de traitement des plugins échouant dans les processus workers générés après un rechargement de plugin
Fenêtre principale :
Correction du dock de tracé visible ne suivant pas l’onglet du panneau actuel dans certaines situations, en particulier lorsqu’une disposition persistante laissait le dock Macro, Historique ou Assistant IA levé au démarrage
Enregistrement de fichiers :
Correction d’une erreur levée lors de l’enregistrement d’un signal dans un fichier dans certaines situations
Panneau d’historique :
Correction de la lecture des actions de chargement ne faisant rien lorsque les objets chargés avaient été supprimés alors que l’enregistrement était actif — les objets sont maintenant rechargés à partir de leurs fichiers
Correction des chaînes de traitement dupliquées interférant avec leur chaîne source : la lecture de session n’affecte désormais que ses propres objets
Correction de l’abandon de la lecture de session lorsque la session contenait une suppression d’objet enregistrée — les suppressions enregistrées qui ne peuvent plus être appliquées en toute sécurité (incohérence de l’état capturé, cibles recréées plus tôt dans la même lecture, ou cibles appartenant à une autre session) sont maintenant ignorées avec un avertissement
Suppression de la mise en évidence jaune pouvant persister sur les entrées de l’historique après une lecture échouée
Correction des étapes obsolètes n’ayant aucune indication visuelle dans l’arborescence de l’historique — les actions laissées obsolètes par un recalcul échoué ou interrompu, ou par des modifications de paramètres en attente de propagation, sont maintenant mises en évidence avec un arrière-plan ambre et une info-bulle suggérant de les relire
Correction des plantages potentiels ou des historiques corrompus lors du clic sur les commandes du panneau Historique (Rejouer, Supprimer, Dupliquer, …) alors qu’une longue lecture ou un recalcul était encore en cours — les commandes sont maintenant indisponibles jusqu’à la fin de l’exécution
Correction d’une seule entrée d’historique corrompue (par exemple, une ROI enregistrée par une version incompatible) empêchant le chargement d’un fichier
.dlhistentier ou de l’historique d’un espace de travail HDF5 — l’action affectée se charge maintenant comme incompatible tandis que le reste de l’historique se charge normalementCorrection de l’arrêt de l’enregistrement de l’opération de l’utilisateur lorsqu’un objet sélectionné n’avait pas de données
Correction du maintien en surbrillance de la session active après le chargement d’un fichier HDF5
Correction du changement vers le panneau Signal lors de la suppression d’une action d’historique d’image
Correction d’une erreur de génération de macro (
object has no attribute uuid) pour les chaînes de traitement 2-à-1Amélioration des performances : l’ouverture de nombreux fichiers ou la relecture de longues chaînes de traitement ne bloque plus l’interface pendant que le panneau Historique vérifie à plusieurs reprises la compatibilité des actions
📖 Documentation#
Ajout d’une page complète sur la panneau Historique et d’un tutoriel étape par étape couvrant l’enregistrement, la relecture, la modification des paramètres et l’import/export de session
Ajout de pages cas d’utilisation illustrant DataLab en photonique, spectroscopie et contrôle non destructif
Documentation de l’ancien syntaxe du sélecteur de jeux de données HDF5
Refonte de la mise en page de la documentation : barre de navigation plus compacte, métadonnées Open Graph et métadonnées de citation logicielle
Ajout d’un exemple de plugin montrant des lignes de contour iso-niveau sur une image
Mise à jour des traductions françaises sur toutes les nouvelles pages de documentation et celles modifiées