"""
Vendor 包 - 第三方依赖
包含从 MinerU 移植的核心模块

重构说明：
- 设备检测工具已迁移到 ocr_utils.device_utils
- 图像处理工具已迁移到 ocr_utils.image_utils
- 保留 OCR 推理专用的 infer/ 和 pytorchocr/ 模块
"""

# 从 ocr_utils 导入设备工具
try:
    from ocr_utils.device_utils import get_device, get_device_name
except ImportError:
    # 降级：如果 ocr_utils 不可用，尝试从本地导入（向后兼容）
    try:
        from .device_utils import get_device, get_device_name
    except ImportError:
        def get_device():
            return "cpu"
        def get_device_name():
            return "CPU"

# 从 ocr_utils 导入图像处理工具
try:
    from ocr_utils.image_utils import (
        check_img,
        preprocess_image,
        bbox_to_points,
        points_to_bbox
    )
except ImportError:
    # 降级：如果 ocr_utils 不可用，尝试从本地导入（向后兼容）
    try:
        from .ocr_utils import (
            check_img,
            preprocess_image,
            bbox_to_points,
            points_to_bbox
        )
    except ImportError:
        # 如果都不可用，提供占位函数
        def check_img(img):
            return img
        def preprocess_image(img):
            return img
        def bbox_to_points(bbox):
            raise NotImplementedError("ocr_utils.image_utils not available")
        def points_to_bbox(points):
            raise NotImplementedError("ocr_utils.image_utils not available")

# 从本地 vendor 目录导入 OCR 专用工具
from .ocr_utils import (
    sorted_boxes,
    merge_det_boxes,
    update_det_boxes,
    get_rotate_crop_image
)

# 导入 OCR 推理模块
from .infer import TextSystem
from .infer import pytorchocr_utility as utility

__all__ = [
    # 设备工具（从 ocr_utils 导入）
    'get_device',
    'get_device_name',
    
    # 图像处理工具（从 ocr_utils 导入）
    'check_img',
    'preprocess_image',
    'bbox_to_points',
    'points_to_bbox',
    
    # OCR 工具（从本地 ocr_utils 导入）
    'sorted_boxes',
    'merge_det_boxes',
    'update_det_boxes',
    'get_rotate_crop_image',
    
    # OCR 引擎
    'TextSystem',
    'utility',
]

