最近有朋友向我咨询,如何构建一个更pythonic的工程化项目,作为一个有重度代码洁癖,发过n次Python包的开发者,下面分享一个自己一直在用的模板仓库,我所有的Python项目都是用这个模板创建的:
3PG(Python Packages Project Generator),结合了最先进的库和 Python 最佳开发实践。Github:
github.com开发特性:
1.支持 Python 3.7 及更高版本。
2.使用 Poetry 作为依赖管理器。参见 pyproject.toml 和 setup.cfg 中的配置。
3.更快的格式化工具,使用 ruff 自动代码风格,替代 black、isort 和 pyupgrade。
4.开箱即用使用的 pre-commit 钩子,用于代码格式化。
5.类型检查使用 ruff;docstring 检查使用 darglint;安全检查使用 safety 和 bandit。
6.使用 pytest 进行测试。
7.开箱即用的 .editorconfig、.dockerignore 和 .gitignore 文件,你不必担心这些事情。
8.dockerfile。
部署特性
1.GitHub 集成:问题和 pr 模板。
2.使用预定义的 构建工作流 作为默认的 CI/CD 的 Github Actions。
3.使用makefile管理项目,已经为安全检查、代码风格检查、代码格式化、测试、linting、docker 构建等设置好了一切。
5.使用 @dependabot 保持依赖项始终更新。
6.使用 Release Drafter 自动发布说明。你可以在 release-drafter.yml 中看到标签列表。与 Semantic Versions 规范完美配合。
开源社区特性
1.开箱即用的 Pull Requests 模板 和几个 Issue 模板。
2.自动生成的文件,如:LICENSE、CONTRIBUTING.md、CODE_OF_CONDUCT.md 和 SECURITY.md。
3.Stale bot,在一段不活跃后关闭遗弃的问题。
4.使用 Release Drafter 的 Semantic Versions 规范。