@@ -1403,15 +1403,18 @@ def _validate_colors_element_table_mapping_points_shapes(
14031403 params .col_for_color .append (col_color )
14041404 element_table_mapping [element_name ] = set ()
14051405 else :
1406- for table_name in element_table_mapping [element_name ].copy ():
1407- if (
1408- col_color not in sdata [table_name ].obs .columns
1409- and col_color not in sdata [table_name ].var_names
1410- ):
1411- element_table_mapping [element_name ].remove (table_name )
1412- params .col_for_color .append (None )
1413- else :
1414- params .col_for_color .append (col_color )
1406+ if len (element_table_mapping [element_name ].copy ()) != 0 :
1407+ for table_name in element_table_mapping [element_name ].copy ():
1408+ if (
1409+ col_color not in sdata [table_name ].obs .columns
1410+ and col_color not in sdata [table_name ].var_names
1411+ ):
1412+ element_table_mapping [element_name ].remove (table_name )
1413+ params .col_for_color .append (None )
1414+ else :
1415+ params .col_for_color .append (col_color )
1416+ else :
1417+ params .col_for_color .append (None )
14151418 else :
14161419 params .color = [None ] * len (render_elements )
14171420 params .col_for_color = [None ] * len (render_elements )
@@ -1439,7 +1442,7 @@ def _validate_colors_element_table_mapping_points_shapes(
14391442 element_table_mapping [element_name ].remove (table_name )
14401443 for index , element_name in enumerate (render_elements ):
14411444 # We only want one table value per element and only when there is a color column in the table
1442- if params .col_for_color [index ] is not None :
1445+ if isinstance ( params . col_for_color , list ) and params .col_for_color [index ] is not None :
14431446 table_set = element_table_mapping [element_name ]
14441447 if len (table_set ) > 1 :
14451448 raise ValueError (f"More than one table found with color column { params .col_for_color [index ]} ." )
0 commit comments