代码标准

Docstring(文档字符串)

请使用 Numpydoc风格

持续集成

持续集成(CI)工具能够通过在每次推送新提交时运行测试并将结果报告给拉取请求,帮助您遵守质量标准。

当您提交PR请求时,您可以在网页底部的”check”部分检查您的代码是否通过了CI测试。

  1. Qlib将使用black检查代码格式。如果您的代码与Qlib的标准不符(例如常见错误是混合使用空格和制表符),PR将会报错。

    您可以通过在命令行中输入以下代码来修复错误。

pip install black
python -m black . -l 120
  1. Qlib将使用pylint检查您的代码风格。检查命令在[github action workflow](https://github.com/microsoft/qlib/blob/0e8b94a552f1c457cfa6cd2c1bb3b87ebb3fb279/.github/workflows/test.yml#L66)中实现。 有时pylint的限制并不那么合理。您可以忽略特定的错误,例如:

return -ICLoss()(pred, target, index)  # pylint: disable=E1130
  1. Qlib将检查您的代码风格flake8. 检查命令在 [github action workflow](https://github.com/microsoft/qlib/blob/0e8b94a552f1c457cfa6cd2c1bb3b87ebb3fb279/.github/workflows/test.yml#L73) 中实现。

    您可以通过在命令行中输入以下代码来修复该错误。

flake8 --ignore E501,F541,E402,F401,W503,E741,E266,E203,E302,E731,E262,F523,F821,F811,F841,E713,E265,W291,E712,E722,W293 qlib
  1. Qlib已集成pre-commit,这将使开发人员在格式化代码时更加方便。

    只需运行以下两个命令,当执行git commit命令时,代码将自动使用black和flake8格式化。

pip install -e .[dev]
pre-commit install

开发指南

作为开发者,您经常想要对 Qlib 进行更改,并希望它能直接反映在您的环境中,而无需重新安装。您可以使用以下命令以可编辑模式安装 Qlib[dev] 选项将在开发 Qlib 时帮助您安装一些相关的软件包(例如 pytest, sphinx)

pip install -e .[dev]