From 126f34c468c213e71579198aa01e7b2945792b7d Mon Sep 17 00:00:00 2001 From: Robert Sachunsky Date: Tue, 8 Apr 2025 19:38:36 +0200 Subject: [PATCH 1/7] run_processor/get_processor: replace 'None' with empty str --- src/ocrd/processor/helpers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ocrd/processor/helpers.py b/src/ocrd/processor/helpers.py index 10fa870c4..eb191e72c 100644 --- a/src/ocrd/processor/helpers.py +++ b/src/ocrd/processor/helpers.py @@ -276,7 +276,7 @@ def get_processor( # set current processing parameters processor.workspace = workspace processor.page_id = page_id - processor.input_file_grp = input_file_grp - processor.output_file_grp = output_file_grp + processor.input_file_grp = input_file_grp or '' + processor.output_file_grp = output_file_grp or '' return processor raise ValueError("Processor class is not known") From 4395158a3a5c1344dc382f943ad10fac2626ab33 Mon Sep 17 00:00:00 2001 From: Robert Sachunsky Date: Tue, 8 Apr 2025 19:39:32 +0200 Subject: [PATCH 2/7] ocrd_cli_wrap_processor: allow 'None' for file grp arguments --- src/ocrd/decorators/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ocrd/decorators/__init__.py b/src/ocrd/decorators/__init__.py index 6e0ceb1f1..4e4f0d2b4 100644 --- a/src/ocrd/decorators/__init__.py +++ b/src/ocrd/decorators/__init__.py @@ -107,10 +107,10 @@ def resolve(name): if 'parameter_override' in kwargs: set_json_key_value_overrides(kwargs['parameter'], *kwargs.pop('parameter_override')) # Assert -I / -O - if not kwargs['input_file_grp']: + if 'input_file_grp' not in kwargs: raise ValueError('-I/--input-file-grp is required') - if not kwargs['output_file_grp']: - raise ValueError('-O/--output-file-grp is required') + if 'output_file_grp' not in kwargs: + raise ValueError('-O/--output-file-grp is required') # actually, it may be None resolver = Resolver() working_dir, mets, _, mets_server_url = \ resolver.resolve_mets_arguments(working_dir, mets, None, mets_server_url) From 9ea4192b9ea2abb4599422dfa5b162bb5a40c75a Mon Sep 17 00:00:00 2001 From: Robert Sachunsky Date: Tue, 8 Apr 2025 20:16:33 +0200 Subject: [PATCH 3/7] GHA CI: remove u20 runner here, too --- .github/workflows/unit-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 2ab5ee46c..d9e960fde 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -25,7 +25,6 @@ jobs: - '3.12' os: - ubuntu-22.04 - - ubuntu-20.04 - macos-latest steps: From 4031909427a999a2fa9cc15a98587d37a8f15cca Mon Sep 17 00:00:00 2001 From: Robert Sachunsky <38561704+bertsky@users.noreply.github.com> Date: Thu, 10 Apr 2025 18:18:19 +0200 Subject: [PATCH 4/7] ocrd_cli_wrap_processor: strictly require non-empty input_file_grp kwarg Co-authored-by: Konstantin Baierer --- src/ocrd/decorators/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ocrd/decorators/__init__.py b/src/ocrd/decorators/__init__.py index 4e4f0d2b4..cc344a599 100644 --- a/src/ocrd/decorators/__init__.py +++ b/src/ocrd/decorators/__init__.py @@ -107,7 +107,7 @@ def resolve(name): if 'parameter_override' in kwargs: set_json_key_value_overrides(kwargs['parameter'], *kwargs.pop('parameter_override')) # Assert -I / -O - if 'input_file_grp' not in kwargs: + if not kwargs.get('input_file_grp', None): raise ValueError('-I/--input-file-grp is required') if 'output_file_grp' not in kwargs: raise ValueError('-O/--output-file-grp is required') # actually, it may be None From b050e31a2f12c5e26e25578cabe565b160a37b62 Mon Sep 17 00:00:00 2001 From: Robert Sachunsky <38561704+bertsky@users.noreply.github.com> Date: Fri, 11 Apr 2025 12:57:34 +0200 Subject: [PATCH 5/7] deps-ubuntu: do apt-get update first --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 88b57511a..9a2e3cb96 100644 --- a/Makefile +++ b/Makefile @@ -179,6 +179,7 @@ deps-torch: # Dependencies for deployment in an ubuntu/debian linux deps-ubuntu: + apt-get update apt-get install -y python3 imagemagick libgeos-dev libxml2-dev libxslt-dev libssl-dev # Dependencies for deployment via Conda From ab8c511b28c5024ab96326f8fdd02ace134ef812 Mon Sep 17 00:00:00 2001 From: Robert Sachunsky <38561704+bertsky@users.noreply.github.com> Date: Fri, 11 Apr 2025 20:16:04 +0200 Subject: [PATCH 6/7] Processor.zip_input_files: fix check for OCRD_MISSING_INPUT --- src/ocrd/processor/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ocrd/processor/base.py b/src/ocrd/processor/base.py index 8a71d2e1c..2d9cbf0fd 100644 --- a/src/ocrd/processor/base.py +++ b/src/ocrd/processor/base.py @@ -1112,7 +1112,7 @@ def zip_input_files(self, require_first=True, mimetype=None, on_error='skip'): if not ifiles[i]: # could be from non-unique with on_error=skip or from true gap self._base_logger.error(f'Found no file for page {page} in file group {ifg}') - if config.OCRD_MISSING_INPUT == 'abort': + if config.OCRD_MISSING_INPUT == 'ABORT': raise MissingInputFile(ifg, page, mimetype) if not any(ifiles): # must be from non-unique with on_error=skip From e6f53febcbea7a21a547828b3f473f33d52e8139 Mon Sep 17 00:00:00 2001 From: Robert Sachunsky <38561704+bertsky@users.noreply.github.com> Date: Tue, 15 Apr 2025 16:28:51 +0200 Subject: [PATCH 7/7] ocrd-tool.json: add dockerhub key --- src/ocrd/processor/builtin/dummy/ocrd-tool.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ocrd/processor/builtin/dummy/ocrd-tool.json b/src/ocrd/processor/builtin/dummy/ocrd-tool.json index c79afcacb..691e8cfab 100644 --- a/src/ocrd/processor/builtin/dummy/ocrd-tool.json +++ b/src/ocrd/processor/builtin/dummy/ocrd-tool.json @@ -1,6 +1,7 @@ { "version": "1.0.0", "git_url": "https://github.com/OCR-D/core", + "dockerhub": "ocrd/core", "tools": { "ocrd-dummy": { "executable": "ocrd-dummy",