Skip to main content

SDK oficial para automacoes ONEROM

Project description

onerom-core

SDK oficial Python para automações ONEROM.

Usado dentro de bots executados pelo ONEROM Runner.

Instalação

pip install onerom-core

Ou via pyproject.toml do bot:

[project]
dependencies = ["onerom-core>=0.1.0"]

Uso básico

from onerom_core import OneromExecution
import logging

# Inicializa contexto da execução
# - Carrega parâmetros da execução automaticamente
# - Anexa handler de log estruturado ao logger raiz
exec = OneromExecution()

# Acesso a parâmetros tipados
nome = exec.params.nome
count = exec.params.count

# Logging — capturado pelo runner e enviado ao backend
logging.info(f"Processando {nome}")

# Contagem de itens
for item in get_items():
    try:
        process(item)
        exec.add_success_item()
    except Exception:
        exec.add_failed_item()

# Finaliza com sucesso
exec.finish_success()

Uso com wrapper automático

from onerom_core import OneromExecution

exec = OneromExecution()

def main():
    logging.info("Bot iniciado")
    # ... lógica do bot ...

# Gerencia mark_running → main() → finish_success/failed automaticamente
exec.run(main)

Ciclo de vida

Método Descrição
mark_running() Notifica backend que a execução começou
add_success_item() Incrementa contador de itens processados
add_failed_item() Incrementa contador de itens que falharam
report_progress(processed, total) Reporta progresso parcial
finish_success() Finaliza como bem-sucedida
finish_failed(error_message) Finaliza como falha
run(fn) Wrapper automático completo

Parâmetros

Os parâmetros são injetados pelo runner via ONEROM_CONTEXT e ONEROM_PARAMETERS.

exec = OneromExecution()

# Acesso por atributo
valor = exec.params.meu_parametro

# Acesso como dict (sem schema)
dados = exec.params.as_dict()

Schema tipado (opcional)

Se ONEROM_PARAM_SCHEMA estiver definido, os parâmetros são validados com Pydantic:

# Backend retorna schema:
# [{"name": "cnpj", "type": "string", "required": true}]
# Validação automática e acesso tipado:
cnpj: str = exec.params.cnpj

Tipos suportados: string, int, double, bool, json, list

Logging

O OneromLogHandler é anexado automaticamente ao logger raiz. Cada chamada de log gera uma linha JSON no stdout, que o runner captura e envia ao backend.

import logging

logging.info("Processando item")    # → backend via runner
logging.warning("Item ignorado")
logging.error("Falha ao processar")

# Logger customizado
exec.attach_logger(logging.getLogger("meu_modulo"))

Variáveis de ambiente

Injetadas automaticamente pelo runner:

Variável Descrição
ONEROM_EXECUTION_ID ID da execução atual
ONEROM_BOT_NAME Nome do bot
ONEROM_RUNNER_ID ID do runner
ONEROM_PARAMETERS JSON com parâmetros da execução
ONEROM_CONTEXT JSON com contexto completo
ONEROM_METRICS_FILE Caminho do arquivo de métricas
ONEROM_API_URL Base da API runner-agent (.../api/v1/runner-agent)
ONEROM_RUNNER_KEY Chave de autenticação do runner

Contrato oficial: ../RUNNER_ENV_CONTRACT.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onerom_core-0.1.2.tar.gz (67.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onerom_core-0.1.2-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file onerom_core-0.1.2.tar.gz.

File metadata

  • Download URL: onerom_core-0.1.2.tar.gz
  • Upload date:
  • Size: 67.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for onerom_core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4008a16a5301406d47f2ea77e21eefd658fcd2571e7b8b5a5e409be4bd28549b
MD5 ebb4432bcf47ab93ca0e18c28d3b2061
BLAKE2b-256 42bedfcb1da575d73302bc1b177667a2c978bf5d21a8428df1f515608fd54553

See more details on using hashes here.

File details

Details for the file onerom_core-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: onerom_core-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for onerom_core-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5e465dab22674b8e0fe83fbbd9f42c46143c99eef823fda07fe29887b73c9850
MD5 47552349f0d3f6bb04bb4a68a6747989
BLAKE2b-256 e68055a0705b06905fa4e7c7823d6d2746f30f114c1cc012ba47044a6d0444ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page