Skip to content

Commit eb355fd

Browse files
committed
Refactor example to work with latest version of libraries.
This commit refactors the example to work with latest version of the libraries and allows users to walk through this guide without any issues. https://foxglove.dev/blog/visualizing-nuscenes-data-with-foxglove-studio
1 parent 58421f7 commit eb355fd

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

upload_events.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pathlib import Path
66

77
from foxglove_data_platform.client import Client
8-
from mcap.mcap0.reader import make_reader
8+
from mcap.reader import make_reader
99

1010
from sensor_msgs.msg import Imu
1111
from foxglove.SceneUpdate_pb2 import SceneUpdate

upload_mcap.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from pathlib import Path
55

66
from foxglove_data_platform.client import Client
7-
from mcap.mcap0.reader import make_reader
7+
from mcap.reader import make_reader
88
from device_name import make_device_name
99

1010
from tqdm import tqdm
@@ -49,16 +49,24 @@ def main():
4949
for filepath in filepaths:
5050
filename = filepath.name
5151
print(f"checking for previous imports of {filename} ...")
52-
previous_uploads = client.get_imports(filename=filename)
52+
previous_uploads = client.get_recordings(path=filename)
5353
with open(filepath, "rb") as f:
5454
reader = make_reader(f)
5555
scene_info = next(metadata for metadata in reader.iter_metadata() if metadata.name == "scene-info")
5656
device_name = make_device_name(scene_info.metadata)
5757
device_id = device_ids.get(device_name)
5858
if device_id is None:
59-
client.create_device(name=device_name)
59+
try:
60+
client.create_device(name=device_name)
61+
except Exception as e:
62+
# Device might already exist, which is fine
63+
if "already exists" not in str(e):
64+
raise
65+
# Refresh device list to get the device_id (whether newly created or existing)
66+
device_ids = {resp["name"]: resp["id"] for resp in client.get_devices()}
6067
device_id = device_ids.get(device_name)
61-
device_ids[device_name] = device_id
68+
if device_id is None:
69+
raise RuntimeError(f"Failed to create or find device: {device_name}")
6270

6371
f.seek(0)
6472
print(f"uploading {filename} with device name {device_name} ...")

0 commit comments

Comments
 (0)