Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] unhashable type: 'list' #479

Open
alexleffell opened this issue Jul 18, 2024 · 1 comment
Open

[BUG] unhashable type: 'list' #479

alexleffell opened this issue Jul 18, 2024 · 1 comment
Labels
question Further information is requested

Comments

@alexleffell
Copy link

I tried opening a .zarr folder using the napari-ome-zarr plugin but I got the error "unhashable type: 'list'"


MultipleReaderError Traceback (most recent call last)
File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/_qt/qt_viewer.py:966, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={})
965 try:
--> 966 self.viewer.open(
self = <napari._qt.qt_viewer.QtViewer object at 0x7fd94f591550>
self.viewer = Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})
filenames = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
stack = False
plugin = None
layer_type = None
kwargs = {}
967 filenames,
968 stack=stack,
969 plugin=plugin,
970 layer_type=layer_type,
971 **kwargs,
972 )
973 except ReaderPluginError as e:

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:1105, in ViewerModel.open(self=Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}), path=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], stack=False, plugin=None, layer_type=None, **kwargs={})
1103 # no plugin choice was made
1104 else:
-> 1105 layers = self._open_or_raise_error(
layers = <module 'napari.layers' from '/Users/alexleffell/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/init.py'>
self = Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})
_path = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
_stack = False
kwargs = {}
layer_type = None
1106 _path, kwargs, layer_type, _stack
1107 )
1108 added.extend(layers)

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:1225, in ViewerModel._open_or_raise_error(self=Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, mouse_wheel_gen={}, keymap={}), paths=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], kwargs={}, layer_type=None, stack=False)
1223 # multiple plugins
1224 else:
-> 1225 raise MultipleReaderError(
trans = <napari.utils.translations.TranslationBundle object at 0x7fd9609aec70>
path_message = '/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'
readers = {'recOrder-napari': 'recOrder-napari', 'napari': 'napari builtins', 'napari-ome-zarr': 'napari-ome-zarr'}
paths = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
1226 trans.
(
1227 "Multiple plugins found capable of reading {path_message}. Select plugin from {plugins} and pass to reading function e.g. viewer.open(..., plugin=...).",
1228 path_message=path_message,
1229 plugins=readers,
1230 deferred=True,
1231 ),
1232 list(readers.keys()),
1233 paths,
1234 )
1236 return added

MultipleReaderError: Multiple plugins found capable of reading /Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr. Select plugin from {'recOrder-napari': 'recOrder-napari', 'napari': 'napari builtins', 'napari-ome-zarr': 'napari-ome-zarr'} and pass to reading function e.g. viewer.open(..., plugin=...).

During handling of the above exception, another exception occurred:

