贡献 ¶
作者:Robert Andrew Martin
译者:片刻小哥哥
项目地址:https://portfolio.apachecn.org/Contributing
原始地址:https://pyportfolioopt.readthedocs.io/en/latest/Contributing.html
我希望人们能够提供帮助的一些事情:
- 提高现有代码的性能(但不以牺牲可读性为代价)
- 添加新的优化目标。 例如,如果您想使用夏普比率以外的其他东西,请编写一个优化器! (或者在 问题 中提出建议,我会尝试一下)。
- 帮助我编写更多测试! 如果您正在学习 Python 中的定量金融和/或单元测试,那么还有什么比在开源项目上编写一些测试更好的练习方法呢! 请随意检查边缘情况或可能导致无提示错误的不常见参数组合。
指南 ¶
寻求早期反馈 ¶
在开始编写您的贡献之前,明智的做法可能是在 GitHub 上 提出问题 来讨论该贡献是否适合该项目。
代码风格 ¶
对于这个项目我使用了 黑色 作为格式标准,使用所有默认设置。会很多如果有任何 PR 遵循这个标准,我将不胜感激,因为如果没有,我将不得不合并前格式化。
测试 ¶
任何贡献 必须 附有单元测试(用 pytest
)。
这些编写起来非常简单,只需找到相关的测试文件(或创建一个新的),并写一堆 assert
声明。应应用该测试到我提供的虚拟数据集 tests/stock_prices.csv
,并且应该涵盖核心功能、警告/错误(检查它们是否按预期引发)、以及限制行为或边缘情况。
文档 ¶
内嵌注释在需要时非常有用,但不要太过分。文档字符串内容 应该遵循 PEP257 语义上和语法上的 sphinx,这样 sphinx 就可以自动记录方法及其参数。 我个人不喜欢写长篇大论文档字符串中的段落:在我看来,文档字符串应该简要说明如何可以使用对象,而其余的解释和理论背景应该卸载到 ReadTheDocs。
如果更改附有相关文档,我将不胜感激 - 它不一定要很漂亮,因为我可能会在它之前尝试把它整理一下转到 ReadTheDocs,但如果有一个人可以让事情变得简单得多 写了代码,用自己的话解释了。
问题 ¶
如果您有任何与该项目相关的问题,最好是 提出问题 和 我会将其标记为问题。
如果您有与该项目无关的问题,请给我发电子邮件 - 联系方式可以在 我的网站 上找到。
错误/问题 ¶
如果您发现任何错误或投资组合优化未按预期工作,随意地 提出问题 。 我要求您在问题中提供以下信息:
- 描述性标题,以便其他用户可以看到现有问题
- 操作系统、python 版本和 python 发行版(可选)。
- 重现问题的最小示例。
- 你期望发生什么
- 实际发生了什么
- 错误消息的完整回溯(根据您的需要省略个人详细信息)。