v0.7.0
v0.7.0 — Fontes para o SCI
5 novas fontes de dados, aliases de produto, landing page e 529 testes.
Novos módulos
| Módulo | Fonte | Dados |
|---|---|---|
| agrobr.inmet | INMET | Dados climáticos por estação + agregado mensal por UF |
| agrobr.bcb | BCB/SICOR | Crédito rural por cultura, UF, safra, finalidade |
| agrobr.comexstat | ComexStat/SECEX | Exportações agrícolas por NCM, UF, mês |
| agrobr.anda | ANDA | Entregas de fertilizantes por UF/mês (PDF/Excel) |
| agrobr.conab.custo_producao | CONAB | Custos de produção por cultura, UF, safra |
Novos recursos
- MetaInfo proveniência — attempted_sources, selected_source, fetch_timestamp, schema_version em todas as fontes
- Aliases de produto — 70+ aliases (EN/PT/acentos): resolve_alias("soybean") → "soja"
- Sync wrappers genéricos — agrobr.sync suporta todos os 8 módulos com lazy loading
- Landing page — agrobr.dev com landing page + MkDocs em /docs/
Instalação
pip install agrobr # core (7 fontes sem ANDA)
pip install agrobr[pdf] # + ANDA (pdfplumber)
pip install agrobr[all] # tudo incluindo polars, browser, pdf, dev, docs
Exemplo rápido
from agrobr import inmet, bcb, comexstat, anda, conab
df_clima = await inmet.clima_uf("MT", ano=2024)
df_credito = await bcb.credito_rural("soja", safra="2024/25")
df_export = await comexstat.exportacao("soja", ano=2024)
df_fert = await anda.entregas(ano=2024, uf="MT")
df_custo = await conab.custo_producao("soja", uf="MT")
Documentação
- https://agrobr.dev/docs/guides/async/ — Jupyter, FastAPI, script, Airflow
- https://agrobr.dev/docs/contracts/semver/ — contratos por dataset
- https://agrobr.dev/docs/guides/dependencies/ — core vs optional vs dev
- Docs por fonte: https://agrobr.dev/docs/sources/inmet/ · https://agrobr.dev/docs/sources/bcb/ · https://agrobr.dev/docs/sources/comexstat/ · https://agrobr.dev/docs/sources/anda/
Qualidade
- 529 testes passando (2 skipped, 0 failed)
- ruff limpo (0 warnings)
- Pipeline exemplo: examples/pipeline_v07.py
Breaking changes
Nenhum. Todas as APIs existentes (cepea, conab, ibge, datasets) permanecem inalteradas.