SergioSCA commited on
Commit
42a034b
·
verified ·
1 Parent(s): fe3f53f

Update functions.py

Browse files
Files changed (1) hide show
  1. functions.py +25 -18
functions.py CHANGED
@@ -84,7 +84,7 @@ def generar_dataset(encabezado, datasets_seleccionados, pagina_actual=1, filas_p
84
  except Exception as e:
85
  raise ValueError(f"Error al generar el dataset: {str(e)}")
86
 
87
- # Generar encabezado localmente
88
  def generar_encabezado(tareas_seleccionadas):
89
  MODALIDAD_TAREAS = cargar_modalidades_tareas()
90
 
@@ -92,30 +92,37 @@ def generar_encabezado(tareas_seleccionadas):
92
  raise ValueError("Selecciona al menos una tarea.")
93
 
94
  columnas = ["id"]
95
- modalidades_usadas = set()
96
- tareas_procesadas = set()
97
 
98
- # Mapear tareas a sus modalidades y columnas
99
  for tarea in tareas_seleccionadas:
100
  for modalidad, datos in MODALIDAD_TAREAS.items():
101
  if tarea in datos["tareas"]:
102
- # Añadir columnas de la modalidad una vez
103
- if modalidad not in modalidades_usadas:
104
- columnas.extend(datos["columnas"])
105
- modalidades_usadas.add(modalidad)
106
- # Añadir columna de la tarea
107
- columna_tarea = f"{tarea.lower().replace(' ', '_')}_label"
108
- if columna_tarea not in tareas_procesadas:
109
- columnas.append(columna_tarea)
110
- tareas_procesadas.add(columna_tarea)
 
 
 
 
111
 
112
- # Optimizar columnas (ej. ordenar y eliminar redundancias)
113
- columnas_optimizadas = ["id"] + sorted(
114
- columnas[1:],
115
- key=lambda x: (x.endswith("_input"), x) # Priorizar columnas de entrada <button class="citation-flag" data-index="4">
 
 
 
 
 
116
  )
117
 
118
- return ",".join(columnas_optimizadas)
119
 
120
  def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
121
  max_reintentos = 3
 
84
  except Exception as e:
85
  raise ValueError(f"Error al generar el dataset: {str(e)}")
86
 
87
+ # Función para generar el encabezado
88
  def generar_encabezado(tareas_seleccionadas):
89
  MODALIDAD_TAREAS = cargar_modalidades_tareas()
90
 
 
92
  raise ValueError("Selecciona al menos una tarea.")
93
 
94
  columnas = ["id"]
95
+ columnas_modulos = set()
 
96
 
 
97
  for tarea in tareas_seleccionadas:
98
  for modalidad, datos in MODALIDAD_TAREAS.items():
99
  if tarea in datos["tareas"]:
100
+ # Añadir columnas generales de la modalidad
101
+ columnas_generales = datos.get("columnas_generales", [])
102
+ for col in columnas_generales:
103
+ if col not in columnas_modulos:
104
+ columnas.append(col)
105
+ columnas_modulos.add(col)
106
+
107
+ # Añadir columnas específicas de la tarea
108
+ columnas_tarea = datos["tareas"][tarea]
109
+ for col in columnas_tarea:
110
+ if col not in columnas_modulos:
111
+ columnas.append(col)
112
+ columnas_modulos.add(col)
113
 
114
+ # Optimizar orden (inputs primero, outputs después, labels al final)
115
+ columnas_ordenadas = sorted(
116
+ columnas,
117
+ key=lambda x: (
118
+ "input" in x, # Priorizar columnas de entrada
119
+ "output" in x, # Luego columnas de salida
120
+ "label" in x # Finalizar con labels
121
+ ),
122
+ reverse=True
123
  )
124
 
125
+ return ",".join(columnas_ordenadas)
126
 
127
  def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
128
  max_reintentos = 3