Skip to main content

A Python library to work with bag files without ROS.

Project description

pybag

A Python library to work with bag files (MCAP format) without ROS.

[!Warning] The library is still in the early stages of development and the API is still unstable

Installation

# Add dependency to your package
uv add pybag-sdk

# Install pybag cli
uv tool install pybag-sdk

Quick Start

# Get file information
pybag info data.mcap

# Filter messages
pybag filter data.mcap -o output.mcap --include-topic /camera

# Merge multiple files
pybag merge input1.mcap input2.mcap -o output.mcap

Reading MCAP Files

from pybag.mcap_reader import McapFileReader

with McapFileReader.from_file("data.mcap") as reader:
    for msg in reader.messages("/camera"):
        print(msg.log_time, msg.data)

Writing MCAP Files

from pybag.mcap_writer import McapFileWriter
from pybag.ros2.humble import std_msgs

with McapFileWriter.open("output.mcap") as writer:
    log_time_ns = 1000
    msg = std_msgs.String(data="hello")
    writer.write_message("/status", log_time_ns, msg)

Custom Messages

from dataclasses import dataclass
import pybag

@dataclass
class SensorData:
    __msg_name__ = 'custom/msg/SensorData'
    temperature: pybag.float32
    humidity: pybag.float32

with McapFileWriter.open("sensors.mcap") as writer:
    writer.write_message("/sensor", 1000, SensorData(25.5, 60.0))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybag_sdk-0.7.0.tar.gz (166.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybag_sdk-0.7.0-py3-none-any.whl (75.0 kB view details)

Uploaded Python 3

File details

Details for the file pybag_sdk-0.7.0.tar.gz.

File metadata

  • Download URL: pybag_sdk-0.7.0.tar.gz
  • Upload date:
  • Size: 166.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pybag_sdk-0.7.0.tar.gz
Algorithm Hash digest
SHA256 b28dcb9c6d9468793ddd3566b4e477ea801f96536756c0b62f79ad4804f82da3
MD5 2bd043d61394d6f704f012d2baf0f646
BLAKE2b-256 e86a30b34a1f21e68d84d2731698380fff76eea641ce0c19d70c89b55e51de87

See more details on using hashes here.

File details

Details for the file pybag_sdk-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: pybag_sdk-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pybag_sdk-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f3beb7d72347acdf8354502d8cf48b73e7f36dda8e1b38371665404827da282
MD5 6f011cae5898117488a09b1a6029ad15
BLAKE2b-256 d6292f05d3135ad7e6e6c22d738e35107a01b218569649394875d284bc199790

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page