Trilha Especialização: Automação & Ferramentas CLI com Python
Do Módulo 0 ao Projeto Final: Typer, Rich, pandas, openpyxl, httpx, SQLite/Postgres, asyncio, Playwright, Arquitetura Hexagonal, Idempotência, pipx, Cron e Automação com IA.
Módulo 0 — Ambiente Profissional
Terminal, Linux/Windows/WSL, Python, venv, pyproject.toml e estrutura inicial.
Módulo 1 — Fundamentos de Terminal e Shell
Caminhos, permissões, stdin/stdout/stderr, exit codes, pipes e redirecionamentos.
1.1 Pipes, Redirecionamento & Exit Codes
Conecte a saída padrão (stdout) de um comando à entrada padrão (stdin) do próximo comando mantendo códigos de saída previsíveis.
1.2 Projeto: Pipeline para Processar Arquivos de Texto
Construa o pipeline: gerar-relatorio --formato csv | validar-dados | salvar-relatorio.
Módulo 2 — Scripts de Automação com Python
pathlib, logging, type hints, tratamento de exceções, JSON e CSV.
2.1 Manipulação Moderna de Arquivos com pathlib
Substitua os.path por pathlib.Path para leitura, escrita e verificação de arquivos multiplataforma com codificação UTF-8.
2.2 Projeto: Organizador Seguro de Arquivos
Crie script que varre diretórios e organiza arquivos por extensão com tratamento defensivo de erros e logs.
Módulo 3 — Design de Ferramentas CLI
Anatomia CLI, subcomandos, opções, flags, convenções Unix e saídas humano/máquina.
3.1 Anatomia & Saídas Legíveis por Humanos e Máquinas
Separe saídas visuais coloridas para humanos no console de saídas brutas em JSON/CSV adequadas para pipes.
3.2 Projeto: Especificação Completa de uma CLI Operacional
Especifique os subcomandos operacao importar, relatorio e status com flags legíveis.
Módulo 4 — Construção com Typer
Typer, Comandos, Subcomandos, Validação por Tipos, Prompts e Autocomplete.
4.1 Typer & Type Hints como Definidores de Interface
Typer utiliza anotadores do Python (float, int, Path, bool) para gerar parser de argumentos, mensagens de ajuda e autocompletar.
4.2 Projeto: CLI para Acompanhar Demanda Diária de Separação
Implemente o comando typer.Typer() calcular com parâmetros de peso e limite diário em kg.
Módulo 5 — Automação de Arquivos e Diretórios
Globs, Hashes SHA256, Duplicados, Arquivos Temporários, --dry-run e Rollback.
5.1 Operações Reversíveis & Modo --dry-run
Sempre ofereça a flag --dry-run para simular e exibir todas as modificações em disco antes de alterar arquivos reais.
5.2 Projeto: Organizador com Pré-Visualização e Rollback
Gere um log transacional JSON de movimentações permitindo reverter completamente a operação em caso de falha.
Módulo 6 — Automação de CSV, Excel e Dados
CSV, TSV, openpyxl, pandas, limpeza, validação de colunas e CSV Formula Injection.
6.1 Processamento com pandas/openpyxl & Prevenção de Formula Injection
Sanitize campos iniciados por =, +, - ou @ para evitar a execução inadvertida de fórmulas maliciosas em planilhas Excel.
6.2 Projeto: Importar Planilhas de Demanda e Gerar Relatório Consolidado
Leia arquivos .xlsx via pandas, trate valores ausentes, remova duplicidades e gere relatório resumido em Excel.
Módulo 7 — Integração com APIs
HTTP com httpx, Autenticação, Paginação, Rate Limits, Retry Backoff e Cache Local.
7.1 Resiliência HTTP com httpx & Retentativas com Backoff
Utilize httpx para suporte síncrono/assíncrono com timeouts rígidos e retentativas automáticas sob respostas 429/5xx.
7.2 Projeto: CLI que Consulta uma API e Exporta Resultados
Desenvolva ferramenta CLI que consulta dados paginados em API remota e exporta relatórios formatados.
Módulo 8 — Bancos de Dados em Automações
SQLite, PostgreSQL, Transações, Queries Parametrizadas, Migrations e Audit Trails.
8.1 SQLite Embeddable & Consultas Parametrizadas
SQLite é ideal para salvar estados locais e histórico de execuções da CLI sem necessidade de servidor externo.
8.2 Projeto: Histórico Local das Demandas Processadas
Persista todas as chamadas da CLI em tabela SQLite com timestamp, usuário, total de itens e status de sucesso.
Módulo 9 — Processos e Integração com o Sistema
subprocess, capture_output, timeouts, sinais, shell=False e Command Injection.
9.1 Subprocess Seguro & Prevenção de Command Injection
Passe argumentos como lista de strings (["git", "status"]) com shell=False para impedir injeção de comandos arbitrários pelo SO.
9.2 Projeto: Ferramenta de Diagnóstico do Ambiente
Inspeccione versões do Git, Docker e Python executando comandos via subprocess com tratamento de timeout.
Módulo 10 — Assincronismo e Concorrência
asyncio, httpx.AsyncClient, limitação de concorrência com Semáforo e Filas.
10.1 Concorrência Assíncrona com asyncio.Semaphore
Utilize asyncio.Semaphore(10) para disparar centenas de requisições de rede sem estourar limites de conexões simultâneas.
10.2 Projeto: Consultar Múltiplas APIs com Concorrência Limitada
Implemente script async que consome múltiplas APIs em paralelo agregando respostas com asyncio.gather.
Módulo 11 — Configuração, Segredos e Credenciais
Prioridade de Configurações, .env, Pydantic BaseSettings e Sanitização de Logs.
11.1 Pydantic Settings & Mascaramento de Dados
Carregue configurações via pydantic-settings garantindo validação de tipos e mascaramento de tokens em saídas.
11.2 Projeto: Sistema Seguro de Configuração da CLI
Implemente resolução de configurações por ordem de precedência: flags de linha de comando substituem variáveis de ambiente.
Módulo 12 — Confiabilidade e Idempotência
Operações Idempotentes, Checkpoints, Atomic Writes, Locks e Rollbacks.
12.1 Escrita Atômica & Deduplicação por Hash
Escreva atualizações em arquivo temporário (.tmp) e realize renomeação atômica (replace) para evitar arquivos corrompidos.
12.2 Projeto: Importação que Pode Ser Executada Novamente sem Duplicar
Crie importador de demandas que ignora linhas já processadas em execuções anteriores.
Módulo 13 — Logging e Observabilidade
Logging Estruturado em JSON, Log Levels, Console vs Arquivo e Métricas de Duração.
13.1 Logging Estruturado com Structlog / Rich
Emita logs coloridos no console para desenvolvedores e logs JSON estruturados com timestamps em arquivo para auditoria.
13.2 Projeto: Relatório Técnico de Cada Execução
Gere um resumo ao fim de cada execução contendo contagem de sucessos, erros e tempo total em milissegundos.
Módulo 14 — Testes de Automações e CLIs
pytest, CliRunner, Fixtures de Arquivos Temporários, Mocks e Exit Code Assertions.
14.1 Testando Interfaces CLI com Typer CliRunner & pytest
Utilize typer.testing.CliRunner para executar comandos simulados e validar saídas e códigos de retorno 0 ou 1.
14.2 Projeto: Suíte Completa de Testes da Automação
Escreva testes automatizados cobrindo importação de arquivos temporários, tratamento de exceções e flags --dry-run.
Módulo 15 — Distribuição e Instalação
pyproject.toml Entry Points, pipx, Wheels, Versionamento Semântico e PyPI.
15.1 Empacotamento Python & Instalação com pipx
Configure [project.scripts] no pyproject.toml para gerar binários executáveis isolados via pipx install.
15.2 Projeto: Transformar o Script em Ferramenta Instalável
Empacote a ferramenta CLI gerando arquivo .whl instalável via pipx com comando logistica disposta no PATH.
Módulo 16 — Agendamento e Execução Automática
Cron, Systemd Timers, GitHub Actions, Docker agendado e Prevenção de Sobreposição.
16.1 Cron Jobs & GitHub Actions Workflows
Configure rotinas agendadas usando sintaxe cron no Linux ou GitHub Actions com alertas de falhas via webhook.
16.2 Projeto: Relatório Diário Automatizado
Monte rotina agendada diária com verificação de lock em disco para evitar execuções simultâneas sobrepostas.
Módulo 17 — Automação com Navegador (Playwright)
Playwright Python, Seletores, Downloads, Headless Browser, Sessões e Screenshots.
17.1 Web Scraping & Automação Web com Playwright
Utilize Playwright para preenchimento de formulários Web, uploads de arquivos e download de relatórios em modo headless.
17.2 Projeto: Automação de um Fluxo Permitido em Sistema de Teste
Desenvolva script Playwright que realiza login, aguarda carregamento de tabela e exporta captura de tela de validação.
Módulo 18 — Automação com Inteligência Artificial
Saídas Estruturadas Pydantic, Prompts Versionados, Human-in-the-Loop e Fallbacks.
18.1 Saídas JSON Estruturadas & Guardrails de IA
Exija saídas estritas validadas por schemas Pydantic ao enviar dados não estruturados para modelos de linguagem.
18.2 Projeto: Classificador de Ocorrências com Revisão Humana
Classifique divergências logísticas com IA e direcione apenas itens com confiança < 90% para fila de validação humana.
Módulo 19 — Arquitetura de Automações (Ports & Adapters)
Hexagonal Architecture, Separação de Regras de Negócio e CLI, Injeção de Dependências.
19.1 Arquitetura Hexagonal em Scripts Python
Separe o código em src/cli, src/domain e src/adapters (files, db, api) tornando a regra de negócio testável sem a CLI.
19.2 Projeto: Refatorar a Ferramenta Sem Alterar Seu Comportamento Externo
Reestruture a aplicação em módulos Hexagonais garantindo que todas as opções e comandos externos permaneçam idênticos.
Módulo 20 — Segurança Ofensiva e Defensiva da CLI
Threat Modeling, Path Traversal, Symlink Attacks, Permissões e Supply Chain.
20.1 Path Traversal, Symlink Attacks & Permissões Defensivas
Valide caminhos com Path.resolve() para impedir que entradas maliciosas como ../../etc/passwd acessem arquivos fora do escopo.
20.2 Projeto: Revisão de Segurança e Plano de Correção
Realize auditoria de código buscando vazamentos de credenciais em logs e permissões excessivas de escrita.
Módulo 21 — Transformando Automação em Produto
Avaliação de Impacto Econômico, Script vs Micro-SaaS, Multi-tenancy e Precificação.
21.1 Viabilidade Financeira & De Script Interno a Produto SaaS
Calcule o valor econômico da automação: Frequência x Tempo Economizado x Custo/Hora. Decida quando evoluir uma CLI para um Micro-SaaS.
21.2 Projeto: Transformar uma Automação Operacional em Proposta de Micro-SaaS
Elabore proposta comercial de produto definindo precificação por volume de demandas processadas e modelo de licença.
Módulo 22 — Projeto Final: CLI de Automação Logística
Construção da CLI de Automação de Demandas Logísticas integrando todos os 22 módulos anteriores.
22.1 Projeto Final: CLI de Automação de Demandas Logísticas
Aprenda requisitos integrados da cli logística com conceitos práticos e exercícios aplicados.