Claude commited on
Commit
d22eba8
Β·
1 Parent(s): c755cde

fix: font_name reset per page, phase logs, per-book error surfacing

Browse files
Files changed (1) hide show
  1. smoke_signal_tab.py +10 -2
smoke_signal_tab.py CHANGED
@@ -1931,6 +1931,7 @@ def run_ocr(page_selection: str = "", page_exclusion: str = "", replace_book_que
1931
 
1932
  for _, row in eligible.iterrows():
1933
  book_id = row["book_id"]
 
1934
  profile_path = PROFILES_DIR / f"{book_id}_page_profile.json"
1935
  if not profile_path.exists():
1936
  log.append(log_line(f"βœ— {book_id}: no profile"))
@@ -2201,10 +2202,12 @@ def run_ocr(page_selection: str = "", page_exclusion: str = "", replace_book_que
2201
  except Exception:
2202
  pass
2203
 
 
2204
  # Second pass: build page-level OCR output and review queue.
2205
  for page_data in profile.get("pages", []):
2206
  page_num = page_data["page_number"]
2207
  route = page_data["route"]
 
2208
  if selected_pages_for_book is not None and int(page_num) not in selected_pages_for_book:
2209
  continue
2210
 
@@ -2303,7 +2306,12 @@ def run_ocr(page_selection: str = "", page_exclusion: str = "", replace_book_que
2303
  "reason_code": "",
2304
  })
2305
 
2306
- if doc is not None:
 
 
 
 
 
2307
  try:
2308
  doc.close()
2309
  except Exception:
@@ -2327,7 +2335,7 @@ def run_ocr(page_selection: str = "", page_exclusion: str = "", replace_book_que
2327
 
2328
  df.loc[df["book_id"] == book_id, "status"] = "ocred"
2329
  total_review = len(review_pages) + len(quarantine_pages)
2330
- log.append(log_line(f"βœ“ {book_id}: {len(ocr_pages)} selected pp β€” review queue: {total_review}"))
2331
 
2332
  qdf_new = pd.DataFrame(queue_rows)
2333
  if QUEUE_CSV.exists():
 
1931
 
1932
  for _, row in eligible.iterrows():
1933
  book_id = row["book_id"]
1934
+ log.append(log_line(f"β–Ά {book_id}: starting OCR"))
1935
  profile_path = PROFILES_DIR / f"{book_id}_page_profile.json"
1936
  if not profile_path.exists():
1937
  log.append(log_line(f"βœ— {book_id}: no profile"))
 
2202
  except Exception:
2203
  pass
2204
 
2205
+ log.append(log_line(f" β†’ {book_id}: batch OCR complete β€” building review queue"))
2206
  # Second pass: build page-level OCR output and review queue.
2207
  for page_data in profile.get("pages", []):
2208
  page_num = page_data["page_number"]
2209
  route = page_data["route"]
2210
+ font_name = page_data.get("font_name") # reset per page β€” prevents stale carry-over
2211
  if selected_pages_for_book is not None and int(page_num) not in selected_pages_for_book:
2212
  continue
2213
 
 
2306
  "reason_code": "",
2307
  })
2308
 
2309
+ except Exception as _book_err:
2310
+ import traceback as _tb
2311
+ log.append(log_line(f" βœ— {book_id}: UNHANDLED ERROR β€” {_book_err}"))
2312
+ log.append(log_line(_tb.format_exc()))
2313
+ finally:
2314
+ if doc is not None:
2315
  try:
2316
  doc.close()
2317
  except Exception:
 
2335
 
2336
  df.loc[df["book_id"] == book_id, "status"] = "ocred"
2337
  total_review = len(review_pages) + len(quarantine_pages)
2338
+ log.append(log_line(f"βœ“ {book_id}: {len(ocr_pages)} selected pp β€” review queue: {total_review} Β· queue write complete"))
2339
 
2340
  qdf_new = pd.DataFrame(queue_rows)
2341
  if QUEUE_CSV.exists():