wekey1998 commited on
Commit
e5b0bb1
·
verified ·
1 Parent(s): 9b1ab7e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -2
app.py CHANGED
@@ -161,14 +161,30 @@ def _download_buttons(results: Dict[str, Any], df: pd.DataFrame):
161
  # PDF
162
  with c3:
163
  try:
164
- pdf_obj = generate_pdf_report(results) # may return bytes or a file path
 
 
 
165
  if isinstance(pdf_obj, (bytes, bytearray)):
166
  pdf_bytes = pdf_obj
 
 
 
 
 
 
 
 
 
 
167
  else:
168
- # Assume it's a file path
169
  with open(pdf_obj, "rb") as f:
170
  pdf_bytes = f.read()
171
 
 
 
 
172
  st.download_button(
173
  "Download PDF",
174
  data=pdf_bytes,
@@ -181,6 +197,7 @@ def _download_buttons(results: Dict[str, Any], df: pd.DataFrame):
181
  logger.exception(f"PDF generation failed: {e}")
182
 
183
 
 
184
  def _render_audio(audio_files: Dict[str, Any]):
185
  if not audio_files:
186
  return
 
161
  # PDF
162
  with c3:
163
  try:
164
+ pdf_obj = generate_pdf_report(results)
165
+
166
+ # Accept bytes, BytesIO/file-like, or path
167
+ pdf_bytes = None
168
  if isinstance(pdf_obj, (bytes, bytearray)):
169
  pdf_bytes = pdf_obj
170
+ elif hasattr(pdf_obj, "read"): # file-like object
171
+ try:
172
+ pdf_bytes = pdf_obj.read()
173
+ if not pdf_bytes and hasattr(pdf_obj, "getvalue"):
174
+ pdf_bytes = pdf_obj.getvalue()
175
+ finally:
176
+ try:
177
+ pdf_obj.close()
178
+ except Exception:
179
+ pass
180
  else:
181
+ # Assume file path
182
  with open(pdf_obj, "rb") as f:
183
  pdf_bytes = f.read()
184
 
185
+ if not pdf_bytes:
186
+ raise ValueError("Empty PDF bytes")
187
+
188
  st.download_button(
189
  "Download PDF",
190
  data=pdf_bytes,
 
197
  logger.exception(f"PDF generation failed: {e}")
198
 
199
 
200
+
201
  def _render_audio(audio_files: Dict[str, Any]):
202
  if not audio_files:
203
  return