Spaces:
Runtime error
Runtime error
| import pandas as pd | |
| from typing import List, Dict, Any | |
| def format_results_for_dataframe(results: List[Dict[str, Any]]) -> pd.DataFrame: | |
| if not results: | |
| return pd.DataFrame(columns=["Título", "Autores", "Año", "DOI", "Fuente", "PDF URL"]) | |
| rows = [] | |
| for r in results: | |
| autores = r.get("authors", []) | |
| if isinstance(autores, list): | |
| autores = ", ".join(autores) | |
| rows.append({ | |
| "Título": r.get("title") or "N/A", | |
| "Autores": autores or "N/A", | |
| "Año": r.get("year", "N/A"), | |
| "DOI": r.get("doi", ""), | |
| "Fuente": r.get("source", "N/A"), | |
| "PDF URL": r.get("pdfUrl", ""), | |
| }) | |
| return pd.DataFrame(rows) | |
| def format_error(error: Exception) -> str: | |
| name = type(error).__name__ | |
| msg = str(error) | |
| if "Connect" in name or "connect" in msg: | |
| return f"**⚠️ Sin conexión:** {msg}" | |
| if "Timeout" in name or "timeout" in msg: | |
| return f"**⏱️ Timeout:** {msg}" | |
| return f"**❌ Error ({name}):** {msg}" | |
| def truncate_text(text: str, max_length: int = 500) -> str: | |
| if not text: | |
| return "" | |
| text = str(text) | |
| return text[:max_length] + "..." if len(text) > max_length else text | |