#!/usr/bin/env python3 # © 2015 James R. Barlow: github.com/jbarlow83 from subprocess import STDOUT, CalledProcessError, check_output import sys import os import re from functools import lru_cache from . import ExitCode @lru_cache(maxsize=1) def version(): args_tess = [ 'tesseract', '--version' ] try: versions = check_output( args_tess, close_fds=True, universal_newlines=True, stderr=STDOUT) except CalledProcessError: print("Could not find Tesseract executable on system PATH.") sys.exit(ExitCode.missing_dependency) tesseract_version = re.match(r'tesseract\s(.+)', versions).group(1) return tesseract_version @lru_cache(maxsize=1) def languages(): args_tess = [ 'tesseract', '--list-langs' ] try: langs = check_output( args_tess, close_fds=True, universal_newlines=True, stderr=STDOUT) except CalledProcessError as e: print("Tesseract failed to report available languages.") print("Output from Tesseract:") print("-" * 40) print(e.output) sys.exit(ExitCode.missing_dependency) return set(lang.strip() for lang in langs.splitlines()[1:]) HOCR_TEMPLATE = '''

'''