Obrigada por considerar contribuir! Este projeto é MIT open source —
todo o engine de extração de dados (pipelines/lakebrasil/) é livre
pra qualquer um usar, self-hospedar, comercializar, ou forkar.
- Novas pipelines (
pipelines/lakebrasil/pipelines/*.py) — qualquer dataset público brasileiro com granularidade município (ou que dê pra agregar) - Bug fixes em pipelines existentes (encoding, separator, schema drift)
- Melhorias de performance (paralelização, streaming, push-down filters)
- Schema docs — completar docstring de pipelines com fonte/cobertura/caveats
- Data quality checks em
pipelines/_dq/ - Reprocessamentos quando algum órgão republica histórico
- Mudanças no schema central
data_br.indicadores_serie(downstream breakage) - Novas dependências Python pesadas (queremos manter o core leve;
use
[extras]se possível) - Pipelines que demandam credenciais privadas
- Mudanças no
lakebrasil/loaders/iceberg.py(catalog config)
- Web scraping de fontes que proíbem em ToS
- Datasets que violam LGPD (PII sem anonimização)
- Código que injeta telemetria/tracking sem opt-in explícito
# 1. Clone
git clone https://github.com/lakebrasil/data-br
cd data-br
# 2. Setup Python env
python3 -m venv .venv && source .venv/bin/activate
pip install -e pipelines/
# 3. Roda um pipeline local em dry-run (vai pra duckdb, não Iceberg)
cd pipelines
lakebrasil run anp_precos --dry-run --no-fetchPra escrever uma pipeline nova, copie o template mais próximo:
- CSV mensal/anual por município (SIAFI) →
bpc.pyoubolsa_familia.py - SIDRA IBGE com agregação →
pam.pyouppm.py - XLSX multi-sheet →
sinisa.pyoumec_ed_superior.py - Shapefile/GeoJSON →
inpe.py - API REST direta →
bacen.py
- Sem secrets em commits — use env vars (
AWS_*,ICEBERG_WAREHOUSE, tokens) - Sem account IDs hardcoded —
arn:aws:s3tables:...:bucket/...vem de env - **fonte
em snake_case** ('rais','bpc','mec_es'`) indicador_id='<fonte>.<descritor>'(ex:'rais.vinculos_ativos')ibge_codesempre 7-dígitos — usaco6_to_ibgemap se source vem com 6- Stream parse pra CSVs > 100MB — evita pandas/RAM
- Stderr
-uunbuffered pra logs visíveis em backgrounds loaded_triples(fonte=...)push-down filter — não scan a tabela inteira- Validação em dry-run com
--dry-run(DuckDB local) antes de Iceberg
- Fork + branch
feat/<source>oufix/<bug-num> - Inclua docstring rica no topo da pipeline:
- Source URL oficial
- Schema esperado das colunas usadas
- Cobertura (anos, municípios)
- Caveats conhecidos (ex: SIDRA flaky, separator quirks)
- Dry-run validado localmente — comente no PR os números (rows, munis, indicadores únicos)
- Commit message seguindo o padrão dos commits existentes:
feat(<fonte>): descrição curtafix(<fonte>): bug específicodocs(<fonte>): caveat / cobertura
- PR pra
main— review focado em: correção schema, performance, secrets.
Se você notar valor errado/faltante (ex: município X com população 0):
- Abra issue com label
data-quality - Inclua:
fonte,indicador_id,periodo, valor esperado vs observado - Cite a fonte oficial cruzada (publicação IBGE/MTE/etc)
Seja gentil. Brazil dev community já é pequena demais. Discordâncias técnicas são bem-vindas; ataques pessoais não são.
Licença: MIT (veja LICENSE). Ao enviar PR você concorda em licenciar sua contribuição sob os mesmos termos.