Integraciones

SDK de Python

El paquete oficial infinianalytics envuelve la API de eventos de InfiniAnalytics en llamadas a métodos simples que nunca interrumpen el flujo de control de tu automatismo.

Instalación

Instálalo desde PyPI usando pip:

bash
pip install infinianalytics

Requiere Python 3.7+. No necesita dependencias externas.

Inicialización

Crea una instancia de InfiniAnalytics una vez por ejecución, pasando el token de tu organización y el UUID del automatismo que copiaste desde el panel de InfiniAnalytics:

python
from infinianalytics import InfiniAnalytics

execution = InfiniAnalytics(
    token="your_organization_token",
    automation_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
)

Si no pasas un execution_id, se genera uno automáticamente a partir de datetime.now().isoformat(). Pasa el tuyo propio si necesitas correlacionar la ejecución con un ID de tu propio sistema.

Nunca escribas el token de tu organización directamente en el código fuente. Usa una variable de entorno: token=os.environ["INFINI_TOKEN"].

Métodos

Llama a estos métodos directamente sobre la instancia de execution - no hay gestor de contexto ni un paso de inicialización aparte:

MétodoCuándo usarlo
.start(description)Registra el evento START - llámalo una vez al principio de la ejecución.
.event(description)Registra un EVENT intermedio - llámalo tantas veces como necesites para registrar el progreso.
.warning(description)Registra un WARNING - un problema no crítico que merece la pena señalar sin marcar la ejecución como fallida.
.end(description)Registra el evento END - llámalo una vez al completarse con éxito.
.error(description, error_id=None, error_description=None)Registra un ERROR - marca la ejecución como fallida. Llámalo desde dentro de un bloque except.

Ejemplo de Uso

python
from infinianalytics import InfiniAnalytics
import os

execution = InfiniAnalytics(
    token=os.environ["INFINI_TOKEN"],
    automation_id="your-uuid"
)

execution.start("Invoice processing started")

invoices = fetch_invoices()
execution.event(f"Fetched {len(invoices)} invoices")

for inv in invoices:
    process(inv)

execution.end(f"Processed {len(invoices)} invoices successfully")

Gestión de Errores

Llama a .error() desde dentro de un bloque except para que se registre cada fallo:

python
execution.start("Processing started")
try:
    result = risky_operation()
    execution.end("Completed successfully")
except Exception as ex:
    execution.error(
        description="Validation failed",
        error_id="VALIDATION_ERROR",
        error_description=str(ex),
    )
    raise
La librería nunca lanza excepciones por sí sola. Si una llamada a la API de InfiniAnalytics falla (p. ej. un problema de red), el método imprime un mensaje y devuelve None en lugar de lanzar una excepción - una conexión rota con InfiniAnalytics nunca romperá tu automatismo.

Referencia en PyPI

La documentación completa del paquete y el changelog están disponibles en PyPI:

Ver en PyPI