agrobr v0.12.0
agrobr v0.12.0 — Auditoria de Segurança, PEVS, Censo 1985 & PIB Agro
Maior release até agora: 24 correções de segurança de uma auditoria completa, 4 novas fontes IBGE, dados censitários históricos desde 1920 e dados municipais de 1985 extraídos via OCR.
Auditoria de Segurança — 24 issues resolvidos
Auditoria completa pip-audit + openssl s_client. Destaques:
- Path traversal em snapshots —
shutil.rmtreecom input não sanitizado permitia deletar diretórios arbitrários - TLS hardening — removido
verify=Falsedesnecessário (B3, SICAR) após confirmar certificados válidos; caso justificado documentado (ComexStat/SERPRO) - JS injection no browser headless CONAB — URL sanitizada via
json.dumps() - SQL injection no BCB BigQuery — f-strings substituídas por sanitização via regex whitelist
- Exception handling —
except Exceptionsubstituído por catches específicos em IBGE, B3, CEPEA (bugs não são mais engolidos silenciosamente) - Rate limiting — integrado ao
retry_on_status(), 32 call sites em 21 clients agora com rate limiting automático - Scrubbing de dados sensíveis — processador structlog redacta API keys, tokens e passwords nos logs
- Auto-discovery de contratos — imports por side-effect substituídos por
pkgutilauto-discovery
Novas Fontes
IBGE PEVS — Silvicultura & Extração Vegetal
df = await ibge.silvicultura("madeira_tora", uf="PR") # 14 produtos
df = await ibge.silvicultura("eucalipto", variavel="area") # área plantada (tab 5930)
df = await ibge.extracao_vegetal("acai", nivel="municipio") # 21 produtosIBGE Leite Trimestral
df = await ibge.leite_trimestral(uf="MG") # formato wide: adquirido, industrializado, preço médioIBGE PIB Agro
df = await ibge.pib_agro(precos="corrente", setor="agropecuaria")Censo Agropecuário Série Histórica (1920-2006)
df = await ibge.censo_agro_historico("uso_terra", ano=1985, uf="SP") # 9 temas, nível UFCenso Agropecuário Municipal 1985 — Melhoria de Qualidade OCR
- 525 valores corrigidos por column bleed (remoção de dígitos vazados de colunas adjacentes)
- Labels OCR corrigidos — erros sistemáticos D→O
- Tolerância adaptativa — tabelas esparsas não são mais penalizadas
- Distribuição de confiança: alta 5.4%→25.4%, média 62.0%→65.3%, baixa 32.6%→9.3%
Performance
- Suite de testes 58% mais rápida — 102s → 43s
- Backoff de retry mockado nos testes (0.001s), benchmarks excluídos por default
- Golden test ANP diesel (12s de parse xlsx) marcado como
@pytest.mark.slow
Qualidade
- 3 novos contratos + schemas JSON (silvicultura, extrativismo_vegetal, leite_industrial)
- 4 novas cache policies (TTL 7d / stale 90d)
- Golden data de chamadas reais ao SIDRA para as 4 novas fontes
- Contrato IBGE LSPA registrado (era dead code)
- Schema órfão
antaq_movimentacao.jsonremovido - Validação de colunas DATETIME adicionada ao sistema de contratos
- ~150 novos testes
Instalar
pip install agrobr==0.12.0Changelog completo: https://github.com/bruno-portfolio/agrobr/blob/main/CHANGELOG.md