Skip to content

Commit e706e56

Browse files
committed
bcf - option to provide snapshot filename + save warnings #4453
Example warning: WARNING. Snapshot with viewpoint guid '6aff8c6e-216c-48c9-8120-3101816def3e' won't be saved to bcf. Only snapshot data (VisualizationInfoHandler.snapshot) is provided and snapshot filename (ViewPoint.snapshot) is missing.
1 parent 526a2a6 commit e706e56

4 files changed

Lines changed: 26 additions & 2 deletions

File tree

src/bcf/bcf/v2/topic.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,13 @@ def add_viewpoint_from_point_and_guids(
293293
self.add_visinfo_handler(vi_handler)
294294
return vi_handler
295295

296-
def add_visinfo_handler(self, new_viewpoint: VisualizationInfoHandler) -> mdl.ViewPoint:
296+
def add_visinfo_handler(
297+
self, new_viewpoint: VisualizationInfoHandler, snapshot_filename: Optional[str] = None
298+
) -> mdl.ViewPoint:
297299
self.viewpoints[new_viewpoint.guid + ".bcfv"] = new_viewpoint
298300
viewpoint = mdl.ViewPoint(
299301
viewpoint=new_viewpoint.guid + ".bcfv",
302+
snapshot=snapshot_filename,
300303
guid=new_viewpoint.guid,
301304
)
302305
self.markup.viewpoints.append(viewpoint)

src/bcf/bcf/v2/visinfo.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,15 @@ def save(
134134
self._save_bitmaps(bcf_zip, topic_dir)
135135

136136
def _save_snapshot(self, bcf_zip: ZipFileInterface, topic_dir: str, filename: Optional[str]) -> None:
137+
if bool(self.snapshot) ^ bool(filename):
138+
data = ["data (VisualizationInfoHandler.snapshot)", "filename (ViewPoint.snapshot)"]
139+
provided_data, missing_data = data if self.snapshot else data[::-1]
140+
print(
141+
f"WARNING. Snapshot with viewpoint guid '{self.guid}' won't be saved to bcf. "
142+
f"Only snapshot {provided_data} is provided but snapshot {missing_data} is missing."
143+
)
144+
return
145+
137146
if self.snapshot and filename:
138147
bcf_zip.writestr(f"{topic_dir}/{filename}", self.snapshot)
139148

src/bcf/bcf/v3/topic.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,12 +191,15 @@ def add_viewpoint_from_point_and_guids(
191191
self.add_visinfo_handler(vi_handler)
192192
return vi_handler
193193

194-
def add_visinfo_handler(self, new_viewpoint: VisualizationInfoHandler) -> mdl.ViewPoint:
194+
def add_visinfo_handler(
195+
self, new_viewpoint: VisualizationInfoHandler, snapshot_filename: Optional[str] = None
196+
) -> mdl.ViewPoint:
195197
self.viewpoints[new_viewpoint.guid + ".bcfv"] = new_viewpoint
196198
if self.topic.viewpoints is None:
197199
self.topic.viewpoints = mdl.TopicViewpoints()
198200
viewpoint = mdl.ViewPoint(
199201
viewpoint=new_viewpoint.guid + ".bcfv",
202+
snapshot=snapshot_filename,
200203
guid=new_viewpoint.guid,
201204
)
202205
self.topic.viewpoints.view_point.append(viewpoint)

src/bcf/bcf/v3/visinfo.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,15 @@ def save(
133133
self._save_bitmaps(bcf_zip, topic_dir)
134134

135135
def _save_snapshot(self, bcf_zip: ZipFileInterface, topic_dir: str, filename: Optional[str]) -> None:
136+
if bool(self.snapshot) ^ bool(filename):
137+
data = ["data (VisualizationInfoHandler.snapshot)", "filename (ViewPoint.snapshot)"]
138+
provided_data, missing_data = data if self.snapshot else data[::-1]
139+
print(
140+
f"WARNING. Snapshot with viewpoint guid '{self.guid}' won't be saved to bcf. "
141+
f"Only snapshot {provided_data} is provided but snapshot {missing_data} is missing."
142+
)
143+
return
144+
136145
if self.snapshot and filename:
137146
bcf_zip.writestr(f"{topic_dir}/{filename}", self.snapshot)
138147

0 commit comments

Comments
 (0)