File size: 997 Bytes
798602c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import re
import tempfile
import gradio as gr
def sanitize_filename(name: str, default: str):
if not name or not name.strip():
return default
clean = re.sub(r'[\\/*?:"<>|]', "", name).strip()
return clean if clean else default
def dataframe_to_csv(df, filename):
if df is None:
gr.Warning("❌ No table available to download.")
return None
base = sanitize_filename(filename, "descriptive_statistics")
with tempfile.NamedTemporaryFile(
delete=False,
mode="w",
suffix=".csv",
prefix=base + "_",
encoding="utf-8",
) as tmp:
df.to_csv(tmp.name, index=False)
return tmp.name
def figure_to_png(fig, filename: str):
if fig is None:
return None
tmp = tempfile.NamedTemporaryFile(
delete=False,
suffix=".png",
prefix=filename + "_"
)
fig.savefig(tmp.name, dpi=200, bbox_inches="tight")
return tmp.name |