Tutorials
Jupyter notebooks with usage examples are available in the source repository:
Quick Start
Simplified Database Functions
from pysus import sinan, sinasc, sim, sih, sia, pni, ibge, cnes, ciha
# Download SINAN Dengue data
df = sinan(disease="deng", year=2000)
# Multiple years
df = sinan(disease="deng", year=[2023, 2024])
# SINASC births for São Paulo
df = sinasc(state="SP", year=[2020, 2021, 2022, 2023])
# SIM mortality data
df = sim(state="SP", year=2024)
# SIH hospitalizations with month filter
df = sih(state="SP", year=2024, month=[1, 2, 3])
# CNES health facilities
df = cnes(state="SP", year=2024, month=1)
Listing Available Files
from pysus import list_files
list_files("SINAN")
Using the PySUS Client
from pysus import PySUS
async def main():
async with PySUS() as pysus:
# Query DuckLake catalog
files = await pysus.query(
dataset="sinan",
group="DENG",
state="SP",
year=2024,
)
# Download files
for f in files:
local = await pysus.download(f)
print(local.path)
# Read multiple parquet files
import glob
paths = glob.glob("/cache/sinan/**/*.parquet")
df = pysus.read_parquet(paths, mode="union").df()
read_parquet Modes
# Union (default) - all columns from any file
df = pysus.read_parquet(paths, mode="union").df()
# Intersection - only common columns across all files
df = pysus.read_parquet(paths, mode="intersection").df()
# Strict - raises error if schemas don't match
df = pysus.read_parquet(paths, mode="strict").df()
# With custom SQL filter
df = pysus.read_parquet(paths, sql="SELECT * WHERE column > 100").df()
Terminal User Interface (TUI)
pysus tui -l pt
Or from Python:
from pysus.tui.app import PySUS
app = PySUS(lang="pt")
app.run()