GraphGen / webui /utils /preview_file.py
github-actions[bot]
Auto-sync from demo at Fri Sep 26 08:35:55 UTC 2025
28d211c
import codecs
import os
import gradio as gr
import pandas as pd
def preview_file(file):
if file is None:
return gr.update(visible=False), gr.update(visible=False)
path = file.name
ext = os.path.splitext(path)[1].lower()
try:
if ext == ".csv":
df = pd.read_csv(path, nrows=10)
return gr.update(visible=False), gr.update(value=df, visible=True)
with codecs.open(path, "r", encoding="utf-8") as f:
text = f.read(5000)
if len(text) == 5000:
text += "\n\n... (truncated at 5000 chars)"
return gr.update(
value=text, visible=True, language="json" if ext != ".txt" else None
), gr.update(visible=False)
except Exception as e: # pylint: disable=broad-except
return gr.update(
value=f"Preview failed: {e}", visible=True, language=None
), gr.update(visible=False)