为 SAHI 做贡献¶
感谢您有兴趣为 SAHI 做贡献!本指南将帮助您快速上手。
设置开发环境¶
1. Fork 和克隆¶
2. 创建环境¶
我们推荐使用 Python 3.10 进行开发:
3. 安装依赖¶
代码格式化¶
我们使用 ruff 进行代码格式化和 lint 检查。格式化代码:
# 检查格式
uv run ruff check .
uv run ruff format --check .
# 修复格式
uv run ruff check --fix .
uv run ruff format .
或使用便捷脚本:
运行测试¶
# 运行所有测试
uv run pytest
# 运行指定测试文件
uv run pytest tests/test_predict.py
# 运行并生成覆盖率报告
uv run pytest --cov=sahi
提交 Pull Request¶
- 创建新分支:
git checkout -b feature-name - 进行修改
- 格式化代码:
python scripts/format_code.py fix - 运行测试:
uv run pytest - 提交清晰的 commit 信息:
git commit -m "Add feature X" - 推送并创建 PR:
git push origin feature-name
CI 构建失败¶
如果 CI 构建因格式问题失败:
- 查看 CI 输出,确认失败的 Python 版本
-
使用该版本创建环境:
-
安装开发依赖:
-
修复格式:
-
提交并推送更改
添加新模型支持¶
要添加对新检测框架的支持:
- 在
sahi/models/your_framework.py下创建新文件 - 实现继承自
DetectionModel的类 - 在
sahi/auto_model.py中将您的框架添加到MODEL_TYPE_TO_MODEL_CLASS_NAME - 在
tests/test_yourframework.py下添加测试 - 在
docs/notebooks/inference_for_your_framework.ipynb下添加示例 notebook - 更新
README.md和docs/下的相关文档以包含您的新模型
请参考现有实现,如 sahi/models/ultralytics.py。
有问题?¶
如果您有任何疑问,欢迎发起讨论!