Skip to content

Commit 7ec26b2

Browse files
committed
refactor: changing expected format of force curve data to be a unified dataclass
1 parent 2b35c67 commit 7ec26b2

3 files changed

Lines changed: 9 additions & 19 deletions

File tree

src/napari_topostats/_plotting.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -244,19 +244,19 @@ def _process_event_coords(self, viewer, event):
244244

245245
curve_num = shape_x * self.y_coord + self.x_coord
246246

247-
all_curve_data = layer.metadata["force_curves"]
248-
self.channels_units = layer.metadata["force_curves_units"]
249-
raw_metadata = layer.metadata["force_curves_meta"]
247+
curves_data = layer.metadata["force_curves"]
248+
raw_metadata = curves_data.metadata
249+
self.channels_units = raw_metadata.channel_units
250250
try:
251251
self.metadata = {
252-
"global": raw_metadata["top_level"],
253-
f"curve_{curve_num}": raw_metadata["curves"][self.y_coord][self.x_coord],
254-
f"curve_{curve_num}_approach": raw_metadata["segments"][self.y_coord][self.x_coord][0],
255-
f"curve_{curve_num}_retract": raw_metadata["segments"][self.y_coord][self.x_coord][1],
252+
"global": raw_metadata.toplevel,
253+
f"curve_{curve_num}": raw_metadata[self.y_coord, self.x_coord],
254+
f"curve_{curve_num}_approach": raw_metadata[self.y_coord, self.x_coord, 0],
255+
f"curve_{curve_num}_retract": raw_metadata[self.y_coord, self.x_coord, 1],
256256
}
257257
if self.parameter_dialog is not None:
258258
self.parameter_dialog.populate_parameters(self.metadata)
259-
curve_dict = all_curve_data[self.y_coord][self.x_coord]
259+
curve_dict = curves_data.get_default_volume()[self.y_coord, self.x_coord]
260260
self.set_available_channels(curve_dict.keys())
261261
self.update_curve(curve_dict)
262262
except IndexError:

src/napari_topostats/_widget_function.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,8 +536,6 @@ def _func():
536536
return construct_error_args(
537537
exception=e, raise_exception=True, topostats_error=True, type_class=self.type_class
538538
)
539-
if isinstance(result, dict) and "message" in result and "exception" in result:
540-
return result
541539
return (result, metadata)
542540

543541
def _handle_result(result):

src/napari_topostats/utils.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -270,16 +270,8 @@ def all_curves(
270270
if hasattr(curves, "dims"):
271271
shape_y = curves.dims[0]
272272
shape_x = curves.dims[1] if len(curves.dims) > 1 else 1
273-
elif isinstance(curves[0], list):
274-
shape_x = len(curves[0])
275-
shape_y = len(curves)
276273
else:
277-
shape_x = len(curves)
278-
shape_y = 1
279-
280-
if isinstance(curves[0], list):
281-
# If curves is a list of lists, flatten it.
282-
curves = [item for sublist in curves for item in sublist]
274+
raise ValueError("Curves must be of the CurvesDataset type defined by AFMReader.")
283275

284276
image_map = [[None for _ in range(shape_x)] for _ in range(shape_y)]
285277

0 commit comments

Comments
 (0)