axrzce commited on
Commit
6c917de
Β·
verified Β·
1 Parent(s): 74ffeb9

Deploy from GitHub main

Browse files
src/ui/compi_phase3_final_dashboard.py CHANGED
@@ -1367,13 +1367,23 @@ with tab_gallery:
1367
  if Path(p).exists():
1368
  try:
1369
  df = pd.read_csv(p)
1370
- df["source_log"] = Path(p).name
1371
- frames.append(df)
 
1372
  except Exception as e:
1373
  st.warning(f"Failed reading {p}: {e}")
1374
  if not frames:
1375
  return pd.DataFrame(columns=["filepath"])
1376
- return pd.concat(frames, ignore_index=True).drop_duplicates(subset=["filepath"])
 
 
 
 
 
 
 
 
 
1377
 
1378
  def scan_images():
1379
  """Scan output directory for images"""
@@ -1397,7 +1407,24 @@ with tab_gallery:
1397
  imgs_df = scan_images()
1398
  logs_df = read_logs()
1399
  ann_df = load_annotations()
1400
- meta_df = imgs_df.merge(logs_df, on="filepath", how="left")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1401
 
1402
  if meta_df.empty:
1403
  st.info("No images found in outputs/. Generate some images first.")
@@ -1569,13 +1596,23 @@ with tab_export:
1569
  if Path(p).exists():
1570
  try:
1571
  df = pd.read_csv(p)
1572
- df["source_log"] = Path(p).name
1573
- frames.append(df)
 
1574
  except Exception as e:
1575
  st.warning(f"Read fail {p}: {e}")
1576
  if not frames:
1577
  return pd.DataFrame(columns=["filepath"])
1578
- return pd.concat(frames, ignore_index=True).drop_duplicates(subset=["filepath"])
 
 
 
 
 
 
 
 
 
1579
 
1580
  def scan_imgs():
1581
  """Scan images for export"""
@@ -1591,7 +1628,23 @@ with tab_export:
1591
  if imgs_df.empty:
1592
  st.info("No images to export yet. Generate some images first.")
1593
  else:
1594
- meta_df = imgs_df.merge(logs_df, on="filepath", how="left")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1595
 
1596
  # Display available images
1597
  st.markdown("### πŸ“‹ Available Images")
 
1367
  if Path(p).exists():
1368
  try:
1369
  df = pd.read_csv(p)
1370
+ if not df.empty and "filepath" in df.columns:
1371
+ df["source_log"] = Path(p).name
1372
+ frames.append(df)
1373
  except Exception as e:
1374
  st.warning(f"Failed reading {p}: {e}")
1375
  if not frames:
1376
  return pd.DataFrame(columns=["filepath"])
1377
+ try:
1378
+ combined = pd.concat(frames, ignore_index=True)
1379
+ # Extra safety: ensure filepath column exists before deduplication
1380
+ if "filepath" in combined.columns and len(combined) > 0:
1381
+ return combined.drop_duplicates(subset=["filepath"])
1382
+ else:
1383
+ return combined
1384
+ except Exception as e:
1385
+ st.warning(f"Failed concatenating logs: {e}")
1386
+ return pd.DataFrame(columns=["filepath"])
1387
 
1388
  def scan_images():
1389
  """Scan output directory for images"""
 
1407
  imgs_df = scan_images()
1408
  logs_df = read_logs()
1409
  ann_df = load_annotations()
1410
+
1411
+ # Safe merge with error handling - extra robust for Spaces
1412
+ try:
1413
+ if (not imgs_df.empty and not logs_df.empty and
1414
+ "filepath" in logs_df.columns and "filepath" in imgs_df.columns and
1415
+ len(logs_df) > 0 and len(imgs_df) > 0):
1416
+ meta_df = imgs_df.merge(logs_df, on="filepath", how="left")
1417
+ else:
1418
+ meta_df = imgs_df.copy()
1419
+ # Ensure basic columns exist
1420
+ if "filepath" not in meta_df.columns and not meta_df.empty:
1421
+ meta_df["filepath"] = meta_df.get("filename", "unknown")
1422
+ except Exception as e:
1423
+ st.warning(f"Merge failed, using image data only: {e}")
1424
+ meta_df = imgs_df.copy()
1425
+ # Ensure basic columns exist even after error
1426
+ if not meta_df.empty and "filepath" not in meta_df.columns:
1427
+ meta_df["filepath"] = meta_df.get("filename", "unknown")
1428
 
1429
  if meta_df.empty:
1430
  st.info("No images found in outputs/. Generate some images first.")
 
1596
  if Path(p).exists():
1597
  try:
1598
  df = pd.read_csv(p)
1599
+ if not df.empty and "filepath" in df.columns:
1600
+ df["source_log"] = Path(p).name
1601
+ frames.append(df)
1602
  except Exception as e:
1603
  st.warning(f"Read fail {p}: {e}")
1604
  if not frames:
1605
  return pd.DataFrame(columns=["filepath"])
1606
+ try:
1607
+ combined = pd.concat(frames, ignore_index=True)
1608
+ # Extra safety: ensure filepath column exists before deduplication
1609
+ if "filepath" in combined.columns and len(combined) > 0:
1610
+ return combined.drop_duplicates(subset=["filepath"])
1611
+ else:
1612
+ return combined
1613
+ except Exception as e:
1614
+ st.warning(f"Failed concatenating export logs: {e}")
1615
+ return pd.DataFrame(columns=["filepath"])
1616
 
1617
  def scan_imgs():
1618
  """Scan images for export"""
 
1628
  if imgs_df.empty:
1629
  st.info("No images to export yet. Generate some images first.")
1630
  else:
1631
+ # Safe merge with error handling - extra robust for Spaces
1632
+ try:
1633
+ if (not imgs_df.empty and not logs_df.empty and
1634
+ "filepath" in logs_df.columns and "filepath" in imgs_df.columns and
1635
+ len(logs_df) > 0 and len(imgs_df) > 0):
1636
+ meta_df = imgs_df.merge(logs_df, on="filepath", how="left")
1637
+ else:
1638
+ meta_df = imgs_df.copy()
1639
+ # Ensure basic columns exist
1640
+ if "filepath" not in meta_df.columns and not meta_df.empty:
1641
+ meta_df["filepath"] = meta_df.get("filename", "unknown")
1642
+ except Exception as e:
1643
+ st.warning(f"Export merge failed, using image data only: {e}")
1644
+ meta_df = imgs_df.copy()
1645
+ # Ensure basic columns exist even after error
1646
+ if not meta_df.empty and "filepath" not in meta_df.columns:
1647
+ meta_df["filepath"] = meta_df.get("filename", "unknown")
1648
 
1649
  # Display available images
1650
  st.markdown("### πŸ“‹ Available Images")