Spaces:
Running
on
Zero
Running
on
Zero
# utils/excluded_colors.py | |
import gradio as gr | |
from utils.color_utils import ( | |
hex_to_rgb, | |
) | |
from utils.image_utils import ( | |
convert_str_to_int_or_zero, | |
) | |
excluded_color_list = gr.State([(0,0,0,0),(255,255,255,0)]) | |
def add_color(color, excluded_colors_var): | |
excluded_colors = excluded_colors_var.value | |
# Convert the color from hex to RGBA | |
color = hex_to_rgb(color) + (255,) | |
if color not in [tuple(lst) for lst in excluded_colors]: | |
excluded_colors.append(color) | |
excluded_color_lst = [tuple(lst) for lst in excluded_colors] | |
else: | |
excluded_color_lst = [tuple(lst) for lst in excluded_colors] | |
return excluded_color_lst, excluded_color_lst | |
def delete_color(row, excluded_colors_var): | |
global excluded_color_list | |
excluded_colors = list(excluded_colors_var) | |
row_index = convert_str_to_int_or_zero(row) | |
print(f"Delete Excluded Color {row_index} of {len(excluded_colors) - 1}") | |
if row_index <= len(excluded_colors) - 1: | |
del excluded_colors[row_index] | |
excluded_color_lst = [tuple(lst) for lst in excluded_colors] | |
excluded_color_list = excluded_color_lst | |
return excluded_color_lst | |
else: | |
excluded_color_lst = [tuple(lst) for lst in excluded_color_list] | |
print(f"Row index {row_index} not found in the list:{excluded_color_lst}") | |
excluded_color_list = excluded_color_lst | |
return excluded_color_lst | |
def build_dataframe(excluded_colors_var): | |
excluded_colors = [tuple(lst) for lst in excluded_colors_var.value] | |
#print(f"input: {excluded_colors}") | |
return excluded_colors | |
def on_input(excluded_colors): | |
print(f"input: {excluded_colors}") | |
excluded_color_lst = [tuple(lst) for lst in excluded_colors] | |
print(f"output: {excluded_color_lst}") | |
return excluded_color_lst, excluded_color_lst | |
# Event listener for when the user selects a row | |
def on_color_display_select(selected_rows, event: gr.SelectData): | |
# Get the selected row | |
selected_index = event.index[0] | |
print(f"Selected row index:{selected_rows[selected_index]}, index: {selected_index}") | |
return selected_index |