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:

  • StudioScenario

  • install_logging_event

  • enable_logging_stdout

  • disable_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_code explícitamente.


Ciclo típico de uso

En la mayoría de los scripts harás:

  1. Crear el escenario (StudioScenario(...))

  2. Cargar un .pmod (load_scenario(...))

  3. Ejecutarlo (run(...))

  4. 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 StudioScenario en caso de éxito.

  • Devuelve None si 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() o scenario.run(())

  • 1 entrada: llama a scenario.run((value,))

  • 2 entradas: llama a scenario.run((value1, value2))

Advertencia args debe 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 duplicados

  • quieres 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