背景
因为之前在帮助算法同事进行mlflow 模型调优的过程中,涉及到mlflow一项优化点,所以给mlflow提交了一个pr
操作
参照官网提供的python contributing,所以按照他的提示一步一步来就可以,
但是在提交pr的过程中还是得注意几点,
- 描述清楚问题
- 进行单元测试
- 进行代码格式化
在代码格式化这个问题上,我就花了一天去搞定,因为之前不太熟悉python,所以有点着急(其实也是没有踏踏实实按照官网的操作来),导致花了一天的时间,在此记录一下过程
- 写完代码后,进行
black --line-length=100 --exclude=mlflow/protos .
这一步是用black格式话代码 - 提交pr前进行单元测试以及linter pass
其实在单元测试的时候, 也不一定要全部测试,如果你的没标志类似@pytest.mark.large这种注解的话,只需要运行./lint.sh ./dev/run-small-python-tests.sh ./dev/run-large-python-tests.sh
./dev/run-small-python-tests.sh
就行,当然我们也可以更加严谨一点 - 提交pr,就是git的操作 git commit/git push等等
其实最想说的一点是python的格式化和单元测试工具,因为对于java来说,还得自己配置maven插件,而对于python来说是有现成的工具的
打开mlflow下的 lint.sh文件,我们就能看到几种工具
- black 代码格式化工具,按照通用的代码格式进行格式化,
- pycodestyle 代码风格检查工具
- pylint 原代码分析器,可以分析代码错误以及代码风格
这三种工具都可以通过pip install 安装