diff --git a/src/ocrmypdf/_pipelines/common.py b/src/ocrmypdf/_pipelines/common.py index 9d0a330a..2029f0e9 100644 --- a/src/ocrmypdf/_pipelines/common.py +++ b/src/ocrmypdf/_pipelines/common.py @@ -5,7 +5,6 @@ import json import logging import logging.handlers import os -import threading from collections.abc import Sequence from dataclasses import dataclass from pathlib import Path @@ -48,21 +47,17 @@ from ocrmypdf.pdfa import file_claims_pdfa log = logging.getLogger(__name__) -tls = threading.local() -tls.pageno = None +def set_logging_tls(tls): + old_factory = logging.getLogRecordFactory() -old_factory = logging.getLogRecordFactory() + def wrapper(*args, **kwargs): + record = old_factory(*args, **kwargs) + if hasattr(tls, 'pageno'): + record.pageno = tls.pageno + return record - -def record_factory(*args, **kwargs): - record = old_factory(*args, **kwargs) - if hasattr(tls, 'pageno'): - record.pageno = tls.pageno - return record - - -logging.setLogRecordFactory(record_factory) + logging.setLogRecordFactory(wrapper) class PageResult(NamedTuple): diff --git a/src/ocrmypdf/_pipelines/hocr_to_ocr_pdf.py b/src/ocrmypdf/_pipelines/hocr_to_ocr_pdf.py index 21c3a88e..f6bd7cc7 100644 --- a/src/ocrmypdf/_pipelines/hocr_to_ocr_pdf.py +++ b/src/ocrmypdf/_pipelines/hocr_to_ocr_pdf.py @@ -30,6 +30,7 @@ from ocrmypdf._pipelines.common import ( HOCRResult, post_process, report_output_pdf, + set_logging_tls, setup_pipeline, worker_init, ) @@ -37,21 +38,11 @@ from ocrmypdf._plugin_manager import OcrmypdfPluginManager log = logging.getLogger(__name__) + tls = threading.local() tls.pageno = None - -old_factory = logging.getLogRecordFactory() - - -def record_factory(*args, **kwargs): - record = old_factory(*args, **kwargs) - if hasattr(tls, 'pageno'): - record.pageno = tls.pageno - return record - - -logging.setLogRecordFactory(record_factory) +set_logging_tls(tls) def exec_hocrtransform_sync(page_context: PageContext) -> HOCRResult: diff --git a/src/ocrmypdf/_pipelines/pdf_to_hocr.py b/src/ocrmypdf/_pipelines/pdf_to_hocr.py index c37c2f63..a84e25a1 100644 --- a/src/ocrmypdf/_pipelines/pdf_to_hocr.py +++ b/src/ocrmypdf/_pipelines/pdf_to_hocr.py @@ -27,6 +27,7 @@ from ocrmypdf._pipeline import ( from ocrmypdf._pipelines.common import ( HOCRResult, process_page, + set_logging_tls, setup_pipeline, worker_init, ) @@ -37,22 +38,10 @@ from ocrmypdf._validation import ( log = logging.getLogger(__name__) - tls = threading.local() tls.pageno = None - -old_factory = logging.getLogRecordFactory() - - -def record_factory(*args, **kwargs): - record = old_factory(*args, **kwargs) - if hasattr(tls, 'pageno'): - record.pageno = tls.pageno - return record - - -logging.setLogRecordFactory(record_factory) +set_logging_tls(tls) def exec_page_hocr_sync(page_context: PageContext) -> HOCRResult: diff --git a/src/ocrmypdf/_pipelines/standard.py b/src/ocrmypdf/_pipelines/standard.py index e4e5fff0..febde298 100644 --- a/src/ocrmypdf/_pipelines/standard.py +++ b/src/ocrmypdf/_pipelines/standard.py @@ -40,6 +40,7 @@ from ocrmypdf._pipelines.common import ( post_process, process_page, report_output_pdf, + set_logging_tls, setup_pipeline, worker_init, ) @@ -59,18 +60,7 @@ log = logging.getLogger(__name__) tls = threading.local() tls.pageno = None - -old_factory = logging.getLogRecordFactory() - - -def record_factory(*args, **kwargs): - record = old_factory(*args, **kwargs) - if hasattr(tls, 'pageno'): - record.pageno = tls.pageno - return record - - -logging.setLogRecordFactory(record_factory) +set_logging_tls(tls) def _image_to_ocr_text(