From 5f01c5e330ce8e0249ff167ae4f79fbb648b05c6 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Wed, 16 Jun 2021 00:08:56 -0700 Subject: [PATCH] Fix another species of Tesseract version number breaking regex Fixes #795 --- src/ocrmypdf/_exec/tesseract.py | 3 ++- tests/test_validation.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py index 119771ec..ac7b4fab 100644 --- a/src/ocrmypdf/_exec/tesseract.py +++ b/src/ocrmypdf/_exec/tesseract.py @@ -56,11 +56,12 @@ class TesseractLoggerAdapter(logging.LoggerAdapter): class TesseractVersion(StrictVersion): + version_re = re.compile( r''' ^(\d+) \. (\d+) (\. (\d+))? # groups: 1/major, 2/minor, 3/[skip], 4/patch [-]? # optional hyphen separator - (?:(alpha|beta|rc|dev)[.\-\ ]?(\d+)?)? # 5/prerelease, 6/prerelease_num + (?:(alpha|beta|rc|dev)?[.\-\ ]?(\d+)?)? # 5/prerelease, 6/prerelease_num (?:-(\d+)-g[0-9a-f]+)? # untagged git version $ ''', diff --git a/tests/test_validation.py b/tests/test_validation.py index fd4d6fc2..a027e17a 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -237,6 +237,13 @@ def test_version_comparison(): need_version='4.0.0', version_parser=TesseractVersion, ) + vd.check_external_program( + program="tesseract", + package="tesseract", + version_checker=lambda: 'v4.0.0.20181030', # Some Windows builds use this format + need_version='4.0.0', + version_parser=TesseractVersion, + ) vd.check_external_program( program="tesseract", package="tesseract",