For the complete documentation index, see llms.txt. This page is also available as Markdown.

Référence de scripting

Cette page documente l'API publique de scripting en mode headless exposée par le package Python studio.

Elle se concentre sur ces symboles publics :

  • StudioScenario

  • install_logging_event

  • enable_logging_stdout

  • disable_logging_stdout

Si vous n'avez jamais exécuté un scénario en mode headless, lisez d'abord la section Headless puis revenez ici pour les détails de l'API.


Importations

Toutes les API documentées ici sont exportées depuis le package de haut niveau studio :

from studio import (
	StudioScenario,
	install_logging_event,
	enable_logging_stdout,
	disable_logging_stdout,
)

Stubs de type

La surface publique headless est la suivante :


StudioScenario

StudioScenario est le point d'entrée principal pour charger et exécuter un fichier .pmod sans l'interface graphique.

Constructeur

verification_code

Cette valeur est utilisée pour configurer la licence lors d'une exécution headless.

Usages courants :

  • Machine locale / serveur : passer la chaîne du verification code.

  • Docker / CI : monter un fichier de licence dans le conteneur et passer son chemin comme verification_code.

⚠️ Pour les environnements non interactifs (Docker/CI/services), passez toujours verification_code explicitement.


Cycle de vie typique

Dans la plupart des scripts, vous ferez :

  1. Créer le scénario (StudioScenario(...))

  2. Charger un .pmod (load_scenario(...))

  3. Lancer l'exécution (run(...))

  4. Nettoyer (cleanup())

ℹ️ cleanup() est important dans les processus de longue durée (services, lots) pour libérer la mémoire et réinitialiser l'état d'exécution.


Chargement d'un .pmod

  • Retourne StudioScenario en cas de succès.

  • Retourne None si le chemin n'existe pas.

Si votre scénario référence des ressources externes, conservez la même arborescence de fichiers utilisée sur le poste de travail (voir la section “Transferring .pmod files”).


Exécuter un scénario

Le runtime vérifie que le nombre d'arguments correspond au nombre d'entrées du scénario.

Si votre .pmod a :

  • 0 entrées : appelez scenario.run() ou scenario.run(())

  • 1 entrée : appelez scenario.run((value,))

  • 2 entrées : appelez scenario.run((value1, value2))

⚠️ args doit être un tuple. Pour une seule entrée, n'oubliez pas la virgule de fin : (value,).


Autres méthodes de StudioScenario

Cette section couvre des méthodes publiques supplémentaires utiles pour l'automatisation et le débogage.

Charger sans échouer sur les ressources manquantes

Si vous déplacez des scénarios entre machines/conteneurs et que certaines ressources peuvent être manquantes, vous pouvez charger plus permissivement :

Charger / sauvegarder

Nœuds personnalisés

Charger des modules Python de nœuds personnalisés depuis un dossier :

⚠️ Cela importe dynamiquement des fichiers Python. Chargez uniquement du code de confiance.

Nom du scénario

Ports (entrées/sorties du scénario)

Vous pouvez interroger les noms des ports d'entrée/sortie :

Lancer un serveur web (optionnel)

Si vous souhaitez exposer un exécuteur de scénario via HTTP :

Événements

Installer des callbacks sur le cycle de vie de l'exécution :


Aides à la journalisation

AugeLab Studio dispose d'un logger runtime utilisé par les blocs et les scénarios. En mode headless, vous voudrez généralement :

  • afficher les logs sur stdout pendant le développement

  • rediriger les logs vers votre propre système de journalisation

Ces aides sont globales (elles affectent le logger runtime utilisé par votre scénario headless).


enable_logging_stdout()

Active l'affichage "amical" des logs runtime vers stdout.

Utilisez ceci lorsque vous voulez voir les logs des blocs/scénarios dans la console :


disable_logging_stdout()

Désactive l'envoi des logs runtime vers stdout.

Utile lorsque :

  • vous utilisez install_logging_event(...) et voulez éviter les logs dupliqués

  • vous voulez une sortie propre (seulement vos propres print(...) / logger)


install_logging_event(event: Callable[[str], None])

Installe un callback qui reçoit les messages de log runtime.

C'est le moyen le plus simple d'intégrer les logs AugeLab dans votre propre framework de journalisation.

StudioScenario.install_logging_hook(hook, level=0)

Si vous préférez installer un hook par scénario (avec filtrage par niveau), utilisez :

⚠️ Gardez votre callback rapide. Si vous devez effectuer un travail lourd (I/O, réseau), envisagez de bufferiser les messages et de les traiter dans un autre thread/processus.


Schémas recommandés

1) Variable d'environnement pour la licence

Pour les scripts qui s'exécutent dans différents environnements (local vs CI vs Docker), passer verification_code via une variable d'environnement rend le code portable :

2) Toujours appeler cleanup avec try/finally

Mis à jour