Referencia de scripting
Esta página documenta la API pública para ejecución headless (sin interfaz) expuesta por el paquete studio de Python.
Se centra en estos símbolos públicos:
StudioScenarioinstall_logging_eventenable_logging_stdoutdisable_logging_stdout
Si nunca has ejecutado un escenario en modo headless, primero lee la sección Headless y luego vuelve aquí para ver los detalles de la API.
Imports
Todas las APIs documentadas aquí se exportan desde el paquete de nivel superior studio:
from studio import (
StudioScenario,
install_logging_event,
enable_logging_stdout,
disable_logging_stdout,
)Type Stubs
La interfaz pública para headless puede encontrarse aquí:
StudioScenario
StudioScenario es el punto de entrada principal para cargar y ejecutar un archivo .pmod sin la interfaz de escritorio (modo headless).
Constructor
verification_code
Este valor se usa para configurar la licencia en la ejecución headless.
Patrones comunes:
Máquina local / servidor: pasa la cadena del verification code.
Docker / CI: monta un archivo de licencia dentro del contenedor y pasa su ruta como
verification_code.
Advertencia Para entornos no interactivos (Docker/CI/servicios), siempre pasa
verification_codeexplícitamente.
Ciclo típico de uso
En la mayoría de los scripts harás:
Crear el escenario (
StudioScenario(...))Cargar un
.pmod(load_scenario(...))Ejecutarlo (
run(...))Limpiar recursos (
cleanup())
Ejemplo:
Nota
cleanup()es importante en procesos de larga duración (servicios, jobs por lotes) para liberar memoria y resetear el estado de runtime.
Cargar un .pmod
Devuelve
StudioScenarioen caso de éxito.Devuelve
Nonesi la ruta no existe.
Si tu escenario referencia recursos externos, conserva la misma estructura de carpetas usada en la versión de escritorio (ver la sección “Transferring .pmod files”).
Ejecutar un escenario
El runtime valida que el número de argumentos coincida con el número de entradas del escenario.
Si tu .pmod tiene:
0 entradas: llama a
scenario.run()oscenario.run(())1 entrada: llama a
scenario.run((value,))2 entradas: llama a
scenario.run((value1, value2))
Advertencia
argsdebe ser una tupla. Para una sola entrada recuerda la coma final:(value,).
Más métodos de StudioScenario
Esta sección cubre métodos públicos adicionales que puedes usar para automatización y depuración.
Cargar sin fallar por recursos faltantes
Si mueves escenarios entre máquinas/contenedores y algunos recursos pueden no estar disponibles, puedes optar por cargar de forma más permisiva:
Cargar / guardar
Nodos personalizados
Carga módulos Python de nodos personalizados desde una carpeta:
Advertencia Esto importa dinámicamente archivos Python. Solo carga código de confianza.
Nombre del escenario
Puertos (entradas/salidas del escenario)
Puedes obtener los nombres de los puertos de entrada y salida:
Ejecutar un servidor web (opcional)
Si quieres exponer un runner de escenario por HTTP:
Eventos
Instala callbacks alrededor del ciclo de ejecución del escenario:
Helpers de logging
AugeLab Studio tiene un logger de runtime usado por blocks y escenarios. En modo headless normalmente querrás una de estas opciones:
imprimir logs en stdout mientras desarrollas
reenviar logs a tu propio sistema de logging
Estos helpers son globales (afectan al logger de runtime usado por tu escenario headless).
enable_logging_stdout()
Habilita logging de runtime “amigable” hacia stdout.
Úsalo cuando quieras ver logs de blocks/escenario en la consola:
disable_logging_stdout()
Deshabilita el logging de runtime hacia stdout.
Útil cuando:
estás usando
install_logging_event(...)y quieres evitar logs duplicadosquieres una salida limpia (solo tus propios
print(...)o el output de tu logger)
install_logging_event(event: Callable[[str], None])
Instala un callback que recibe los mensajes de log del runtime.
Esta es la forma más sencilla de integrar los logs de AugeLab en tu propio framework de logging.
StudioScenario.install_logging_hook(hook, level=0)
Si prefieres instalar un hook por escenario (con filtrado por nivel), usa:
Advertencia Mantén tu callback rápido. Si necesitas hacer trabajo pesado (I/O, red), considera encolar los mensajes y procesarlos en otro hilo/proceso.
Patrones recomendados
1) Variable de entorno para la licencia
Para scripts que se ejecutan en distintos entornos (local vs CI vs Docker), pasar verification_code mediante variable de entorno mantiene el código portable:
2) Siempre limpiar con try/finally
Última actualización
¿Te fue útil?