前言
主要是给开发者阅读,描述开发前后需要注意的一些事项。
开发环境
python3.9的python环境- 新建虚拟环境
.env在项目根目录下,source .env/bin/activate- python3.9 -m venv .env
pip install -r requirements_dev.txt- 系统安装
brew install pre-commit或者pip install pre-commit- brew的安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" - 在项目更目录下执行
pre-commit install --hook-type pre-commit --hook-type commit-msg
- brew的安装
- 可通过
pip install -e ./编辑模式安装用于边开发边测试使用
项目部分结构说明
pytest.ini测试脚本的配置.coveragerc测试覆盖度工具使用的配置,在pytest.ini中引用.pre-commit-config.yamlgit提交代码前pre-commit执行的检测相关配置requirements_dev.txt开发需要的环境requirements_test.txt跑测试用例需要的环境tests测试用例目录conftest.pypytest测试用例全局变量配置settingsDjango settings配置,在pytest.ini中引用
imgprocessorlib核心代码MANIFEST.in打包相关-清单文件配置Makefile构建配置,可以执行make help查看具体命令- 定义了测试、打包、发版等很多命令
tox.ini定义各种Python版本的测试
提交Pull Request
提交Pull Request之前需要检查以下事项是否完成:
- 需包含测试用例,并通过
make test-all - 测试覆盖度要求
make coverage - 尝试本地打包
make dist
运行测试用例
pytest tests
# 运行所有环境的测试用例
tox run
可通过参数 use_special_tmp 保存处理的图片 .tmp/output/ 目录下,方便肉眼和 tests/imgs/expected 中图像对比:
pytest tests --use_special_tmp
文档
mkdocs build --clean # 生成site文档网站
mkdocs serve # 可以启动本地访问文档
文档发布未集成自动化,需要在 https://readthedocs.org/ 操作导入/生成新的文档。
打包发版
(以下命令都定义在了Makefile中了)
make clean-build删除本地构建缓存目录python setup.py sdist bdist_wheel执行打包twine check dist/py*(.whl|.tar.gz)检查生成的文件是否符合pypi的要求twine upload -r pypi dist/py*(.whl|.tar.gz)上传包- 需要本地
~/.pypirc配置用户名密码
- 需要本地
其他
- 之后可考虑使用 pillow-simd 提升性能, 性能测试