Skip to main content

omnisus

Importa bases públicas de saúde do Brasil (DATASUS, IBGE, CNES) para um lake DuckLake, no seu computador, no Google Drive ou na nuvem, com a procedência necessária para citar cada resultado.

Brazilian public health data (DATASUS, IBGE, CNES) in a DuckLake lake (on your computer, on Google Drive or in the cloud), with the provenance needed to cite it. Documentation: https://raphaelfh.github.io/omnisus/.

Instalação

Python 3.12 ou mais novo, com o uv:

uv add omnisus          # num projeto uv
uv pip install omnisus  # num ambiente virtual já criado

No Colab, !uv pip install -q omnisus. Sem uv, pip install omnisus. Para atualizar, uv pip install -U omnisus, ou uv sync --upgrade-package omnisus num projeto.

Em Linux x86_64, macOS (arm64/x86_64) e Windows x86_64 isso instala também o decodificador Rust omnisus-dbf. Nas demais plataformas, o Python decodifica os mesmos arquivos.

Início rápido

Sem instalar nada:

Abrir no Colab Open in molab

O Colab baixa os óbitos de Roraima em 2023, põe rótulos, confere as colunas e imprime a citação, com o lake opcionalmente no seu Google Drive. O molab abre os notebooks marimo de cada base. Outros caminhos (marimo no seu computador, Jupyter) estão em Comece aqui.

Em Python:

import omnisus as sus

dados = sus.load("sim_obitos", years=[2023], ufs=["RR"])             # baixa e devolve as linhas
dados = sus.label("sim_obitos", dados, columns=["sexo", "racacor"])  # + sexo_rotulo, racacor_rotulo
sus.check_columns("sim_obitos", dados)                               # vazios, códigos sem rótulo, datas

O lake fica em data/raw/ no diretório de trabalho, e um segundo load do mesmo recorte não baixa nada. Toda função documenta seus parâmetros com um exemplo: help(sus.load).

Para ir além:

  • Guia do pesquisador: qual base responde a cada pergunta, o que um registro representa e como citar.
  • Notebooks: um por base, com as mesmas seis etapas, que abrem no navegador pelo molab.
  • Getting Started: onde fica o lake, Colab, linha de comando e lakes na nuvem.
  • Bases e argumentos: cada base, com o que passar em years, ufs e months e quais colunas têm rótulo. É gerada do código a cada versão, como a API; help(sus.load) mostra o mesmo na versão instalada.

Confira antes de usar

  • Contagens. Compare o total de linhas com o que o DATASUS publica (TabNet, painéis oficiais) antes de analisar. sus.check_columns mostra, por coluna, a proporção de vazios, os códigos que o dicionário não conhece e as datas mínima e máxima.

  • Rótulos. Um código que o dicionário não conhece fica sem rótulo (None); ele nunca é adivinhado. Cada mapa de códigos diz se foi conferido no documento oficial:

    campo = next(f for f in sus.describe_dataset("sim_obitos")["fields"]
                 if f["field"]["name"] == "sexo")
    [(c["status"], c["evidence"]) for c in campo["claims"] if c["target"] == "/field/codes"]
    # status: verified_in_source, conflicting ou unreviewed; evidence: documento e página
    

    Só use um rótulo unreviewed ou conflicting depois de conferir o documento você mesmo.

  • Escopo das regras. Idade em anos, sexo e datas harmonizados só aparecem para os arquivos cujo SHA-256 foi auditado (describe_dataset(...)["analytics"]); os outros saem como publicados.

De onde vêm os dados e os rótulos

O que Onde
Arquivo de origem de cada linha importada reader.publications() e sus.cite(reader) num sus.LakeReader(): caminho no servidor, SHA-256, snapshot_id
Diretório do FTP de cada base Bases e argumentos
Dicionários (de-para de códigos, descrições, tipos) src/omnisus/data/dicionarios/<base>.yaml, campo x-decode
Documentos oficiais citados (PDF, TabWin), com URL e SHA-256 src/omnisus/data/dicionarios/sources/registry.json
Tabelas CNV do TabWin de onde saem muitos rótulos src/omnisus/data/dicionarios/sources/cnv/
Auditorias que sustentam as regras (contagens, hashes, reprodução) evidence/

O dicionário de dados explica como ler esses arquivos e como conferir um rótulo.

Como contribuir

Leia o CONTRIBUTING.md. Em resumo: todo fato no código ou na documentação vem do servidor do DATASUS ou de um arquivo com SHA-256 registrado, todo teste roda sobre trechos de arquivos reais, e o repositório é público. Um rótulo errado, uma base que falta ou uma contagem que não bate com o DATASUS são boas primeiras issues.

Licença

MIT.

Metadata

Release files for omnisus 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omnisus 0.2.1
File Size Uploaded
omnisus-0.2.1.tar.gz 762.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omnisus 0.2.1
File Interpreter ABI Platform
omnisus-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / omnisus-0.2.1.tar.gz

Download URL omnisus-0.2.1.tar.gz
Size 762.0 kB
Tags Source
SHA-256 checksum
How to use checksums
365b4fb5b4c5a697f5b0519830481d32bb2c95b966c94c58365ea76fc7a37346
BLAKE2b-256 checksum
How to use checksums
aaaea38d38976600d9aac5bc744226a8251fcaebdbe5896ccb88722f30b07e85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / omnisus-0.2.1-py3-none-any.whl

Download URL omnisus-0.2.1-py3-none-any.whl
Size 938.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a5dc50f03bc9fc051e84a0f0ab3c32675d24e135a70565409f5beb215eb88f5
BLAKE2b-256 checksum
How to use checksums
ee7e2f5b2352fcf324f38d4b820d20a249b838db4e46968c7b89d1c266aed7db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page