TypeError Traceback (most recent call last)
File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/_qt/qt_viewer.py:1331, in QtViewer.dropEvent(self=<napari._qt.qt_viewer.QtViewer object>, event=<PyQt6.QtGui.QDropEvent object>)
1328 else:
1329 filenames.append(url.toString())
-> 1331 self._qt_open(
self = <napari._qt.qt_viewer.QtViewer object at 0x7fd94f591550>
filenames = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
shift_down = <KeyboardModifier.NoModifier: 0>
alt_down = <KeyboardModifier.NoModifier: 0>
1332 filenames,
1333 stack=bool(shift_down),
1334 choose_plugin=bool(alt_down),
1335 )

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/_qt/qt_viewer.py:984, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={})
974 handle_gui_reading(
975 filenames,
976 self,
(...)
981 **kwargs,
982 )
983 except MultipleReaderError:
--> 984 handle_gui_reading(filenames, self, stack, **kwargs)
filenames = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
self = <napari._qt.qt_viewer.QtViewer object at 0x7fd94f591550>
stack = False
kwargs = {}

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/_qt/dialogs/qt_reader_dialog.py:201, in handle_gui_reading(paths=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], qt_viewer=<napari._qt.qt_viewer.QtViewer object>, stack=False, plugin_name=None, error=None, plugin_override=False, **kwargs={})
199 display_name, persist = readerDialog.get_user_choices()
200 if display_name:
--> 201 open_with_dialog_choices(
display_name = 'napari-ome-zarr'
persist = True
readerDialog = <napari._qt.dialogs.qt_reader_dialog.QtReaderDialog object at 0x7fd9566eaca0>
readerDialog._extension = '/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'
readers = {'recOrder-napari': 'recOrder-napari', 'napari': 'napari builtins', 'napari-ome-zarr': 'napari-ome-zarr'}
paths = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
stack = False
qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x7fd94f591550>
kwargs = {}
202 display_name,
203 persist,
204 readerDialog._extension,
205 readers,
206 paths,
207 stack,
208 qt_viewer,
209 **kwargs,
210 )

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/_qt/dialogs/qt_reader_dialog.py:294, in open_with_dialog_choices(display_name='napari-ome-zarr', persist=True, extension='/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr', readers={'napari': 'napari builtins', 'napari-ome-zarr': 'napari-ome-zarr', 'recOrder-napari': 'recOrder-napari'}, paths=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], stack=False, qt_viewer=<napari._qt.qt_viewer.QtViewer object>, **kwargs={})
290 plugin_name = [
291 p_name for p_name, d_name in readers.items() if d_name == display_name
292 ][0]
293 # may throw error, but we let it this time
--> 294 qt_viewer.viewer.open(paths, stack=stack, plugin=plugin_name, **kwargs)
plugin_name = 'napari-ome-zarr'
paths = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
qt_viewer.viewer = Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})
stack = False
kwargs = {}
qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x7fd94f591550>
296 if persist:
297 if not extension.endswith(os.sep):

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:1095, in ViewerModel.open(self=Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}), path=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], stack=False, plugin='napari-ome-zarr', layer_type=None, **kwargs={})
1092 _path = [_path] if not isinstance(_path, list) else _path
1093 if plugin:
1094 added.extend(
-> 1095 self._add_layers_with_plugins(
added = []
self = Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})
_path = ['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr']
kwargs = {}
plugin = 'napari-ome-zarr'
layer_type = None
_stack = False
1096 _path,
1097 kwargs=kwargs,
1098 plugin=plugin,
1099 layer_type=layer_type,
1100 stack=_stack,
1101 )
1102 )
1103 # no plugin choice was made
1104 else:
1105 layers = self._open_or_raise_error(
1106 _path, kwargs, layer_type, _stack
1107 )

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:1321, in ViewerModel._add_layers_with_plugins(self=Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}), paths=['/Users/alexleffell/Downloads/2024_07_08_dinoflagellate_birefringence_processed/snap_16.zarr'], stack=False, kwargs={}, plugin='napari-ome-zarr', layer_type=None)
1319 # actually add the layer
1320 with layer_source(path=filename, reader_plugin=plugin):
-> 1321 added.extend(self._add_layer_from_data(*_data))
added = []
_data = ([dask.array<from-zarr, shape=(1, 6, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 1, 2048, 2048), chunktype=numpy.ndarray>], {'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'channel_axis': 1, 'name': '0', 'visible': [True, True, True, True, True, False], 'contrast_limits': [[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], 'colormap': [<vispy.color.colormap.Colormap object at 0x7fd95798f670>, <vispy.color.colormap.Colormap object at 0x7fd9579dc820>, <vispy.color.colormap.Colormap object at 0x7fd9579dcbe0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc8e0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc790>, <vispy.color.colormap.Colormap object at 0x7fd9567a43a0>], 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}}, 'image')
self = Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})
1322 return added

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:1395, in ViewerModel._add_layer_from_data(self=Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, mouse_wheel_gen={}, keymap={}), data=[dask.array<from-zarr, shape=(1, 6, 39, 2048, 204...e=(1, 1, 1, 2048, 2048), chunktype=numpy.ndarray>], meta={'channel_axis': 1, 'colormap': [<vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>], 'contrast_limits': [[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'name': '0', 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'visible': [True, True, True, True, True, False]}, layer_type='image')
1393 try:
1394 add_method = getattr(self, 'add
' + layer_type)
-> 1395 layer = add_method(data, **(meta or {}))
add_method = <bound method ViewerModel.add_image of Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})>
data = [dask.array<from-zarr, shape=(1, 6, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 1, 2048, 2048), chunktype=numpy.ndarray>]
meta or {} = {'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'channel_axis': 1, 'name': '0', 'visible': [True, True, True, True, True, False], 'contrast_limits': [[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], 'colormap': [<vispy.color.colormap.Colormap object at 0x7fd95798f670>, <vispy.color.colormap.Colormap object at 0x7fd9579dc820>, <vispy.color.colormap.Colormap object at 0x7fd9579dcbe0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc8e0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc790>, <vispy.color.colormap.Colormap object at 0x7fd9567a43a0>], 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}}
meta = {'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'channel_axis': 1, 'name': '0', 'visible': [True, True, True, True, True, False], 'contrast_limits': [[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], 'colormap': [<vispy.color.colormap.Colormap object at 0x7fd95798f670>, <vispy.color.colormap.Colormap object at 0x7fd9579dc820>, <vispy.color.colormap.Colormap object at 0x7fd9579dcbe0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc8e0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc790>, <vispy.color.colormap.Colormap object at 0x7fd9567a43a0>], 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}}
1396 except TypeError as exc:
1397 if 'unexpected keyword argument' not in str(exc):

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/utils/migrations.py:62, in rename_argument.._wrapper.._update_from_dict(*args=(Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}), [dask.array<from-zarr, shape=(1, 6, 39, 2048, 204...e=(1, 1, 1, 2048, 2048), chunktype=numpy.ndarray>]), **kwargs={'channel_axis': 1, 'colormap': [<vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>, <vispy.color.colormap.Colormap object>], 'contrast_limits': [[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'name': '0', 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'visible': [True, True, True, True, True, False]})
60 kwargs = kwargs.copy()
61 kwargs[to_name] = kwargs.pop(from_name)
---> 62 return func(*args, **kwargs)
func = <function ViewerModel.add_image at 0x7fd9646d9700>
kwargs = {'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'channel_axis': 1, 'name': '0', 'visible': [True, True, True, True, True, False], 'contrast_limits': [[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], 'colormap': [<vispy.color.colormap.Colormap object at 0x7fd95798f670>, <vispy.color.colormap.Colormap object at 0x7fd9579dc820>, <vispy.color.colormap.Colormap object at 0x7fd9579dcbe0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc8e0>, <vispy.color.colormap.Colormap object at 0x7fd9579dc790>, <vispy.color.colormap.Colormap object at 0x7fd9567a43a0>], 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}}
args = (Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x7fd964579a60>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}), [dask.array<from-zarr, shape=(1, 6, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 1, 2048, 2048), chunktype=numpy.ndarray>])

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:907, in ViewerModel.add_image(self=Viewer(camera=Camera(center=(0.0, 0.0, 0.0), zoo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}), data=[dask.array<from-zarr, shape=(1, 6, 39, 2048, 204...e=(1, 1, 1, 2048, 2048), chunktype=numpy.ndarray>], channel_axis=1, rgb=None, colormap=[Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32), Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32), Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32), Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32), Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32), Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32)], contrast_limits=[[0.0, 100.0], [0.0, 3.141592653589793], [0.0, 5.0], [0.0, 65535.0], [-0.2, 0.2], [0.0, 65535.0]], gamma=1, interpolation2d='nearest', interpolation3d='linear', rendering='mip', depiction='volume', iso_threshold=None, attenuation=0.05, name='0', metadata={'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, scale=(1.0, 1.0, 0.06499999895770306, 0.06499999895770306), translate=None, rotate=None, shear=None, affine=None, opacity=1, blending=None, visible=[True, True, True, True, True, False], multiscale=None, cache=True, plane=None, experimental_clipping_planes=None, custom_interpolation_kernel_2d=None)
903 return layer
905 layerdata_list = split_channels(data, channel_axis, **kwargs)
--> 907 layer_list = [
layerdata_list = [(dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 0]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 100.0], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'translucent_no_depth', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image'), (dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 1]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 3.141592653589793], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'additive', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image'), (dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 2]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 5.0], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'additive', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image'), (dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 3]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 65535.0], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'additive', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image'), (dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 4]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [-0.2, 0.2], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'additive', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image'), (dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 5]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 65535.0], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'additive', 'visible': False, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image')]
Image = <class 'napari.layers.image.image.Image'>
908 Image(image, **i_kwargs) for image, i_kwargs, _ in layerdata_list
909 ]
910 self.layers.extend(layer_list)
912 return layer_list

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/components/viewer_model.py:908, in (.0=<list_iterator object>)
903 return layer
905 layerdata_list = split_channels(data, channel_axis, **kwargs)
907 layer_list = [
--> 908 Image(image, **i_kwargs) for image, i_kwargs, _ in layerdata_list
Image = <class 'napari.layers.image.image.Image'>
image = dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>
image, i_kwargs, _ = (dask.array<getitem, shape=(1, 39, 2048, 2048), dtype=float32, chunksize=(1, 1, 2048, 2048), chunktype=numpy.ndarray>, {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 0]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 100.0], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'translucent_no_depth', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}, 'image')
i_kwargs = {'rgb': None, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) float32, name='[unnamed colormap 0]', interpolation=<ColormapInterpolationMode.LINEAR: 'linear'>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 100.0], 'gamma': 1, 'interpolation2d': 'nearest', 'interpolation3d': 'linear', 'rendering': 'mip', 'depiction': 'volume', 'iso_threshold': None, 'attenuation': 0.05, 'name': '0', 'metadata': {'plate': {'acquisitions': [{'id': 0}], 'columns': [{'name': '0'}], 'rows': [{'name': '0'}], 'version': '0.4', 'wells': [{'columnIndex': 0, 'path': '0/0', 'rowIndex': 0}]}}, 'scale': (1.0, 1.0, 0.06499999895770306, 0.06499999895770306), 'translate': None, 'rotate': None, 'shear': None, 'affine': None, 'opacity': 1, 'blending': 'translucent_no_depth', 'visible': True, 'multiscale': False, 'cache': True, 'plane': None, 'experimental_clipping_planes': None, 'custom_interpolation_kernel_2d': None}
_ = 'image'
909 ]
910 self.layers.extend(layer_list)
912 return layer_list

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/base/base.py:89, in PostInit.call(self=<class 'napari.layers.image.image.Image'>, *args=(dask.array<getitem, shape=(1, 39, 2048, 2048), d...size=(1, 1, 2048, 2048), chunktype=numpy.ndarray>,), **kwargs={'affine': None, 'attenuation': 0.05, 'blending': 'translucent_no_depth', 'cache': True, 'colormap': Colormap(colors=<class 'numpy.ndarray'> (2, 4) f...>, controls=<class 'numpy.ndarray'> (2,) float32), 'contrast_limits': [0.0, 100.0], 'custom_interpolation_kernel_2d': None, 'depiction': 'volume', 'experimental_clipping_planes': None, 'gamma': 1, ...})
87 def call(self, *args, **kwargs):
88 obj = super().call(*args, **kwargs)
---> 89 obj._post_init()
obj = <Image layer '0' at 0x7fd9567a4fd0>
90 return obj

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/image.py:295, in _ImageBase._post_init(self=<Image layer '0'>)
293 def _post_init(self):
294 # Trigger generation of view slice and thumbnail
--> 295 self.refresh()
self = <Image layer '0' at 0x7fd9567a4fd0>

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/base/base.py:1297, in Layer.refresh(self=<Image layer '0'>, event=None)
1295 """Refresh all layer data based on current view slice."""
1296 if self.visible:
-> 1297 self.set_view_slice()
self = <Image layer '0' at 0x7fd9567a4fd0>
1298 self.events.set_data()
1299 self._update_thumbnail()

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/base/base.py:1062, in Layer.set_view_slice(self=<Image layer '0'>)
1060 def set_view_slice(self):
1061 with self.dask_optimized_slicing():
-> 1062 self._set_view_slice()
self = <Image layer '0' at 0x7fd9567a4fd0>

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/image.py:1327, in Image._set_view_slice(self=<Image layer '0'>)
1326 def _set_view_slice(self):
-> 1327 super()._set_view_slice()
1328 if self._should_calc_clims:
1329 self.reset_contrast_limits_range()

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/image.py:599, in _ImageBase._set_view_slice(self=<Image layer '0'>)
595 # Load our images, might be sync or async.
596 data = self._SliceDataClass(
597 self, image_indices, image, thumbnail_source
598 )
--> 599 self._load_slice(data)
data = <napari.layers.image._image_slice_data.ImageSliceData object at 0x7fd957bd8490>
self = <Image layer '0' at 0x7fd9567a4fd0>

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/image.py:619, in _ImageBase._load_slice(self=<Image layer '0'>, data=<napari.layers.image._image_slice_data.ImageSliceData object>)
612 def _load_slice(self, data: ImageSliceData):
613 """Load the image and maybe thumbnail source.
614
615 Parameters
616 ----------
617 data : Slice
618 """
--> 619 if self._slice.load(data):
data = <napari.layers.image._image_slice_data.ImageSliceData object at 0x7fd957bd8490>
self._slice = <napari.layers.image._image_slice.ImageSlice object at 0x7fd957bd8e20>
self = <Image layer '0' at 0x7fd9567a4fd0>
620 # The load was synchronous.
621 self._on_data_loaded(data, sync=True)
622 else:
623 # The load will be asynchronous. Signal that our self.loaded
624 # property is now false, since the load is in progress.

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/_image_slice.py:125, in ImageSlice.load(self=<napari.layers.image._image_slice.ImageSlice object>, data=<napari.layers.image._image_slice_data.ImageSliceData object>)
112 """Load this data into the slice.
113
114 Parameters
(...)
122 Return True if load was synchronous.
123 """
124 self.loaded = False # False until self._on_loaded is calls
--> 125 return self.loader.load(data)
self = <napari.layers.image._image_slice.ImageSlice object at 0x7fd957bd8e20>
data = <napari.layers.image._image_slice_data.ImageSliceData object at 0x7fd957bd8490>
self.loader = <napari.layers.image._image_loader.ImageLoader object at 0x7fd957bd8f40>

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/_image_loader.py:22, in ImageLoader.load(self=<napari.layers.image._image_loader.ImageLoader object>, data=<napari.layers.image._image_slice_data.ImageSliceData object>)
9 def load(self, data: ImageSliceData) -> bool:
10 """Load the ImageSliceData synchronously.
11
12 Parameters
(...)
20 True if load happened synchronously.
21 """
---> 22 data.load_sync()
data = <napari.layers.image._image_slice_data.ImageSliceData object at 0x7fd957bd8490>
23 return True

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/napari/layers/image/_image_slice_data.py:44, in ImageSliceData.load_sync(self=<napari.layers.image._image_slice_data.ImageSliceData object>)
42 def load_sync(self) -> None:
43 """Call asarray on our images to load them."""
---> 44 self.image = np.asarray(self.image)
self.image = dask.array<getitem, shape=(2048, 2048), dtype=float32, chunksize=(2048, 2048), chunktype=numpy.ndarray>
self = <napari.layers.image._image_slice_data.ImageSliceData object at 0x7fd957bd8490>
np = <module 'numpy' from '/Users/alexleffell/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/numpy/init.py'>
46 if self.thumbnail_source is not None:
47 self.thumbnail_source = np.asarray(self.thumbnail_source)

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/dask/array/core.py:1693, in Array.array(self=dask.array<getitem, shape=(2048, 2048), dtype=fl... chunksize=(2048, 2048), chunktype=numpy.ndarray>, dtype=None, **kwargs={})
1692 def array(self, dtype=None, **kwargs):
-> 1693 x = self.compute()
self = dask.array<getitem, shape=(2048, 2048), dtype=float32, chunksize=(2048, 2048), chunktype=numpy.ndarray>
1694 if dtype and x.dtype != dtype:
1695 x = x.astype(dtype)

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/dask/base.py:376, in DaskMethodsMixin.compute(self=dask.array<getitem, shape=(2048, 2048), dtype=fl... chunksize=(2048, 2048), chunktype=numpy.ndarray>, **kwargs={})
352 def compute(self, **kwargs):
353 """Compute this dask collection
354
355 This turns a lazy Dask collection into its in-memory equivalent.
(...)
374 dask.compute
375 """
--> 376 (result,) = compute(self, traverse=False, **kwargs)
self = dask.array<getitem, shape=(2048, 2048), dtype=float32, chunksize=(2048, 2048), chunktype=numpy.ndarray>
kwargs = {}
377 return result

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/dask/base.py:649, in compute(traverse=False, optimize_graph=True, scheduler=None, get=None, *args=(dask.array<getitem, shape=(2048, 2048), dtype=fl... chunksize=(2048, 2048), chunktype=numpy.ndarray>,), **kwargs={})
646 if not collections:
647 return args
--> 649 schedule = get_scheduler(
scheduler = None
collections = [dask.array<getitem, shape=(2048, 2048), dtype=float32, chunksize=(2048, 2048), chunktype=numpy.ndarray>]
get = None
650 scheduler=scheduler,
651 collections=collections,
652 get=get,
653 )
655 dsk = collections_to_dsk(collections, optimize_graph, **kwargs)
656 keys, postcomputes = [], []

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/dask/base.py:1524, in get_scheduler(get=None, scheduler=None, collections=[dask.array<getitem, shape=(2048, 2048), dtype=fl... chunksize=(2048, 2048), chunktype=numpy.ndarray>], cls=None)
1521 raise ValueError(get_err_msg)
1523 try:
-> 1524 from distributed import get_client
1526 return get_client().get
1527 except (ImportError, ValueError):

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/distributed/init.py:23
20 from dask.config import config # type: ignore
22 from distributed._version import get_versions
---> 23 from distributed.actor import Actor, ActorFuture, BaseActorFuture
24 from distributed.client import (
25 Client,
26 CompatibleExecutor,
(...)
35 wait,
36 )
37 from distributed.core import Status, connect, rpc

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/distributed/actor.py:13
9 from typing import Generic, Literal, NoReturn, TypeVar
11 from tornado.ioloop import IOLoop
---> 13 from distributed.client import Future
14 from distributed.protocol import to_serialize
15 from distributed.utils import LateLoopEvent, iscoroutinefunction, sync, thread_state

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/distributed/client.py:119
97 from distributed.utils import (
98 CancelledError,
99 LoopRunner,
(...)
109 thread_state,
110 )
111 from distributed.utils_comm import (
112 WrappedKey,
113 gather_from_workers,
(...)
117 unpack_remotedata,
118 )
--> 119 from distributed.worker import get_client, get_worker, secede
121 logger = logging.getLogger(name)
123 _global_clients: weakref.WeakValueDictionary[
124 int, Client
125 ] = weakref.WeakValueDictionary()

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/distributed/worker.py:119
117 from distributed.utils_perf import disable_gc_diagnosis, enable_gc_diagnosis
118 from distributed.versions import get_versions
--> 119 from distributed.worker_memory import (
120 DeprecatedMemoryManagerAttribute,
121 DeprecatedMemoryMonitor,
122 WorkerDataParameter,
123 WorkerMemoryManager,
124 )
125 from distributed.worker_state_machine import (
126 AcquireReplicasEvent,
127 BaseWorker,
(...)
151 WorkerState,
152 )
154 if TYPE_CHECKING:
155 # FIXME import from typing (needs Python >=3.10)

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/site-packages/distributed/worker_memory.py:56
53 from distributed.nanny import Nanny
54 from distributed.worker import Worker
---> 56 WorkerDataParameter: TypeAlias = Union[
MutableMapping = <class 'collections.abc.MutableMapping'>
Key, object = (typing.Union[str, bytes, int, float, tuple], <class 'object'>)
Key = typing.Union[str, bytes, int, float, tuple]
Callable = <class 'collections.abc.Callable'>
[str] = [<class 'str'>]
Any = typing.Any
str, Any = (<class 'str'>, typing.Any)
57 # pre-initialized
58 MutableMapping[Key, object],
59 # constructor
60 Callable[[], MutableMapping[Key, object]],
61 # constructor, passed worker.local_directory
62 Callable[[str], MutableMapping[Key, object]],
63 # (constructor, kwargs to constructor)
64 tuple[Callable[..., MutableMapping[Key, object]], dict[str, Any]],
65 # initialize internally
66 None,
67 ]
69 worker_logger = logging.getLogger("distributed.worker.memory")
70 worker_logger.addFilter(RateLimiterFilter(r"Unmanaged memory use is high"))

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/typing.py:243, in _tp_cache..inner(*args=(typing.Union, (collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.Mut...ng.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collec...ng.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections...., float, tuple], object]], dict[str, typing.Any]], None)), **kwds={})
241 except TypeError:
242 pass # All real errors (not unhashable args) are raised below.
--> 243 return func(*args, **kwds)
func = <function _SpecialForm.getitem at 0x7fd95d842a60>
args = (typing.Union, (collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], dict[str, typing.Any]], None))
kwds = {}

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/typing.py:316, in _SpecialForm.getitem(self=typing.Union, parameters=(collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.Mut...ng.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collec...ng.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections...., float, tuple], object]], dict[str, typing.Any]], None))
314 @_tp_cache
315 def getitem(self, parameters):
--> 316 return self._getitem(self, parameters)
self._getitem = <function Union at 0x7fd95d842dc0>
self = typing.Union
parameters = (collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], dict[str, typing.Any]], None)

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/typing.py:421, in Union(self=typing.Union, parameters=(collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.Mut...ng.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collec...ng.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections...., float, tuple], object]], dict[str, typing.Any]], <class 'NoneType'>))
419 msg = "Union[arg, ...]: each arg must be a type."
420 parameters = tuple(_type_check(p, msg) for p in parameters)
--> 421 parameters = _remove_dups_flatten(parameters)
parameters = (collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], dict[str, typing.Any]], <class 'NoneType'>)
422 if len(parameters) == 1:
423 return parameters[0]

