Add @posttask debug hooks
This commit is contained in:
+29
-1
@@ -21,7 +21,7 @@ from PIL import Image
|
||||
from functools import partial
|
||||
|
||||
from ruffus import transform, suffix, merge, active_if, regex, jobs_limit, \
|
||||
formatter, follows, split, collate, check_if_uptodate, graphviz
|
||||
formatter, follows, split, collate, check_if_uptodate, graphviz, posttask
|
||||
import ruffus.ruffus_exceptions as ruffus_exceptions
|
||||
import ruffus.cmdline as cmdline
|
||||
import ruffus.proxy_logger as proxy_logger
|
||||
@@ -304,6 +304,8 @@ if not set(options.language).issubset(tesseract.languages()):
|
||||
# ----------
|
||||
# Arguments
|
||||
|
||||
options.verbose_abbreviated_path = 1
|
||||
|
||||
if options.pdf_renderer == 'auto':
|
||||
options.pdf_renderer = 'hocr'
|
||||
|
||||
@@ -460,6 +462,11 @@ _pdfinfo_lock = manager.Lock()
|
||||
work_folder = mkdtemp(prefix="com.github.ocrmypdf.")
|
||||
|
||||
|
||||
def done_task(caller):
|
||||
"Useful as debug hook"
|
||||
pass
|
||||
|
||||
|
||||
@atexit.register
|
||||
def cleanup_working_files(*args):
|
||||
if options.keep_temporary_files:
|
||||
@@ -533,6 +540,7 @@ def triage_image_file(input_file, output_file, log):
|
||||
sys.exit(ExitCode.input_file)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'triage'))
|
||||
@transform(
|
||||
input=os.path.join(work_folder, 'origin'),
|
||||
filter=formatter('(?i)'),
|
||||
@@ -555,6 +563,7 @@ def triage(
|
||||
triage_image_file(input_file, output_file, log)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'repair_pdf'))
|
||||
@transform(
|
||||
input=triage,
|
||||
filter=suffix('.pdf'),
|
||||
@@ -648,6 +657,7 @@ def is_ocr_required(pageinfo, log):
|
||||
return ocr_required
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'split_pages'))
|
||||
@split(
|
||||
repair_pdf,
|
||||
os.path.join(work_folder, '*.page.pdf'),
|
||||
@@ -690,6 +700,7 @@ def split_pages(
|
||||
os.path.basename(filename)[0:6] + alt_suffix))
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'rasterize_preview'))
|
||||
@active_if(options.rotate_pages)
|
||||
@transform(
|
||||
input=split_pages,
|
||||
@@ -712,6 +723,7 @@ def rasterize_preview(
|
||||
log=log)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'orient_page'))
|
||||
@collate(
|
||||
input=[split_pages, rasterize_preview],
|
||||
filter=regex(r".*/(\d{6})(\.ocr|\.skip)(?:\.page\.pdf|\.preview\.jpg)"),
|
||||
@@ -786,6 +798,7 @@ def orient_page(
|
||||
pdfinfo[pageno] = pageinfo
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'rasterize_with_ghostscript'))
|
||||
@transform(
|
||||
input=orient_page,
|
||||
filter=suffix('.ocr.oriented.pdf'),
|
||||
@@ -822,6 +835,7 @@ def rasterize_with_ghostscript(
|
||||
log=log)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'preprocess_remove_background'))
|
||||
@transform(
|
||||
input=rasterize_with_ghostscript,
|
||||
filter=suffix(".page.png"),
|
||||
@@ -848,6 +862,7 @@ def preprocess_remove_background(
|
||||
re_symlink(input_file, output_file, log)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'preprocess_deskew'))
|
||||
@transform(
|
||||
input=preprocess_remove_background,
|
||||
filter=suffix(".pp-background.png"),
|
||||
@@ -870,6 +885,7 @@ def preprocess_deskew(
|
||||
leptonica.deskew(input_file, output_file, dpi)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'preprocess_clean'))
|
||||
@transform(
|
||||
input=preprocess_deskew,
|
||||
filter=suffix(".pp-deskew.png"),
|
||||
@@ -892,6 +908,7 @@ def preprocess_clean(
|
||||
unpaper.clean(input_file, output_file, dpi, log)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'ocr_tesseract_hocr'))
|
||||
@active_if(options.pdf_renderer == 'hocr')
|
||||
@transform(
|
||||
input=preprocess_clean,
|
||||
@@ -919,6 +936,7 @@ def ocr_tesseract_hocr(
|
||||
)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'select_image_for_pdf'))
|
||||
@collate(
|
||||
input=[rasterize_with_ghostscript, preprocess_remove_background,
|
||||
preprocess_deskew, preprocess_clean],
|
||||
@@ -962,6 +980,7 @@ def select_image_for_pdf(
|
||||
re_symlink(image, output_file)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'select_image_layer'))
|
||||
@active_if(options.pdf_renderer == 'hocr')
|
||||
@collate(
|
||||
input=[select_image_for_pdf, orient_page],
|
||||
@@ -997,6 +1016,7 @@ def select_image_layer(
|
||||
layout_fun=layout_fun, outputstream=pdf)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'render_hocr_page'))
|
||||
@active_if(options.pdf_renderer == 'hocr')
|
||||
@transform(
|
||||
input=ocr_tesseract_hocr,
|
||||
@@ -1019,6 +1039,7 @@ def render_hocr_page(
|
||||
showBoundingboxes=False, invisibleText=True)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'render_hocr_debug_page'))
|
||||
@active_if(options.pdf_renderer == 'hocr')
|
||||
@active_if(options.debug_rendering)
|
||||
@collate(
|
||||
@@ -1048,6 +1069,7 @@ class PdfMergeFailedError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'add_text_layer'))
|
||||
@active_if(options.pdf_renderer == 'hocr')
|
||||
@collate(
|
||||
input=[render_hocr_page, select_image_layer],
|
||||
@@ -1126,6 +1148,7 @@ def add_text_layer(
|
||||
pdf_output.write(out)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'tesseract_ocr_and_render_pdf'))
|
||||
@active_if(options.pdf_renderer == 'tesseract')
|
||||
@collate(
|
||||
input=[select_image_for_pdf, orient_page],
|
||||
@@ -1191,6 +1214,7 @@ def get_pdfmark(base_pdf):
|
||||
return pdfmark
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'generate_postscript_stub'))
|
||||
@active_if(options.output_type == 'pdfa')
|
||||
@transform(
|
||||
input=repair_pdf,
|
||||
@@ -1207,6 +1231,7 @@ def generate_postscript_stub(
|
||||
generate_pdfa_def(output_file, pdfmark)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'skip_page'))
|
||||
@transform(
|
||||
input=orient_page,
|
||||
filter=suffix('.skip.oriented.pdf'),
|
||||
@@ -1224,6 +1249,7 @@ def skip_page(
|
||||
re_symlink(input_file, output_file, log)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'merge_pages_ghostscript'))
|
||||
@active_if(options.output_type == 'pdfa')
|
||||
@merge(
|
||||
input=[add_text_layer, render_hocr_debug_page, skip_page,
|
||||
@@ -1255,6 +1281,7 @@ def merge_pages_ghostscript(
|
||||
ghostscript.generate_pdfa(pdf_pages, output_file, options.jobs or 1)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'merge_pages_qpdf'))
|
||||
@active_if(options.output_type == 'pdf')
|
||||
@merge(
|
||||
input=[add_text_layer, render_hocr_debug_page, skip_page,
|
||||
@@ -1301,6 +1328,7 @@ def merge_pages_qpdf(
|
||||
qpdf.merge(pdf_pages, output_file)
|
||||
|
||||
|
||||
@posttask(partial(done_task, 'copy_final'))
|
||||
@merge(
|
||||
input=[merge_pages_ghostscript, merge_pages_qpdf],
|
||||
output=options.output_file,
|
||||
|
||||
Reference in New Issue
Block a user