diff --git a/src/ocrmypdf/_defaults.py b/src/ocrmypdf/_defaults.py new file mode 100644 index 00000000..069b815a --- /dev/null +++ b/src/ocrmypdf/_defaults.py @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2024 James R. Barlow +# SPDX-License-Identifier: MPL-2.0 + +# Enforce English hegemony +DEFAULT_LANGUAGE = 'eng' + +# Default rotation threshold +DEFAULT_ROTATE_PAGES_THRESHOLD = 14.0 diff --git a/src/ocrmypdf/_validation.py b/src/ocrmypdf/_validation.py index edf6f5a2..efaf1943 100644 --- a/src/ocrmypdf/_validation.py +++ b/src/ocrmypdf/_validation.py @@ -20,6 +20,7 @@ import pikepdf import PIL from pluggy import PluginManager +from ocrmypdf._defaults import DEFAULT_LANGUAGE, DEFAULT_ROTATE_PAGES_THRESHOLD from ocrmypdf._exec import unpaper from ocrmypdf.exceptions import ( BadArgsError, @@ -30,17 +31,9 @@ from ocrmypdf.exceptions import ( from ocrmypdf.helpers import is_file_writable, monotonic, safe_symlink from ocrmypdf.subprocess import check_external_program -# ------------- -# External dependencies - -DEFAULT_LANGUAGE = 'eng' # Enforce English hegemony - log = logging.getLogger(__name__) -# -------- - - def check_platform() -> None: if sys.maxsize <= 2**32: # pragma: no cover log.warning( @@ -130,6 +123,11 @@ def check_options_preprocessing(options: Namespace) -> None: options.clean = True if options.unpaper_args and not options.clean: raise BadArgsError("--clean is required for --unpaper-args") + if ( + options.rotate_pages_threshold != DEFAULT_ROTATE_PAGES_THRESHOLD + and not options.rotate_pages + ): + raise BadArgsError("--rotate-pages is required for --rotate-pages-threshold") if options.clean: check_external_program( program='unpaper', diff --git a/src/ocrmypdf/cli.py b/src/ocrmypdf/cli.py index db925cc0..eb22c843 100644 --- a/src/ocrmypdf/cli.py +++ b/src/ocrmypdf/cli.py @@ -9,6 +9,7 @@ import argparse from collections.abc import Callable, Mapping from typing import Any, TypeVar +from ocrmypdf._defaults import DEFAULT_ROTATE_PAGES_THRESHOLD from ocrmypdf._version import PROGRAM_NAME as _PROGRAM_NAME from ocrmypdf._version import __version__ as _VERSION @@ -403,7 +404,7 @@ Online documentation is located at: ) advanced.add_argument( '--rotate-pages-threshold', - default=14.0, + default=DEFAULT_ROTATE_PAGES_THRESHOLD, type=numeric(float, 0, 1000), metavar='CONFIDENCE', help="Only rotate pages when confidence is above this value (arbitrary "