@@ -65,7 +65,8 @@ def __init__(
65
65
"When display_model is provided, kwargs are be ignored." ,
66
66
stacklevel = 2 ,
67
67
)
68
- data = DataWrapper .create (data )
68
+ if data is not None :
69
+ data = DataWrapper .create (data )
69
70
self ._data_model = _ArrayDataDisplayModel (
70
71
data_wrapper = data ,
71
72
display = display_model or self ._default_display_model (data , ** kwargs ),
@@ -222,24 +223,27 @@ def clone(self) -> ArrayViewer:
222
223
223
224
@staticmethod
224
225
def _default_display_model (
225
- data : DataWrapper , ** kwargs : Unpack [ArrayDisplayModelKwargs ]
226
+ data : None | DataWrapper , ** kwargs : Unpack [ArrayDisplayModelKwargs ]
226
227
) -> ArrayDisplayModel :
227
228
"""
228
229
Creates a default ArrayDisplayModel when none is provided by the user.
229
230
230
231
All magical setup goes here.
231
232
"""
233
+ # Can't do any magic with no data
234
+ if data is None :
235
+ return ArrayDisplayModel (** kwargs )
236
+
232
237
# RGB images
233
238
if "channel_mode" not in kwargs and "channel_axis" not in kwargs :
234
- if data is not None :
235
- rgb_channel_axis = data .dims [- 1 ]
236
- if data .sizes ()[rgb_channel_axis ] in {3 , 4 }:
237
- kwargs ["channel_mode" ] = "rgba"
238
- kwargs ["channel_axis" ] = - 1
239
- # HACK - this gets around the warning conditional in
240
- # ArrayDisplayModel's validator. Ideally we wouldn't need to specify
241
- # this.
242
- kwargs ["visible_axes" ] = (- 3 , - 2 )
239
+ rgb_channel_axis = data .dims [- 1 ]
240
+ if data .sizes ()[rgb_channel_axis ] in {3 , 4 }:
241
+ kwargs ["channel_mode" ] = "rgba"
242
+ kwargs ["channel_axis" ] = - 1
243
+ # HACK - this gets around the warning conditional in
244
+ # ArrayDisplayModel's validator. Ideally we wouldn't need to specify
245
+ # this.
246
+ kwargs ["visible_axes" ] = (- 3 , - 2 )
243
247
244
248
return ArrayDisplayModel (** kwargs )
245
249
0 commit comments