Metadata-Version: 2.4
Name: Cronify_Orchestrator
Version: 1.0.2
Summary: Biblioteca de gerenciamento do orchestrator
Author: Tainan Ramos
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: requires-python
Dynamic: summary

# Cronify Orchestrator

Biblioteca Python para integrar robôs de RPA com a API [Cronify](https://app.cronify.com.br): autenticação, registro de **trabalhos**, consumo de **filas** e gestão de **itens de fila**, com sessão HTTP configurada para novas tentativas automáticas em falhas transitórias.

## Requisitos

- Python **3.9+**
- Dependências: `requests` (e `urllib3`, transitiva). Para desenvolvimento/pacote, veja `requirements.txt`.

## Instalação

No diretório do projeto:

```bash
pip install -e .
```

Ou instale as dependências manualmente e use o pacote no `PYTHONPATH`:

```bash
pip install -r requirements.txt
```

## Uso rápido

```python
from orchestrator import Bot, Status

bot = Bot(
    api_user="seu@email.com",
    api_pass="sua_senha",
    # api_url="https://app.cronify.com.br",  # opcional
    # pasta_excecoes="C:/RPA/Excecoes",     # opcional; usado em exceções com screenshot
)

# Trabalho (processo em execução no host)
bot.trabalho.iniciar(seq_processo=123)
bot.trabalho.alterar_status(Status.PROCESSANDO)
# bot.trabalho.adicionar_excecao("mensagem")
# parar = bot.trabalho.validar_parar_trabalho()

# Fila
bot.fila.iniciar(seq_fila=456)
if bot.fila.buscar_item_fila():
    bot.item_fila.alterar_status(Status.PROCESSANDO)
    # ... processar usando bot.item_fila.parametros, etc.
    bot.item_fila.alterar_status(Status.SUCESSO)
```

Na importação, `Bot` já realiza **login** e preenche `bot.token`. As chamadas à API usam `bot.session` (timeout e política de retry definidos internamente).

## Módulos principais

| Símbolo | Descrição |
|--------|-----------|
| `Bot` | Cliente principal: credenciais, URL, token, `trabalho`, `fila`, `item_fila`. |
| `Trabalho` | Iniciar trabalho, alterar status, registrar exceção, consultar se deve parar. |
| `Fila` | Iniciar fila, buscar próximo item, inserir item, validar status por referência. |
| `ItemFila` | Estado do item (parâmetros, referência), alterar status, exceção com screenshot opcional. |
| `Status` | Constantes: `NOVO`, `PROCESSANDO`, `FALHA`, `SUCESSO`. |
| `SystemException`, `BusinessException`, `rethrow` | Exceções utilitárias para fluxo de erro. |

## Empacotamento

O nome do pacote distribuído é **Cronify_Orchestrator** (veja `setup.py`). O código importável é o namespace `orchestrator`.
