编码标准#
编码风格#
在编码中,我们遵循:
代码格式化和代码检查#
我们遵循以下代码格式标准:
ruff 使用
max_line_length=88
更多配置可以在pyproject.toml
中找到numpydoc
用于强制执行 numpy 文档字符串标准 ,以及我们在 开发者指南 的 文档部分 中描述的 sktime 特定约定。
这是通过我们的 CI/CD 工作流通过 pre-commit 强制执行的。
完整的预提交配置可以在 .pre-commit-config.yaml 中找到。其他配置可以在 pyproject.toml 中找到。
sktime
特定的代码格式约定#
在非类名中使用下划线分隔单词:
n_instances
而不是ninstances
。特别地,大写字母
X
,Y
,Z
作为变量名或变量名的一部分(如X_train
)是允许的,如果这些变量名指的是数据集,根据PEP8约定,如果这些变量名在某个领域(这里指的是scikit-learn
相关的生态系统)中已有先例使用,那么它们是允许的。避免在一行中使用多个语句。控制流语句(
if
/for
)后倾向于换行。在 sktime 内部引用时使用绝对导入。
不要在源代码中使用
import *
。根据官方的 Python 建议,这是有害的。它使代码更难阅读,因为符号的来源不再明确引用,但最重要的是,它阻止了使用像 pyflakes 这样的静态分析工具来自动发现错误。
设置本地代码质量检查#
有两种方法可以设置本地代码质量检查:
使用
pre-commit
进行自动代码格式化在本地开发IDE中手动设置
ruff
和/或numpydoc
使用 pre-commit#
要设置预提交,请在安装了 sktime
dev
依赖项的 Python 环境中按照以下步骤操作。
在你的Python环境中输入以下内容,并在你的本地仓库克隆的根目录中:
如果尚未完成,请确保安装了包含
dev
依赖项的sktime
,这包括pre-commit
:
pip install -e .[dev]
设置预提交:
pre-commit install
安装后,每当您进行新的提交时,pre-commit 将自动运行所有 sktime
代码质量检查,检查您更改的文件。
你可以在 .pre-commit-config.yaml 中找到我们的预提交配置。其他配置可以在 pyproject.toml 中找到。
备注
如果你想排除某行代码的检查,可以在该行的末尾添加一个 # noqa: rule
(无质量保证)注释。可以排除的规则集可以在这里找到 ruff 规则。
与本地开发者IDE集成#
本地开发者的IDE通常会集成常见的代码质量检查,但需要在IDE特定的设置中进行配置。
对于 Visual Studio Code,ruff
和/或 numpydoc
需要在偏好设置中单独激活。你可以从市场安装 ruff
vscode 扩展,可以在 ruff 扩展 找到。Ruff VS Code 扩展将尊重项目中 pyproject.toml
、ruff.toml
或 .ruff.toml 文件
中定义的任何 Ruff 配置,这意味着安装扩展后你可以立即开始使用它。包 ruff
等需要在 IDE 使用的 python 环境中安装,这可以通过安装带有 dev
依赖项的 sktime
来实现。
在 Visual Studio Code 中,我们还建议在您的本地 settings.json
中添加 "editor.ruler": 88
以显示最大行长度。
API 设计#
sktime 的总体设计方法在论文 “设计机器学习工具箱:概念、原则和模式” 中有描述。
备注
非常欢迎反馈和改进建议!