Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat (test): unit tests for modules and in ci #130

Closed
3 tasks done
Wybxc opened this issue Nov 26, 2024 · 7 comments
Closed
3 tasks done

feat (test): unit tests for modules and in ci #130

Wybxc opened this issue Nov 26, 2024 · 7 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@Wybxc
Copy link
Collaborator

Wybxc commented Nov 26, 2024

功能描述

项目目前没有单元测试,这不利于新的贡献者验证自己引入更改的正确性,也不利于理解每个模块的功能。

TODOs

  • 梳理项目的模块结构
  • 为每个模块编写单元测试
  • 在 CI 中设置测试运行
@Wybxc Wybxc added enhancement New feature or request help wanted Extra attention is needed labels Nov 26, 2024
@Byaidu
Copy link
Owner

Byaidu commented Nov 26, 2024

项目结构大概是这样子,可能有点粗糙(

  • cache.py
    • 缓存翻译
  • translator.py
    • 提供多种翻译服务
  • doclayout.py
    • 提供 onnx/torch 模型
  • converter.py
    • 解析原页面,拆分成不同的段落并解析公式
    • 翻译并缓存段落,调用 translator 和 cache
    • 排版新页面,将公式插入到翻译后的段落
    • 返回页面的新指令流
  • high_level.py
    • 解析布局,调用 doclayout
    • 解析页面集合,调用 convertor
    • 返回页面集合的新指令流
  • pdf2zh.py
    • 解析命令行
    • 插入新字体,用于支持 CJK 渲染
    • 解析文档,调用 high_level
    • 插入页面集合的新指令流
    • 排列双语文档页面
  • gui.py
    • 提供用户界面,可配置 recaptcha
  • *.py
    • 其余文件继承自 pdfminer,用于解析指令流,基本不需要进行改动,lic 位于 docs

@reycn reycn changed the title test: add unit test for each module feat (test): unit tests for modules and in ci Nov 27, 2024
@Wybxc
Copy link
Collaborator Author

Wybxc commented Nov 27, 2024

  • 其余文件继承自 pdfminer,用于解析指令流,基本不需要进行改动,lic 位于 docs

这一部分与 pdfminer 上游相比有哪些不同之处?是否可以考虑将 pdfminer 作为依赖直接引入呢?

@Byaidu
Copy link
Owner

Byaidu commented Nov 27, 2024

只有 init 提交的部分都和上游一模一样,只有 converter、high_level 和 pdfinterp 是魔改过来的

converter 负责解析和排版,应该可以把 TextConverter 剥离出来
pdfinterp 负责解析指令流,应该也可以剥离 PDFPageInterpreter
high_level 这里我们把 TextConverter 和 PDFPageInterpreter 替换成自己的,然后调用上游库应该就行

分离之后项目结构应该能简单很多,我这几天试试

@Byaidu
Copy link
Owner

Byaidu commented Nov 27, 2024

重构完成,现在需要维护/测试的模块只有8个了

@Wybxc Wybxc added the good first issue Good for newcomers label Nov 28, 2024
@awwaawwa
Copy link
Contributor

建议先搞个最基础的CI自动测试,提交PR时简单测测cli和gui能不能跑起来,会不会直接报错

@reycn
Copy link
Collaborator

reycn commented Dec 18, 2024

@Byaidu
Copy link
Owner

Byaidu commented Dec 18, 2024

unit test #282

@Byaidu Byaidu closed this as completed Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants