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