CLI para geração de estrutura de projetos RPA
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
rpa-arc
rpa-arc é a ferramenta definitiva para iniciar projetos RPA em Python. Com um único comando, ela cria uma arquitetura robusta, escalável e pronta para produção.
"Sem firula, na lata: one command and you are ready to automate."
🚀 Por que rpa-arc?
- Zero Config: Esqueça o boilerplate. Instale e rode.
- Padronização: Todos os bots da sua equipe seguindo a mesma estrutura.
- Features Enterprise: Logs rotacionados, Driver com auto-healing, API Client com retry.
- Flexível: Suporta desde scripts simples até arquiteturas complexas em containers.
📦 Instalação
pip install rpa-arc
🛠️ Uso
Criar Novo Projeto
Para criar um novo projeto em uma pasta específica:
rpa-arc meu-novo-bot
Isso criará a pasta meu-novo-bot/ com toda a estrutura dentro.
Na Pasta Atual
Se você já criou a pasta e quer apenas popular a estrutura nela:
# Estando dentro da pasta do projeto
rpa-arc
Opções Avançadas
-f,--force: Adiciona arquivos faltantes sem sobrescrever os existentes. Útil para atualizar projetos antigos.-m,--minimal: Cria uma versão "leve" da estrutura, sem arquivos Docker e sem o módulo de API. Ideal para bots locais simples.
# Exemplo: Atualizar estrutura de um projeto existente sem perder código
rpa-arc --force
# Exemplo: Criar bot simples sem Docker/API
rpa-arc bot-simples --minimal
📂 Estrutura Gerada
Abaixo, a arquitetura completa gerada pela ferramenta:
meu-projeto/
├── src/
│ ├── app/
│ │ └── app.py # Onde seu código de negócio reside
│ ├── core/
│ │ ├── logger.py # Logger configurado com TimedRotatingFileHandler
│ │ └── driver.py # Wrapper do Selenium com gestão avançada
│ ├── api/
│ │ └── Api.py # (Opcional) Cliente HTTP com Retry e Auth JWT
│ ├── integracoes/ # Espaço para integrações com sistemas terceiros
│ └── utils/ # Funções auxiliares
├── config/ # Arquivos JSON/YAML de configuração
├── dados/ # Diretório padrão para downloads e inputs
├── logs/ # Logs gerados (ignorados no git)
├── tests/ # Testes unitários
├── .env # Variáveis de ambiente (template)
├── .gitignore # Ignora venv, logs, pycache, etc.
├── Dockerfile # (Opcional) Pronto para deploy
├── main.py # Entrypoint simples
├── readme.md # Documentação inicial do seu bot
└── requirements.txt # Dependências do projeto
✨ Funcionalidades do Core
1. Gerenciador de Navegador (src.core.driver)
O GerenciadorNavegador não é apenas um wrapper do Selenium. Ele resolve as dores de cabeça comuns de RPA:
- Gestão de Temp Files: Cria perfis de usuário temporários (
user-data-dir) isolados para evitar conflitos de cache/sessão entre execuções paralelas. - Auto-Cleanup: Limpa diretórios temporários antigos e mata processos órfãos do Chrome.
- Modo Headless: Detecta ambiente Linux e ativa headless automaticamente se necessário.
- Fallback: Se o diretório de perfil falhar, ele tenta um modo de recuperação automaticamente.
from src.core.driver import GerenciadorNavegador
# Inicia navegador (baixa driver automaticamente se necessário)
nav = GerenciadorNavegador()
driver = nav.obter_navegador()
driver.get("https://google.com")
2. Logger Robusto (src.core.logger)
Logs são a vida do RPA. O nosso logger já vem com:
- Rotação Diária: Arquivos separados por dia (
2024-02-01.log). - Timezone Aware: Configurado para
America/Sao_Paulopor padrão (ajustável via.env). - Dual Output: Escreve no arquivo e no console simultaneamente.
from src.core.logger import Logger
log = Logger().get_logger()
log.info("Processo iniciado")
log.error("Falha ao encontrar seletor X")
3. API Client (src.api.Api)
Disponível na estrutura completa.
Um cliente HTTP Wrapper sobre o requests que implementa:
- Auth JWT: Gerencia tokens Bearer e renova automaticamente se expirados (via método
CheckToken). - Smart Retry: Tenta novamente em caso de falhas de rede ou Rate Limit (429), com backoff exponencial.
- Integração S3: Métodos prontos para upload de arquivos de log.
⚙️ Configuração (.env)
O sistema espera um arquivo .env na raiz. Um template é gerado automaticamente:
# Credenciais da API (se usar)
BASE_URL_API_RPA="https://api..."
USERNAME_API_RPA=user
PASSWORD_API_RPA=pass
# Configuração de Log
LOG_LEVEL=DEBUG
LOG_TZ=America/Sao_Paulo
🐳 Docker
A estrutura completa já inclui um Dockerfile otimizado baseado em python:3.12-slim. Ele instala as dependências de sistema necessárias para o Chrome rodar em ambiente Linux (Debian/Ubuntu), incluindo fontes e libs gráficas.
Para rodar:
docker build -t meu-bot .
docker run --rm meu-bot
🤝 Contribuição
Sua ajuda é bem-vinda!
- Fork o projeto.
- Crie uma branch (
git checkout -b feature/NovaFeature). - Commit (
git commit -m 'Add NovaFeature'). - Push (
git push origin feature/NovaFeature). - Abra um Pull Request.
📝 Licença
MIT License.
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 rpa_arc-0.8.0.tar.gz.
File metadata
- Download URL: rpa_arc-0.8.0.tar.gz
- Upload date:
- Size: 27.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
171789f99cf68973ab997928bb067bf17b45d2fb452b9083ed471fbdb5d65343
|
|
| MD5 |
22bf5c96e6108339e6b651d31b58b51b
|
|
| BLAKE2b-256 |
83bbba6690191588c2c342a90f9d7bb4362466e3c7c307ed239036b9c59d0636
|
File details
Details for the file rpa_arc-0.8.0-py3-none-any.whl.
File metadata
- Download URL: rpa_arc-0.8.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6004b8c8176f681d4465cf640885673cde4a6488ef18ef8aa4eebd502416ea9
|
|
| MD5 |
9ff2e71d81e700a1e720295d8eb09837
|
|
| BLAKE2b-256 |
b172643a4844c26347703226e2ff58c836e69947677b5dfdef88abc6a88bef44
|