Skip to main content

Biblioteca simples para padronizar execução, logging e retorno em JSON de rotinas de automação.

Project description

sfa-automation

Biblioteca simples para padronizar execução, logging e retorno em formato JSON de rotinas de automação (scripts, integrações, robôs).

Instalação

pip install sfa-automation

Uso básico

from sfa_automation import Automation

def minha_rotina(auto: Automation):
    auto.info("Iniciando processamento")
    auto.set_total(10)

    for i in range(10):
        try:
            # ... lógica da rotina ...
            auto.success(f"Item {i} processado com sucesso")
        except Exception as e:
            auto.error(f"Falha no item {i}: {e}")

auto = Automation("minha_rotina")
auto.run(minha_rotina)

A saída é sempre um JSON impresso no stdout, por exemplo:

{
  "status": "sucesso",
  "inicio": "2026-07-14T10:00:00",
  "duracao": 1.23,
  "total": 10,
  "sucesso": 10,
  "erros": 0,
  "avisos": 0,
  "logs": ["[INFO] Iniciando processamento", "[OK] Item 0 processado com sucesso"]
}

Se uma exceção não tratada ocorrer dentro da função passada para run(), o traceback é automaticamente capturado e incluído no JSON de saída, com status igual a "erro".

Status possíveis

Constante Valor Significado
Automation.STATUS_EXECUTANDO executando Rotina em andamento
Automation.STATUS_SUCESSO sucesso Nenhum erro registrado
Automation.STATUS_SUCESSO_COM_ERROS sucesso_com_erros Houve sucesso e erros
Automation.STATUS_ERRO erro Só houve erros (ou exceção não tratada)
Automation.STATUS_CANCELADO cancelado Rotina cancelada

API

  • Automation(nome) — cria uma nova instância, registrando o horário de início.
  • .info(msg) / .warning(msg) / .error(msg) / .success(msg) — adicionam logs categorizados (warning/error/success também incrementam contadores).
  • .log(msg) — adiciona um log "cru", sem prefixo.
  • .set_total(n) — define o total esperado de itens processados.
  • .resultado() — retorna o dicionário de resultado (sem imprimir).
  • .run(func) — executa func(self), captura exceções e imprime o JSON final em stdout.

Licença

MIT

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

sfa_automation-0.1.0.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

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

sfa_automation-0.1.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file sfa_automation-0.1.0.tar.gz.

File metadata

  • Download URL: sfa_automation-0.1.0.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for sfa_automation-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f7a7baeca2a0a6330b0910380dd25ce412725ad2b6ee27d16bd8b0fa77d9f84d
MD5 f57d06ebf6ba10ed77f1aeedb1b2b575
BLAKE2b-256 46e1dbeb638aab6dd80fc8908701d3a2a2baaf6671cb671a4cce8cbcca632ad1

See more details on using hashes here.

File details

Details for the file sfa_automation-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sfa_automation-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for sfa_automation-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48f18f01fa12681b275879080ae149695bf1c3c8426f55dd01af00e68172772f
MD5 0b466c8e0af3205b0f346299252b15be
BLAKE2b-256 d8a6ed592fada2063294e6f6892e9e571e818beb7fdd07a2349182db11b60169

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