@@ -1403,15 +1403,18 @@ def _validate_colors_element_table_mapping_points_shapes(
1403
1403
params .col_for_color .append (col_color )
1404
1404
element_table_mapping [element_name ] = set ()
1405
1405
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 )
1415
1418
else :
1416
1419
params .color = [None ] * len (render_elements )
1417
1420
params .col_for_color = [None ] * len (render_elements )
@@ -1439,7 +1442,7 @@ def _validate_colors_element_table_mapping_points_shapes(
1439
1442
element_table_mapping [element_name ].remove (table_name )
1440
1443
for index , element_name in enumerate (render_elements ):
1441
1444
# 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 :
1443
1446
table_set = element_table_mapping [element_name ]
1444
1447
if len (table_set ) > 1 :
1445
1448
raise ValueError (f"More than one table found with color column { params .col_for_color [index ]} ." )
0 commit comments