Spaces:
Sleeping
Sleeping
Claude commited on
Commit Β·
d22eba8
1
Parent(s): c755cde
fix: font_name reset per page, phase logs, per-book error surfacing
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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():
|