PyPDF2 开发者介绍

2023-03-30 15:43 更新

PyPDF2 是一个库,因此它的用户是开发人员。本文档不是为用户准备的,而是为那些想在 PyPDF2 上工作的人准备的。

安装要求

pip install -r requirements/dev.txt

运行测试

请参阅使用 pytest 测试 PyPDF2

示例文件 git 子模块

拥有子模块的原因sample-files是我们希望保持 PyPDF2 存储库的大小较小,同时我们还希望拥有一个广泛的测试套件。这两个目标相互矛盾。

resources文件夹应包含一组精选的核心示例,涵盖我们通常要测试的大多数情况。这sample-files可能涵盖更多的边缘情况,当文件大小变大时我们得到的行为,不同的 PDF 制作者。

为了获取示例文件文件夹,您需要执行:

git submodule update --init

工具:git 和预提交

Git 是用于版本控制的命令行应用程序。不会的可以玩ohmygit学习一下。

GitHub 是托管 PyPDF2 项目的服务。虽然 git 是免费和开源的,但 GitHub 是微软的付费服务——但在很多情况下是免费的。

pre-commit是一个命令行应用程序,它使用 git hooks 来自动执行代码。这使您可以避免样式问题和其他代码质量问题。当你在 PyPDF2 的本地副本中输入 一次后,它会在你.pre-commit installgit commit

提交信息

拥有清晰的提交信息可以帮助人们快速理解提交的内容,而无需实际查看更改。提交消息的第一行用于自动生成 CHANGELOG。因此,格式应为:

PREFIX: DESCRIPTION

BODY

可以PREFIX是:

  • BUG: 修复了一个错误。可能存在一个或多个问题。然后写在BODY:其中 123 是 GitHub 上的问题编号。如果您能在这些情况下编写回归测试,那将是绝对令人惊奇的。如果没有修复,那是一个会失败的测试。Closes #123

  • ENH: 一个新功能!在正文中描述它的用途。

  • DEP: 弃用 - 将某些内容标记为“这将被删除”或实际删除它。

  • PI: 性能改进。这也可以减少 PyPDF2 生成的 PDF 文件的文件大小。

  • ROB:稳健性变化。更好地处理损坏的 PDF 文件。

  • DOC: 文档更改。

  • TST: 添加/调整测试。

  • DEV: 开发者体验改进——例如预提交或设置 CI

  • MAINT: 很多不同的东西。性能改进肯定是这里最有趣的变化。重构也是如此。

  • STY: 风格改变。使 PyPDF2 代码更加一致的东西。通常是一个小的变化。

基准

我们需要关注性能,因此我们有一些基准。

参见py-pdf.github.io/PyPDF2/dev/bench


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号