Skip to main content

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

PyPI - Version PyPI - Python Version PyPI - License PyPI - Status

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_Paulo por 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!

  1. Fork o projeto.
  2. Crie uma branch (git checkout -b feature/NovaFeature).
  3. Commit (git commit -m 'Add NovaFeature').
  4. Push (git push origin feature/NovaFeature).
  5. Abra um Pull Request.

📝 Licença

MIT License.

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

rpa_arc-0.8.0.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

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

rpa_arc-0.8.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

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

Hashes for rpa_arc-0.8.0.tar.gz
Algorithm Hash digest
SHA256 171789f99cf68973ab997928bb067bf17b45d2fb452b9083ed471fbdb5d65343
MD5 22bf5c96e6108339e6b651d31b58b51b
BLAKE2b-256 83bbba6690191588c2c342a90f9d7bb4362466e3c7c307ed239036b9c59d0636

See more details on using hashes here.

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

Hashes for rpa_arc-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6004b8c8176f681d4465cf640885673cde4a6488ef18ef8aa4eebd502416ea9
MD5 9ff2e71d81e700a1e720295d8eb09837
BLAKE2b-256 b172643a4844c26347703226e2ff58c836e69947677b5dfdef88abc6a88bef44

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