Welcome to canml’s documentation!

canml icon

canml is a toolkit for streamlined in-memory and on-disk processing of CAN bus logs in BLF format, leveraging pandas and cantools.

Features at a glance

  • DBC management: Merge one or more DBC files with optional signal-name prefixing.

  • Streaming BLF decoding: Efficient chunked reads for large logs via iter_blf_chunks().

  • Full-file BLF loading: One-call load with filtering, uniform timing, and missing-signal injection.

  • Incremental CSV & Parquet export: Write large datasets without exhausting memory.

  • Built-in logging & progress bars via Python logging and tqdm.

Installation

pip install canml

Quickstart

from canml.canmlio import load_dbc_files, load_blf, to_csv, to_parquet

# Merge DBCs
db = load_dbc_files(['veh1.dbc', 'veh2.dbc'], prefix_signals=True)

# Load BLF file
df = load_blf('log.blf', db, force_uniform_timing=True, interval_seconds=0.01)

# Export
to_csv(df, 'out.csv')
to_parquet(df, 'out.parquet')

Contents

Indices and tables