简介
ppw是Python Project Wizard的简写,即Python项目生成向导。ppw生成的项目有以下功能:
使用Poetry来管理版本、依赖,构建和发布。
使用Mkdocs来撰写基于Markdown格式的文档。
- 撰写Pytho文档的另一个选择是使用Sphinx基于reStructuredText格式来构建文档,rst格式确实太繁琐易错了。
使用Pytest来进行单元测试
- (Unittest仍然可用,并且是开箱即用)
自动生成codecoverage 报告,并上传到Codecov。
- 开源项目必备。如果一个开源项目没有coverage report,或者覆盖率不到90%以上,基本不考虑。
使用Tox来进行矩阵化测试,并且对代码进行语法检查、风格检查和格式化。
使用Black和isort来格式化代码
使用Flake8和Flake8-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
依赖,这样既节省时间,也会减小依赖冲突的概率。