@@ -137,9 +137,13 @@ def _update_adata(self) -> None:
137137 )
138138 layer .metadata ["adata" ] = table
139139
140- if layer is not None and "adata" in layer .metadata :
141- with self .model .events .adata .blocker ():
142- self .model .adata = layer .metadata ["adata" ]
140+ if layer is not None :
141+ if "adata" in layer .metadata :
142+ with self .model .events .adata .blocker ():
143+ self .model .adata = layer .metadata ["adata" ]
144+ else :
145+ with self .model .events .adata .blocker ():
146+ self .model .adata = None
143147
144148 if self .model .adata .shape == (0 , 0 ):
145149 return
@@ -186,8 +190,8 @@ def _select_layer(self) -> None:
186190 self .color_widget .clear ()
187191 return
188192
189- if layer is not None and "adata" in layer . metadata :
190- self .model .adata = layer .metadata [ "adata" ]
193+ if layer is not None :
194+ self .model .adata = layer .metadata . get ( "adata" , None )
191195
192196 def screenshot (self ) -> Any :
193197 return QImg2array (self .grab ().toImage ())
@@ -384,10 +388,11 @@ def _select_layer(self) -> None:
384388 if isinstance (layer , (Points , Shapes )) and (cols_df := layer .metadata .get ("_columns_df" )) is not None :
385389 self .dataframe_columns_widget .addItems (map (str , cols_df .columns ))
386390 self .model .system_name = layer .metadata .get ("name" , None )
391+ self .model .adata = None
387392 return
388393
389- if layer is not None and "adata" in layer . metadata :
390- self .model .adata = layer .metadata [ "adata" ]
394+ if layer is not None :
395+ self .model .adata = layer .metadata . get ( "adata" , None )
391396
392397 if self .model .adata .shape == (0 , 0 ):
393398 return
@@ -418,9 +423,13 @@ def _update_adata(self) -> None:
418423 )
419424 layer .metadata ["adata" ] = table
420425
421- if layer is not None and "adata" in layer .metadata :
422- with self .model .events .adata .blocker ():
423- self .model .adata = layer .metadata ["adata" ]
426+ if layer is not None :
427+ if "adata" in layer .metadata :
428+ with self .model .events .adata .blocker ():
429+ self .model .adata = layer .metadata ["adata" ]
430+ else :
431+ with self .model .events .adata .blocker ():
432+ self .model .adata = None
424433
425434 if self .model .adata .shape == (0 , 0 ):
426435 return
@@ -440,10 +449,12 @@ def _update_adata(self) -> None:
440449 return
441450
442451 def _get_adata_layer (self ) -> Sequence [str | None ]:
452+ if self .model .adata is None :
453+ return [None ]
443454 adata_layers = list (self .model .adata .layers .keys ())
444- if len (adata_layers ):
445- return adata_layers
446- return [ None ]
455+ if len (adata_layers ) == 0 :
456+ return [ None ]
457+ return adata_layers
447458
448459 def _change_color_by (self ) -> None :
449460 self .color_by .setText (f"Color by: { self .model .color_by } " )
0 commit comments