Cleanup and make use of globbing for input files for binarization and ocr

This commit is contained in:
Patrick Jentsch
2021-03-15 12:45:05 +01:00
parent 104598039e
commit acbf61be05
5 changed files with 273 additions and 374 deletions

View File

@ -1,43 +1,43 @@
#!/usr/bin/env python3
# coding=utf-8
"""A wrapper to execute the OCR pipeline in a Docker container"""
"""A wrapper to execute the OCR pipeline in a Docker container."""
from argparse import ArgumentParser
import os
import subprocess
import sys
CONTAINER_IMAGE_TAG = '1.0.0'
CONTAINER_IMAGE = 'gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/ocr:{}'.format(CONTAINER_IMAGE_TAG) # noqa
CONTAINER_IMAGE = 'gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/ocr:1.0.0'
CONTAINER_INPUT_DIR = '/input'
CONTAINER_INTERMEDIATE_DIR = '/intermediate'
CONTAINER_LOG_DIR = '/logs'
CONTAINER_OUTPUT_DIR = '/output'
UID = str(os.getuid())
GID = str(os.getgid())
parser = ArgumentParser(add_help=False)
parser.add_argument('-i', '--input-directory')
parser.add_argument('-o', '--output-directory')
parser.add_argument('--intermediate-directory')
parser.add_argument('-i', '--input-dir')
parser.add_argument('-o', '--output-dir')
parser.add_argument('--log-dir')
args, remaining_args = parser.parse_known_args()
cmd = ['docker', 'run', '--rm', '-it', '-u', '{}:{}'.format(UID, GID)]
if args.intermediate_directory is not None:
cmd += ['-v', '{}:{}'.format(os.path.abspath(args.intermediate_directory),
CONTAINER_INTERMEDIATE_DIR)]
remaining_args.insert(0, CONTAINER_INTERMEDIATE_DIR)
remaining_args.insert(0, '--intermediate-directory')
if args.output_directory is not None:
cmd += ['-v', '{}:{}'.format(os.path.abspath(args.output_directory),
CONTAINER_OUTPUT_DIR)]
remaining_args.insert(0, CONTAINER_OUTPUT_DIR)
remaining_args.insert(0, '-o')
if args.input_directory is not None:
cmd += ['-v', '{}:{}'.format(os.path.abspath(args.input_directory),
if args.log_dir is not None:
cmd += ['-v', '{}:{}'.format(os.path.abspath(args.log_dir),
CONTAINER_LOG_DIR)]
remaining_args.insert(0, CONTAINER_LOG_DIR)
remaining_args.insert(0, '--log-dir')
if args.input_dir is not None:
cmd += ['-v', '{}:{}'.format(os.path.abspath(args.input_dir),
CONTAINER_INPUT_DIR)]
remaining_args.insert(0, CONTAINER_INPUT_DIR)
remaining_args.insert(0, '-i')
if args.output_dir is not None:
cmd += ['-v', '{}:{}'.format(os.path.abspath(args.output_dir),
CONTAINER_OUTPUT_DIR)]
remaining_args.insert(0, CONTAINER_OUTPUT_DIR)
remaining_args.insert(0, '-o')
cmd.append(CONTAINER_IMAGE)
cmd += remaining_args
subprocess.run(cmd)
sys.exit(subprocess.run(cmd).returncode)