Spaces:
Build error
Build error
| import gradio as gr | |
| from analisis import AnalizadorDatos | |
| analizador_global = None | |
| def cargar_y_mostrar(file): | |
| global analizador_global | |
| analizador = AnalizadorDatos(file.name) | |
| if not analizador.cargar_datos(): | |
| return "Error al cargar archivo", None, None | |
| analizador_global = analizador | |
| return ( | |
| f"Archivo cargado correctamente: {analizador.metadata['nombre']}\n" | |
| f"- Tamaño: {analizador.metadata['tamaño_mb']} MB\n" | |
| f"- Filas: {len(analizador.df)}\n" | |
| f"- Columnas: {len(analizador.df.columns)}\n", | |
| analizador.df.head(), | |
| [col['nombre_columna'] for col in analizador.nulos_por_columna] | |
| ) | |
| def generar_graficos(columnas): | |
| global analizador_global | |
| if not analizador_global: | |
| return None | |
| graficos = analizador_global.generar_graficos(columnas) | |
| return [gr.Image(value=v['path'], label=k) for k, v in graficos.items()] | |
| def generar_reporte(): | |
| global analizador_global | |
| if not analizador_global: | |
| return None, None | |
| reporte_path = analizador_global.generar_reporte() | |
| reporte_nulos = analizador_global.generar_reporte_nulos() | |
| return reporte_path, reporte_nulos | |
| with gr.Blocks(title="Análisis exploratorio avanzado con R y Python") as demo: | |
| gr.Markdown("## Exploración de datos con R, Python y Gradio") | |
| with gr.Row(): | |
| archivo_input = gr.File(label="Sube un archivo", file_types=[".csv", ".xlsx", ".json", ".parquet"]) | |
| cargar_btn = gr.Button("Cargar archivo") | |
| estado_carga = gr.Textbox(label="Estado de carga", interactive=False) | |
| df_preview = gr.Dataframe(label="Vista previa") | |
| columnas_selector = gr.CheckboxGroup(label="Selecciona columnas para análisis", choices=[]) | |
| cargar_btn.click( | |
| fn=cargar_y_mostrar, | |
| inputs=[archivo_input], | |
| outputs=[estado_carga, df_preview, columnas_selector] | |
| ) | |
| graficos_output = gr.Group(label="Gráficos generados") | |
| graficar_btn = gr.Button("Generar gráficos") | |
| graficar_btn.click(fn=generar_graficos, inputs=[columnas_selector], outputs=[graficos_output]) | |
| with gr.Row(): | |
| generar_reporte_btn = gr.Button("Generar reporte") | |
| reporte_html = gr.File(label="Descargar reporte") | |
| reporte_nulos = gr.Textbox(label="Análisis de nulos") | |
| generar_reporte_btn.click( | |
| fn=generar_reporte, | |
| inputs=[], | |
| outputs=[reporte_html, reporte_nulos] | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |