SergioSCA commited on
Commit
33f2548
·
verified ·
1 Parent(s): fa4edc7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -11
app.py CHANGED
@@ -20,20 +20,35 @@ def validar_modalidades_tareas(modalidades_tareas):
20
  validar_modalidades_tareas(MODALIDAD_TAREAS)
21
 
22
  # Función para generar la gráfica de barras
23
- def generar_grafica_barras():
24
- modalidades = list(MODALIDAD_TAREAS.keys())
25
- cantidades = [len(MODALIDAD_TAREAS[modalidad]) for modalidad in modalidades]
 
 
 
 
 
26
 
27
  # Crear la gráfica de barras horizontal
28
  fig, ax = plt.subplots(figsize=(10, 6))
29
  ax.barh(modalidades, cantidades, color='skyblue', edgecolor='black')
30
- ax.set_xlabel('Cantidad de Tareas')
31
  ax.set_ylabel('Modalidades')
32
- ax.set_title('Cantidad de Tareas por Modalidad')
33
  ax.invert_yaxis() # Invertir el eje Y para que las modalidades aparezcan de arriba hacia abajo
34
 
35
  return fig
36
 
 
 
 
 
 
 
 
 
 
 
37
  # Función para buscar datasets compatibles en HuggingFace
38
  def buscar_datasets(tareas_seleccionadas, filtro_tamaño=None, filtro_licencia=None):
39
  query = "+".join(tareas_seleccionadas)
@@ -81,17 +96,32 @@ with gr.Blocks() as demo:
81
 
82
  # Panel 1: Lista de Tareas Disponibles con Checkboxes
83
  with gr.Row():
84
- #gr.Markdown("### Selecciona Tareas")
85
  todas_las_tareas = [tarea for tareas in MODALIDAD_TAREAS.values() for tarea in tareas]
86
  tareas_seleccionadas = gr.CheckboxGroup(choices=todas_las_tareas, label="Tareas Disponibles", interactive=True)
87
 
88
  # Panel 2: Gráfica de Barras
89
  with gr.Row():
90
- gr.Markdown("### Distribución de Tareas por Modalidad")
91
  grafica_barras = gr.Plot(label="Gráfica de Barras")
92
- grafica_barras.value = generar_grafica_barras()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
- # Panel 3: Buscar Datasets Compatibles con Filtros Adicionales
95
  with gr.Row():
96
  with gr.Column():
97
  filtro_tamaño = gr.Dropdown(choices=["small", "medium", "large"], label="Filtrar por Tamaño")
@@ -104,7 +134,7 @@ with gr.Blocks() as demo:
104
  outputs=datasets_encontrados
105
  )
106
 
107
- # Panel 4: Generar Dataset con Paginación
108
  with gr.Row():
109
  pagina_actual = gr.Number(value=1, label="Página Actual")
110
  filas_por_pagina = gr.Number(value=5, label="Filas por Página")
@@ -113,7 +143,7 @@ with gr.Blocks() as demo:
113
  btn_descargar_csv = gr.File(label="Descargar CSV")
114
  btn_generar_dataset.click(
115
  generar_dataset,
116
- inputs=[datasets_encontrados, pagina_actual, filas_por_pagina],
117
  outputs=vista_previa_csv
118
  )
119
 
 
20
  validar_modalidades_tareas(MODALIDAD_TAREAS)
21
 
22
  # Función para generar la gráfica de barras
23
+ def generar_grafica_barras(tareas_seleccionadas):
24
+ # Contar la cantidad de tareas seleccionadas por modalidad
25
+ conteo_modalidades = {}
26
+ for modalidad, tareas in MODALIDAD_TAREAS.items():
27
+ conteo_modalidades[modalidad] = len([tarea for tarea in tareas if tarea in tareas_seleccionadas])
28
+
29
+ modalidades = list(conteo_modalidades.keys())
30
+ cantidades = [conteo_modalidades[modalidad] for modalidad in modalidades]
31
 
32
  # Crear la gráfica de barras horizontal
33
  fig, ax = plt.subplots(figsize=(10, 6))
34
  ax.barh(modalidades, cantidades, color='skyblue', edgecolor='black')
35
+ ax.set_xlabel('Cantidad de Tareas Seleccionadas')
36
  ax.set_ylabel('Modalidades')
37
+ ax.set_title('Distribución de Tareas Seleccionadas por Modalidad')
38
  ax.invert_yaxis() # Invertir el eje Y para que las modalidades aparezcan de arriba hacia abajo
39
 
40
  return fig
41
 
42
+ # Función para generar el encabezado del CSV
43
+ def generar_encabezado(tareas_seleccionadas):
44
+ if not tareas_seleccionadas:
45
+ raise ValueError("Debes seleccionar al menos una tarea.")
46
+
47
+ columnas = ["id"] # Añadimos 'id' como primer elemento
48
+ for tarea in tareas_seleccionadas:
49
+ columnas.append(f"{tarea.lower().replace(' ', '_')}_label")
50
+ return ",".join(columnas)
51
+
52
  # Función para buscar datasets compatibles en HuggingFace
53
  def buscar_datasets(tareas_seleccionadas, filtro_tamaño=None, filtro_licencia=None):
54
  query = "+".join(tareas_seleccionadas)
 
96
 
97
  # Panel 1: Lista de Tareas Disponibles con Checkboxes
98
  with gr.Row():
99
+ gr.Markdown("### Selecciona Tareas")
100
  todas_las_tareas = [tarea for tareas in MODALIDAD_TAREAS.values() for tarea in tareas]
101
  tareas_seleccionadas = gr.CheckboxGroup(choices=todas_las_tareas, label="Tareas Disponibles", interactive=True)
102
 
103
  # Panel 2: Gráfica de Barras
104
  with gr.Row():
105
+ gr.Markdown("### Distribución de Tareas Seleccionadas por Modalidad")
106
  grafica_barras = gr.Plot(label="Gráfica de Barras")
107
+ btn_actualizar_grafica = gr.Button("Actualizar Gráfica")
108
+ btn_actualizar_grafica.click(
109
+ fn=lambda tareas: generar_grafica_barras(tareas),
110
+ inputs=tareas_seleccionadas,
111
+ outputs=grafica_barras
112
+ )
113
+
114
+ # Panel 3: Generar Encabezado del CSV
115
+ with gr.Row():
116
+ btn_generar_encabezado = gr.Button("Generar Encabezado del CSV")
117
+ encabezado_generado = gr.Textbox(label="Encabezado Generado", interactive=False)
118
+ btn_generar_encabezado.click(
119
+ fn=generar_encabezado,
120
+ inputs=tareas_seleccionadas,
121
+ outputs=encabezado_generado
122
+ )
123
 
124
+ # Panel 4: Buscar Datasets Compatibles con Filtros Adicionales
125
  with gr.Row():
126
  with gr.Column():
127
  filtro_tamaño = gr.Dropdown(choices=["small", "medium", "large"], label="Filtrar por Tamaño")
 
134
  outputs=datasets_encontrados
135
  )
136
 
137
+ # Panel 5: Generar Dataset con Paginación
138
  with gr.Row():
139
  pagina_actual = gr.Number(value=1, label="Página Actual")
140
  filas_por_pagina = gr.Number(value=5, label="Filas por Página")
 
143
  btn_descargar_csv = gr.File(label="Descargar CSV")
144
  btn_generar_dataset.click(
145
  generar_dataset,
146
+ inputs=[encabezado_generado, datasets_encontrados, pagina_actual, filas_por_pagina],
147
  outputs=vista_previa_csv
148
  )
149