Skip to main content

简介

官方地址

ppw是Python Project Wizard的简写,即Python项目生成向导。ppw生成的项目有以下功能:

  • 使用Poetry来管理版本、依赖,构建和发布。

  • 使用Mkdocs来撰写基于Markdown格式的文档。

    • 撰写Pytho文档的另一个选择是使用Sphinx基于reStructuredText格式来构建文档,rst格式确实太繁琐易错了。
  • 使用Pytest来进行单元测试

    • (Unittest仍然可用,并且是开箱即用)
  • 自动生成codecoverage 报告,并上传到Codecov

    • 开源项目必备。如果一个开源项目没有coverage report,或者覆盖率不到90%以上,基本不考虑。
  • 使用Tox来进行矩阵化测试,并且对代码进行语法检查、风格检查和格式化。

  • 使用Black和isort来格式化代码

  • 使用Flake8Flake8-docstrings来对代码和API文档(docstrings)进行检查。

  • 安装了pre-commit hooks,在代码入库前进行检查

  • 使用Mkdocstrings来自动生成API文档

  • 给您的项目添加命令行接口(console script)

  • 使用Github Actions来持续集成,并提供以下功能:

    • 当集成测试完成后,向TestPyPI发布测试包
    • 自动发布文档到git pages(仅在release分支,且打了标签)
    • 自动发布正式包到PyPI(仅在release分支,且打了标签)
    • 自动提取change log并生成release notes
  • 使用Git pages来托管文档

基础使用

安装

pip install -U ppw

生成项目

配合 miniconda 创建一个项目

conda create -n mypackage python=3.8
conda activate mypackage

pip install poetry

poetry install -E doc -E dev -E test
tox

上述命令首先安装了poetry,然后通过poetry来安装开发中需要使用的依赖。

这里ppw把开发依赖分成三组,以实现更小的粒度管理。比如,在构建文档时,就只需要安装doc依赖,这样既节省时间,也会减小依赖冲突的概率。

参阅文献