C2MV commited on
Commit
509dd2d
verified
1 Parent(s): 00b61aa

Upload UI.py

Browse files
Files changed (1) hide show
  1. UI.py +11 -16
UI.py CHANGED
@@ -1,6 +1,6 @@
1
  # UI.py
2
  import gradio as gr
3
- import numpy as np # Importar numpy para np.inf
4
 
5
  def create_interface(process_function_for_button):
6
  with gr.Blocks(theme='gradio/soft') as demo:
@@ -16,18 +16,19 @@ def create_interface(process_function_for_button):
16
  legend_position_ui = gr.Dropdown(
17
  label="Posici贸n de la leyenda",
18
  choices=['best', 'upper right', 'upper left', 'lower right', 'lower left', 'center left', 'center right', 'lower center', 'upper center', 'center'],
19
- value='best'
 
20
  )
21
  with gr.Column(scale=1):
22
  gr.Markdown("### Conteo de Ecuaciones a Probar")
23
- biomass_eq_count_ui = gr.Number(label="Biomasa (1-3)", value=1, minimum=1, maximum=3, step=1, precision=0)
24
- substrate_eq_count_ui = gr.Number(label="Sustrato (1-3)", value=1, minimum=1, maximum=3, step=1, precision=0)
25
- product_eq_count_ui = gr.Number(label="Producto (1-3)", value=1, minimum=1, maximum=3, step=1, precision=0)
26
 
27
  # --- Secci贸n de Biomasa ---
28
  with gr.Accordion("Ecuaciones y Par谩metros de Biomasa", open=True):
29
  with gr.Row():
30
- with gr.Column(): # Columna 1 siempre visible
31
  biomass_eq1_ui = gr.Textbox(label="Ecuaci贸n de Biomasa 1", value="Xm * (1 - exp(-um * (t - t_lag)))", lines=2, placeholder="Ej: Xm * (1 - exp(-um * (t - t_lag)))")
32
  biomass_param1_ui = gr.Textbox(label="Par谩metros Biomasa 1", value="Xm, um, t_lag", info="Nombres, coma sep. Use 't' para tiempo. 'X_val' para X(t) en S/P.")
33
  biomass_bound1_ui = gr.Textbox(label="L铆mites Biomasa 1", value="(0, np.inf), (0, np.inf), (0, np.inf)", info="Formato: (low,high). Use np.inf.")
@@ -87,10 +88,8 @@ def create_interface(process_function_for_button):
87
 
88
  # L贸gica para mostrar/ocultar campos de ecuaci贸n din谩micamente
89
  def update_eq_visibility(count_value):
90
- # Asegurar que el valor es entero antes de la comparaci贸n
91
- count = int(count_value)
92
- # Retorna diccionarios de actualizaci贸n para `gr.update`
93
- return { "visible": count >= 2 }, { "visible": count >= 3 }
94
 
95
  biomass_eq_count_ui.change(fn=update_eq_visibility, inputs=biomass_eq_count_ui, outputs=[biomass_col2_container, biomass_col3_container])
96
  substrate_eq_count_ui.change(fn=update_eq_visibility, inputs=substrate_eq_count_ui, outputs=[substrate_col2_container, substrate_col3_container])
@@ -104,7 +103,6 @@ def create_interface(process_function_for_button):
104
  with gr.Column(scale=3):
105
  analysis_output = gr.Markdown(label="An谩lisis del Modelo por IA")
106
 
107
- # Lista de todos los inputs para el bot贸n de submit
108
  all_inputs_for_button = [
109
  file_input,
110
  biomass_eq1_ui, biomass_eq2_ui, biomass_eq3_ui,
@@ -131,18 +129,15 @@ def create_interface(process_function_for_button):
131
  outputs=outputs_for_button
132
  )
133
 
134
- # Inicializar visibilidad usando demo.load para que se aplique al cargar la UI
135
- # Esto asegura que el estado inicial de visibilidad es correcto
136
  def set_initial_visibility_on_load_wrapper(b_c_val, s_c_val, p_c_val):
137
- # Obtener los valores iniciales de los gr.Number components
138
- # y aplicar la l贸gica de visibilidad.
139
- # Los valores de los Number inputs pueden ser float, convertirlos a int
140
  b_c_int, s_c_int, p_c_int = int(b_c_val), int(s_c_val), int(p_c_val)
141
 
142
  b_vis2_upd, b_vis3_upd = update_eq_visibility(b_c_int)
143
  s_vis2_upd, s_vis3_upd = update_eq_visibility(s_c_int)
144
  p_vis2_upd, p_vis3_upd = update_eq_visibility(p_c_int)
145
 
 
146
  return b_vis2_upd, b_vis3_upd, s_vis2_upd, s_vis3_upd, p_vis2_upd, p_vis3_upd
147
 
148
  demo.load(
 
1
  # UI.py
2
  import gradio as gr
3
+ import numpy as np
4
 
5
  def create_interface(process_function_for_button):
6
  with gr.Blocks(theme='gradio/soft') as demo:
 
16
  legend_position_ui = gr.Dropdown(
17
  label="Posici贸n de la leyenda",
18
  choices=['best', 'upper right', 'upper left', 'lower right', 'lower left', 'center left', 'center right', 'lower center', 'upper center', 'center'],
19
+ value='best', # Asegura que el valor por defecto es uno de los choices
20
+ type="value" # Especificar el tipo de retorno si es ambiguo
21
  )
22
  with gr.Column(scale=1):
23
  gr.Markdown("### Conteo de Ecuaciones a Probar")
24
+ biomass_eq_count_ui = gr.Number(label="Biomasa (1-3)", value=1.0, minimum=1.0, maximum=3.0, step=1.0, precision=0) # Usar float para gr.Number
25
+ substrate_eq_count_ui = gr.Number(label="Sustrato (1-3)", value=1.0, minimum=1.0, maximum=3.0, step=1.0, precision=0)
26
+ product_eq_count_ui = gr.Number(label="Producto (1-3)", value=1.0, minimum=1.0, maximum=3.0, step=1.0, precision=0)
27
 
28
  # --- Secci贸n de Biomasa ---
29
  with gr.Accordion("Ecuaciones y Par谩metros de Biomasa", open=True):
30
  with gr.Row():
31
+ with gr.Column():
32
  biomass_eq1_ui = gr.Textbox(label="Ecuaci贸n de Biomasa 1", value="Xm * (1 - exp(-um * (t - t_lag)))", lines=2, placeholder="Ej: Xm * (1 - exp(-um * (t - t_lag)))")
33
  biomass_param1_ui = gr.Textbox(label="Par谩metros Biomasa 1", value="Xm, um, t_lag", info="Nombres, coma sep. Use 't' para tiempo. 'X_val' para X(t) en S/P.")
34
  biomass_bound1_ui = gr.Textbox(label="L铆mites Biomasa 1", value="(0, np.inf), (0, np.inf), (0, np.inf)", info="Formato: (low,high). Use np.inf.")
 
88
 
89
  # L贸gica para mostrar/ocultar campos de ecuaci贸n din谩micamente
90
  def update_eq_visibility(count_value):
91
+ count = int(count_value)
92
+ return gr.update(visible=count >= 2), gr.update(visible=count >= 3)
 
 
93
 
94
  biomass_eq_count_ui.change(fn=update_eq_visibility, inputs=biomass_eq_count_ui, outputs=[biomass_col2_container, biomass_col3_container])
95
  substrate_eq_count_ui.change(fn=update_eq_visibility, inputs=substrate_eq_count_ui, outputs=[substrate_col2_container, substrate_col3_container])
 
103
  with gr.Column(scale=3):
104
  analysis_output = gr.Markdown(label="An谩lisis del Modelo por IA")
105
 
 
106
  all_inputs_for_button = [
107
  file_input,
108
  biomass_eq1_ui, biomass_eq2_ui, biomass_eq3_ui,
 
129
  outputs=outputs_for_button
130
  )
131
 
132
+ # Inicializar visibilidad usando demo.load
 
133
  def set_initial_visibility_on_load_wrapper(b_c_val, s_c_val, p_c_val):
 
 
 
134
  b_c_int, s_c_int, p_c_int = int(b_c_val), int(s_c_val), int(p_c_val)
135
 
136
  b_vis2_upd, b_vis3_upd = update_eq_visibility(b_c_int)
137
  s_vis2_upd, s_vis3_upd = update_eq_visibility(s_c_int)
138
  p_vis2_upd, p_vis3_upd = update_eq_visibility(p_c_int)
139
 
140
+ # Devolver los resultados de gr.update para cada componente de salida
141
  return b_vis2_upd, b_vis3_upd, s_vis2_upd, s_vis3_upd, p_vis2_upd, p_vis3_upd
142
 
143
  demo.load(