File ~/opt/anaconda3/envs/recOrder/lib/python3.9/typing.py:215, in _remove_dups_flatten(parameters=(collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.Mut...ng.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collec...ng.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections...., float, tuple], object]], dict[str, typing.Any]], <class 'NoneType'>))
213 params.append(p)
214 # Weed out strict duplicates, preserving the first of each occurrence.
--> 215 all_params = set(params)
params = [collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object], collections.abc.Callable[[], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], collections.abc.Callable[[<class 'str'>], collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], tuple[collections.abc.Callable[..., collections.abc.MutableMapping[typing.Union[str, bytes, int, float, tuple], object]], dict[str, typing.Any]], <class 'NoneType'>]
216 if len(all_params) < len(params):
217 new_params = []

TypeError: unhashable type: 'list'

Expected behavior
the zarr image stacks should appear in the main screen

Environment:

Operating system:
Python version: 3.9 (installed as per the napari plugin website)
conda create -y -n recOrder python=3.9
conda activate recOrder
pip install recOrder-napari

@ziw-liu
Copy link
Contributor

ziw-liu commented Sep 9, 2024

What Zarr dataset are you trying to load? Also note that napari-ome-zarr is a separate project at https://github.com/ome/napari-ome-zarr.

@ziw-liu ziw-liu added the question Further information is requested label Sep 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants