From 46618f422912034b0b9af5c873e5ed276217e444 Mon Sep 17 00:00:00 2001 From: Robert Sachunsky Date: Mon, 31 Mar 2025 14:11:50 +0200 Subject: [PATCH] allow more empty imports for optional dependencies --- src/eynollah/eynollah.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/eynollah/eynollah.py b/src/eynollah/eynollah.py index bfc93f0..e74039d 100644 --- a/src/eynollah/eynollah.py +++ b/src/eynollah/eynollah.py @@ -7,6 +7,7 @@ document layout analysis (segmentation) with output in PAGE-XML """ from logging import Logger +from difflib import SequenceMatcher as sq import math import os import sys @@ -17,23 +18,34 @@ import warnings from functools import partial from pathlib import Path from multiprocessing import cpu_count -from loky import ProcessPoolExecutor import gc +import copy +import json + +from loky import ProcessPoolExecutor from PIL.Image import Image -from ocrd import OcrdPage -from ocrd_utils import getLogger +import xml.etree.ElementTree as ET import cv2 import numpy as np -import torch -from difflib import SequenceMatcher as sq +from scipy.signal import find_peaks +from scipy.ndimage import gaussian_filter1d +from numba import cuda + +from ocrd import OcrdPage +from ocrd_utils import getLogger + +try: + import torch +except ImportError: + torch = None +try: + import matplotlib.pyplot as plt +except ImportError: + plt = None try: from transformers import TrOCRProcessor, VisionEncoderDecoderModel except ImportError: TrOCRProcessor = VisionEncoderDecoderModel = None -from numba import cuda -import copy -from scipy.signal import find_peaks -from scipy.ndimage import gaussian_filter1d os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" #os.environ['CUDA_VISIBLE_DEVICES'] = '-1' @@ -45,12 +57,9 @@ from tensorflow.keras.models import load_model sys.stderr = stderr tf.get_logger().setLevel("ERROR") warnings.filterwarnings("ignore") -import matplotlib.pyplot as plt # use tf1 compatibility for keras backend from tensorflow.compat.v1.keras.backend import set_session from tensorflow.keras import layers -import json -import xml.etree.ElementTree as ET from tensorflow.keras.layers import StringLookup from .utils.contour import (