Macros#

Généralités#

Plusieurs méthodes permettent d’étendre les fonctionnalités de DataLab (voir Plugins ou Contrôle à distance (XML-RPC)). La manière la plus simple de le faire est d’utiliser des macros. Les macros sont de petits scripts Python qui peuvent être exécutés depuis le « Gestionnaire de Macros » dans DataLab.

Gestionnaire de Macros

Le Gestonnaire de Macros dans DataLab.#

Les macros peuvent être utilisées pour automatiser des tâches répétitives, ou pour créer de nouvelles fonctionnalités. Comme le système de plugins et de contrôle à distance, les macros reposent sur l’API de haut niveau de DataLab pour interagir avec l’application. Cela signifie que vous pouvez réutiliser les mêmes extraits de code dans les macros, les plugins et les scripts de contrôle à distance.

Avertissement

DataLab gère les macros comme des scripts Python. Cela signifie que vous pouvez utiliser toute la puissance de Python pour créer vos macros. Même si c’est une fonctionnalité puissante, cela signifie également que vous devez être prudent lorsque vous exécutez des macros à partir de sources inconnues, car elles peuvent potentiellement endommager votre système.

Voir aussi

L’API de haut niveau de DataLab est documentée dans la section API. Le système de plugins est documenté dans la section Plugins, et le système de contrôle à distance est documenté dans la section Contrôle à distance (XML-RPC).

Fonctionnalités principales#

Le Gestionnaire de Macros est une interface simple pour :

  • Créer de nouvelles macros, en utilisant le bouton « Nouvelle macro » libre-gui-add. Le bouton expose également un menu déroulant proposant une macro vierge et les modèles fournis (voir Modèles).

  • Renommer des macros existantes, en utilisant le bouton « Renommer macro » libre-gui-pencil (ou en double-cliquant sur un onglet).

  • Dupliquer la macro courante, en utilisant le bouton « Dupliquer macro » duplicate.

  • Importer/exporter des macros depuis/vers des fichiers, en utilisant les boutons « Importer macro » fileopen_py et « Exporter macro » filesave_py.

  • Rouvrir une macro d’une session précédente, en utilisant le bouton « Macros récentes… » history (la liste des macros récentes est conservée d’une session à l’autre).

  • Exécuter des macros, en utilisant le bouton « Exécuter macro » libre-camera-flash-on.

  • Arrêter l’exécution d’une macro, en utilisant le bouton « Arrêter macro » libre-camera-flash-off.

Les macros sont intégrées dans l’espace de travail de DataLab, elles sont donc enregistrées avec le reste des données (c’est-à-dire avec les signaux et les images) lors de l’exportation de l’espace de travail vers un fichier HDF5. Cela signifie que vous pouvez partager vos macros avec d’autres utilisateurs simplement en partageant le fichier d’espace de travail.

Note

Les macros sont exécutées dans un processus séparé, elles ne bloqueront donc pas l’application principale de DataLab. Cela signifie que vous pouvez continuer à travailler avec DataLab pendant qu’une macro est en cours d’exécution et que vous pouvez arrêter une macro à tout moment en utilisant le bouton libre-camera-flash-off.

Fonctionnalités de l’éditeur#

L’éditeur de macros offre quelques fonctionnalités qui facilitent l’écriture de scripts :

  • Sauvegarde automatique : chaque frappe est temporisée et persistée dans l’espace de travail courant, afin que les modifications non sauvegardées survivent à un arrêt inattendu. Une invite de récupération est proposée au démarrage lorsqu’une version sauvegardée automatiquement est détectée.

  • Persistance des onglets : l’ensemble des macros ouvertes et l’onglet actif sont restaurés au démarrage suivant de DataLab, vous permettant de reprendre exactement là où vous vous étiez arrêté.

  • Rechercher / Remplacer (Ctrl+F / Ctrl+H) : une barre intégrée en bas de l’éditeur prend en charge la recherche sensible à la casse, la correspondance de mots entiers, les expressions régulières et le remplacement (ou le remplacement total) dans la macro active.

  • L’autocomplétion Python est activée par défaut (Ctrl+Espace pour la déclencher manuellement), fournie par l’éditeur de code intégré.

Console#

Le panneau Console en bas capture les flux de sortie standard et d’erreur standard produits par la macro en cours d’exécution. Un clic droit dans la console expose :

  • Effacer la console — efface le contenu actuel.

  • Enregistrer le journal de l’historique… — exporte l’historique de la console vers un fichier texte.

Le nombre maximum de lignes conservées par la console peut être ajusté via le paramètre Conf.macro.console_max_lines (par défaut 5000).

Modèles#

Le menu déroulant « Nouvelle macro » liste un ensemble de modèles prêts à l’emploi couvrant des cas courants (création de signal, traitement d’image, boucles de traitement par lots, etc.). Vous pouvez fournir vos propres modèles en plaçant des fichiers *.py dans le répertoire des modèles utilisateur — par défaut ~/.DataLab/macro_templates/, configurable via Conf.macro.templates_path. La première ligne non vide de la docstring de chaque modèle est utilisée comme titre de l’entrée du menu. Les modèles fournis avec DataLab ont priorité sur les modèles utilisateur en cas de conflit de noms.

Exemple#

Pour un exemple détaillé de création d’une macro, voir le tutoriel Prototypage d’une chaîne de traitement personnalisée.