From ddfe4ddbdd9b1e51ec4111d9ec576de2b9ddcdc2 Mon Sep 17 00:00:00 2001 From: David Martin Date: Mon, 11 Jun 2018 20:34:09 +1000 Subject: [PATCH] Use absolute import to work around circular builder/tesseract import issues. Unfortunately builders.py now imports psm_parameter from tesseract.py, and tesseract.py imports DigitBuilder from builders.py. We could move psm_parameter into util.py, but it needs get_version as well and it is very much tesseract specific. I do not see a great solution for this and keeping the circular import seems the least bad solution. We keep it from breaking the program by using an explicit import of the module [0]. [0] https://stackoverflow.com/a/37126790 --- src/pyocr/builders.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pyocr/builders.py b/src/pyocr/builders.py index f27b829..710839f 100644 --- a/src/pyocr/builders.py +++ b/src/pyocr/builders.py @@ -14,7 +14,7 @@ import xml.dom.minidom import logging -from .tesseract import psm_parameter +import pyocr.tesseract from .util import to_unicode logger = logging.getLogger(__name__) @@ -306,7 +306,7 @@ class TextBuilder(BaseBuilder): def __init__(self, tesseract_layout=3, cuneiform_dotmatrix=False, cuneiform_fax=False, cuneiform_singlecolumn=False): file_ext = ["txt"] - tess_flags = [psm_parameter(), str(tesseract_layout)] + tess_flags = [pyocr.tesseract.psm_parameter(), str(tesseract_layout)] cun_args = ["-f", "text"] # Add custom cuneiform parameters if needed for par, arg in [(cuneiform_dotmatrix, "--dotmatrix"), @@ -563,7 +563,7 @@ class WordBoxBuilder(BaseBuilder): def __init__(self, tesseract_layout=1): file_ext = ["html", "hocr"] - tess_flags = [psm_parameter(), str(tesseract_layout)] + tess_flags = [pyocr.tesseract.psm_parameter(), str(tesseract_layout)] tess_conf = ["hocr"] cun_args = ["-f", "hocr"] super(WordBoxBuilder, self).__init__(file_ext, tess_flags, tess_conf, @@ -639,7 +639,7 @@ class LineBoxBuilder(BaseBuilder): def __init__(self, tesseract_layout=1): file_ext = ["html", "hocr"] - tess_flags = [psm_parameter(), str(tesseract_layout)] + tess_flags = [pyocr.tesseract.psm_parameter(), str(tesseract_layout)] tess_conf = ["hocr"] cun_args = ["-f", "hocr"] super(LineBoxBuilder, self).__init__(file_ext, tess_flags, tess_conf,