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)— executafunc(self), captura exceções e imprime o JSON final emstdout.
Licença
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7a7baeca2a0a6330b0910380dd25ce412725ad2b6ee27d16bd8b0fa77d9f84d
|
|
| MD5 |
f57d06ebf6ba10ed77f1aeedb1b2b575
|
|
| BLAKE2b-256 |
46e1dbeb638aab6dd80fc8908701d3a2a2baaf6671cb671a4cce8cbcca632ad1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48f18f01fa12681b275879080ae149695bf1c3c8426f55dd01af00e68172772f
|
|
| MD5 |
0b466c8e0af3205b0f346299252b15be
|
|
| BLAKE2b-256 |
d8a6ed592fada2063294e6f6892e9e571e818beb7fdd07a2349182db11b60169
|