本项目是一个通用的Python项目模板仓库,配备了一系列实用的开发工具,能够帮助开发者更高效地进行Python项目开发,确保代码质量和风格的一致性。
本项目配备了多种开发工具,这些工具能有效识别代码中的错误和风格问题,并自动格式化代码,同时还具备测试和覆盖范围测量功能。所有检查和测试都会在Github Actions上针对每个拉取请求和主分支合并操作自动运行。
此仓库默认设置为Python 3.11,若需更改版本,可按以下步骤操作:
.devcontainer/devcontainer.json 中的 image 参数(参考 https://github.com/devcontainers/images/tree/main/src/python 获取预构建的Docker镜像列表).precommit-config.yaml 中的配置选项.github/workflows/python.yaml 中的版本号ruff 识别许多错误和风格问题(如 flake8、isort、pyupgrade),利用 black 自动格式化代码。这些检查作为预提交钩子使用 pre-commit 库执行。pytest 进行测试,以及 pytest-cov 插件来测量覆盖范围。此仓库包含一个devcontainer(一个Docker化的Python环境)。如果在Codespaces中打开,它会自动初始化devcontainer。本地使用时,可以在VS Code中安装Dev Containers扩展来打开。
如果您无法或不想使用devcontainer,则应首先创建虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
然后安装开发工具和预提交钩子:
python3 -m pip install --user -r requirements-dev.txt
pre-commit install
此仓库从一个非常简单的 main.py 和针对它的测试文件 tests/main_test.py 开始。您需要将其替换为自己的代码,并且可能需要添加更多文件,以增加代码的复杂性。
准备好运行测试时,请执行:
python3 -m pytest
以下是一些文件/文件夹的简要说明:
| 文件/文件夹 | 详情 |
|---|---|
.devcontainer |
用于设置devcontainer的文件和文件夹,其中 devcontainer.json 是配置devcontainer的文件,包含VS Code设置 |
.github |
Github专用文件和文件夹,其中 workflows 是Github Actions配置文件所在的文件夹,python.yaml 用于配置Github操作以运行工具和测试 |
tests |
Python测试文件夹,main_test.py 是针对 main.py 的pytest风格测试文件 |
.gitignore |
Git不应跟踪的文件模式列表 |
.pre-commit-config.yaml |
列出所有预提交钩子及其参数的文件 |
main.py |
项目的主要(目前唯一的)Python文件 |
pyproject.toml |
配置大部分Python开发工具的文件 |
README.md |
当前正在阅读的文件 |
requirements-dev.txt |
列出开发所需的PyPi包的文件 |
requirements.txt |
列出生产所需的PyPi包的文件 |
如需更详细的说明,请参阅 this blog post。
通过提交问题让我帮助我改进这个模板仓库!