编码标准¶
aeon 代码库遵循了许多编码标准。虽然这些标准有时可能感觉有些限制,但它们对于在协作环境中保持代码库的可读性和可维护性非常重要。
本页面提供了aeon编码标准的概述,其中最重要的内容包括:
代码格式化和代码检查¶
我们的编码标准通过我们的CI/CD工作流程通过pre-commit强制执行。
我们使用以下pre-commit钩子来遵守代码格式化标准:
black 使用默认设置
flake8 带有
max_line_length=88和flake8-bugbear以及flake8-print插件isort 用于排序文件导入
nbQA 使用上述钩子来检查和格式化 Jupyter 笔记本
ruff的pydocstyle模块用于强制执行numpydoc文档风格
pyupgrade 用于将 Python 语法升级到现代标准
一些标准的pre-commit hooks用于通用代码质量
完整的pre-commit配置可以在.pre-commit-config.yaml中找到。
一些钩子的额外配置可以在pyproject.toml中找到。
aeon 特定的代码格式化约定¶
在非类名中使用下划线来分隔单词,即
n_cases而不是ncases,nCases或类似的。特殊情况下,大写字母即
X可以作为变量名或变量名的一部分,例如X_train,如果指的是数据集。在
aeon内部引用时使用绝对导入。不要在源代码中使用
import *。官方Python建议认为这是有害的。
使用 pre-commit¶
要设置预提交,请按照以下步骤在安装了aeon
dev依赖项的Python环境中进行操作。
在您的Python环境中输入以下内容,并在本地仓库克隆的根目录中:
如果尚未完成,请确保安装了带有
dev依赖项的aeon,这包括pre-commit:
pip install --editable .[dev]
设置预提交:
pre-commit install
安装后,pre-commit 将在您每次提交新更改时自动运行所有 aeon 代码质量检查。
如果你想排除某行代码不被检查,你可以在该行的末尾添加一个# noqa
(无质量保证)注释。这应该只在有充分理由的情况下谨慎使用。最好将其限制在特定的检查上,例如
# noqa: T201 用于 print 语句。