你想贡献给 Biopython,是吗?太棒了!新的贡献是该项目的生命线。然而,如果做得不正确,它们会迅速吞噬宝贵的开发时间。(我们也有日常工作!)这是一个关于向 Biopython 贡献代码的推荐方式的简短指南。
如果你已经做到了通过变更创建拉取请求,你应该阅读 CONTRIBUTING.rst,它描述了如何进行包括样式检查在内的自动化测试。
即使你没有准备好或无法贡献代码,你仍然可以帮助我们。总有一些东西可以改进 文档(即使只是校对,或告诉我们某个部分是否不够清晰)。我们也需要邮件列表中的人来帮助解决初学者的疑问,或参与关于新功能的讨论。也许你可以为 wiki 食谱 提出一般性的示例?
最好的贡献是你已经在日常研究中使用过的代码。这应该是你认为可能对其他人有用的并且已经没有错误的代码。如果你正在考虑提交它,请继续执行步骤 2,提交代码!
否则,仍然有很多方法可以为 Biopython 做出贡献,包括编码和非编码贡献。一些你可以帮助的事情包括
一般来说,我们会考虑任何适用于生物或化学数据的代码。请不要提交功能与 Biopython 中已有的代码大量重叠的代码,除非有明显的改进并且你有一个集成代码的计划。
在你提交它之前,请检查它
如果所有这些条款看起来都可以接受,请将你的代码描述发送到 [email protected](请参阅 邮件列表)。请务必在发送邮件之前订阅 biopython 邮件列表,否则你的邮件将被邮件服务器丢弃(这样做是为了避免邮件列表上的垃圾邮件)。不要直接将代码发送到 biopython 邮件列表。相反,请使用 我们的 GitHub 页面,通过创建问题并将文件附加或链接到你的 GitHub 分支。
Biopython 试图遵循 PEP 8 和 PEP 257 中列出的编码规范。重要的要点是
一个值得注意的例外是模块名称,我们倾向于使用首字母大写。事后看来,这很不幸,但我们受到向后兼容性的限制。
Epydoc 和/或 Sphinx apidoc 用于生成源代码的自动文档,因此在代码中添加有用的注释非常有用,以便它们能够反映在 API 文档 中(除了所有正常的文档代码的原因之外)。
我们通常不会做任何花哨的事情来尝试格式化代码中的注释 - 但它们被解释为 reStructuredText 标记,它允许像项目符号和斜体这样的东西。这不是花哨的,但它很有效,而且比处理尝试结构化源代码注释的无数不同方法更容易。
但是,有一些技巧可以使你的文档看起来最好。主要的技巧是
这是一个模块文档的示例,以便 epydoc 可以正常工作
"""This is a one line description of the module followed with a period.
More information about the module and its goals and usage.
"""
class MyClass:
"""One line description of the class followed by a period.
More information about the class -- its purpose, usage, and
implementation.
"""
def my_function(self, spam):
"""A terse description of my function followed with a period.
A longer description with all kinds of additional goodies. This may
include information about what the function does, along with
what parameters it will be passed and what it returns. You know,
information so people know how to use the function.
"""
# the code ...