如何贡献
我们希望 tsfresh 成为 python 中最大的特征提取方法库。为了实现这个目标,我们需要你的帮助!
欢迎所有贡献、错误报告、错误修复、文档改进、增强功能和想法。如果你想添加一个或两个有趣的特征计算器,实现一个新的特征选择过程,或者只是修复 1-2 个拼写错误,你的帮助都将受到感谢。
如果你想提供帮助,只需在我们的 github 页面上创建一个拉取请求 (pull request)。对于新用户来说,使用 Git 有时可能会令人困惑和沮丧。如果你不熟悉 Git,也可以通过电子邮件联系我们。
指南
我们秉持三个通用的编码范式
保持简单。我们认为 “程序应该为人阅读而编写,只是顺带为了机器执行。”。
保持文档化,至少为每个方法和类包含一个 docstring。不要描述你在做什么,而要描述你为什么要这样做。
保持测试。我们追求高测试覆盖率。
有两条重要的版权指南
请不要包含任何没有可用许可证或甚至禁止商业使用的数据集。这些数据集可能会损害整个项目的许可证。
请勿使用没有可用许可证(例如来自 stackoverflow)或甚至禁止商业使用的代码片段。这些代码片段可能会损害整个项目的许可证。
此外,我们做出了一些技术决定
清理 iPython notebook 的输出。这可以提高相关 Git diff 的可读性。
安装
安装所有相关的 python 包,使用
cd /path/to/tsfresh
pip install -e ".[testing]"
pre-commit install
最后一个命令将动态链接 tsfresh 包,这意味着代码的更改将直接在你的测试运行中体现出来。
测试框架
完成更改后,你可能想在本地测试你的更改。要运行我们全面的单元测试套件,你需要
pytest
要测试跨多个 Python 版本的更改,请运行
tox -r -p auto
这将使用 envlist 变量执行 setup.cfg 中指定的 Python 版本的测试。例如,如果 envlist 设置为 py37, py38,测试套件将在本地开发平台上针对 Python 3.7 和 3.8 运行,前提是本地安装了这些版本的二进制文件。具体的 Python 微版本(例如 3.7.1 对比 3.7.2)取决于本地开发机器上安装的内容。
在本地测试时管理多个 Python 版本的推荐方法是使用 pyenv,它可以实现有序安装和版本切换。
除了在本地运行测试之外,你还可以在 Docker 化测试环境中运行它们
make test-all-testenv
这个命令最初会花费一些时间。但是后续调用会更快,并且通过这种方式测试可以确保一个干净、一致的测试环境,而无需考虑你的本地设置。
文档
按照上述说明安装后,使用以下命令构建文档
pip install -e ".[docs]"
cd docs
make html
构建好的文档可以在 docs/_build/html 文件夹中找到。
样式规范
我们使用 black 和 isort 来规范代码样式。安装 pre-commit 后(如上所述),它们会在每次提交时自动触发。
期待你的来信! =)
PR 描述
PR 应该有一个清晰且描述性的标题,以及对所做更改、正在解决的问题和给审阅者的任何相关提示的详细描述。一个示例可以在此处查看。