__init__.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. """
  2. OCR 工具包
  3. 整合了文档处理相关的工具函数,包括:
  4. - PDF 处理工具
  5. - JSON/Markdown/HTML 格式化工具
  6. - 文件处理工具
  7. - 数字标准化工具
  8. """
  9. # PDFUtils 和 extract_pdf_pages 使用延迟导入,避免在 PaddleX 环境中触发 MinerU 导入检查
  10. # from .pdf_utils import PDFUtils # 已移除,改为延迟导入
  11. # from .pdf_extractor import extract_pdf_pages # 已移除,改为延迟导入(因为它依赖 PDFUtils)
  12. from .json_formatters import JSONFormatters
  13. from .markdown_generator import MarkdownGenerator
  14. from .html_generator import HTMLGenerator
  15. from .visualization_utils import VisualizationUtils
  16. from .output_formatter_v2 import OutputFormatterV2, save_mineru_format
  17. from .normalize_financial_numbers import (
  18. normalize_financial_numbers,
  19. normalize_json_table,
  20. normalize_markdown_table,
  21. normalize_json_file
  22. )
  23. from .file_utils import (
  24. get_input_files,
  25. collect_pid_files,
  26. get_image_files_from_dir,
  27. get_image_files_from_list,
  28. get_image_files_from_csv,
  29. convert_pdf_to_images,
  30. split_files,
  31. create_temp_file_list,
  32. parse_page_range
  33. )
  34. from .log_utils import setup_logging
  35. __all__ = [
  36. # PDF 工具
  37. 'PDFUtils',
  38. 'extract_pdf_pages',
  39. # JSON 格式化
  40. 'JSONFormatters',
  41. # Markdown 生成
  42. 'MarkdownGenerator',
  43. # HTML 生成
  44. 'HTMLGenerator',
  45. # 可视化
  46. 'VisualizationUtils',
  47. # 输出格式化
  48. 'OutputFormatterV2',
  49. 'save_mineru_format',
  50. # 数字标准化
  51. 'normalize_financial_numbers',
  52. 'normalize_json_table',
  53. 'normalize_markdown_table',
  54. 'normalize_json_file',
  55. # 文件工具
  56. 'get_input_files',
  57. 'collect_pid_files',
  58. 'get_image_files_from_dir',
  59. 'get_image_files_from_list',
  60. 'get_image_files_from_csv',
  61. 'convert_pdf_to_images',
  62. 'split_files',
  63. 'create_temp_file_list',
  64. 'parse_page_range',
  65. # 日志工具
  66. 'setup_logging',
  67. ]
  68. __version__ = "1.0.0"
  69. __author__ = "zhch158"
  70. def __getattr__(name: str):
  71. """
  72. 延迟导入 PDFUtils 和 extract_pdf_pages,只有在实际使用时才触发 MinerU 导入检查。
  73. 这样可以在 PaddleX 环境中正常导入 ocr_utils,即使 MinerU 不可用。
  74. """
  75. if name == 'PDFUtils':
  76. from .pdf_utils import PDFUtils
  77. return PDFUtils
  78. elif name == 'extract_pdf_pages':
  79. from .pdf_extractor import extract_pdf_pages
  80. return extract_pdf_pages
  81. raise AttributeError(f"module '{__name__}' has no attribute '{name}'")