使命与价值观#

我们的使命#

NetworkX旨在成为Python中网络科学算法的参考库。我们通过以下方式实现:

  • 易于使用和安装。我们谨慎地引入新的依赖项,并有时会删除现有的依赖项,或者将它们设置为可选。我们API中的所有函数都有详尽的文档字符串,澄清了预期的输入和输出。

  • 提供一致的API。在函数签名中,概念上相同的参数具有相同的名称和位置。

  • 确保正确性。测试覆盖率接近100%,代码在包含在库中之前会由至少两名核心开发人员进行审查。

  • 关心用户的数据。我们有一个功能齐全的API,并且不会修改输入数据,除非明确指示这样做。

  • 促进网络科学教育,并提供广泛的教学文档。

我们的价值观#

  • 我们是包容的(行为准则 )。我们欢迎并指导那些正在做出首次贡献的新人。

  • 我们是开源的,由社区驱动的(治理 )。

  • 我们专注于图数据结构和网络科学应用的算法。

  • 我们更喜欢使用本地数据结构(特别是字典)的纯Python实现,因为它们具有一致的直观接口和惊人的性能能力。我们为其他数据结构提供接口,特别是NumPy数组和SciPy稀疏矩阵,用于更自然地使用数组和矩阵的算法,或者在时间或空间要求明显较低的情况下。有时,我们为同一结果提供两种数据结构的算法,一种使用每种数据结构,当教学或空间/时间权衡证明这种多样性是合理的时候。

  • 我们重视简单易读的实现,而不是追求每一丝性能。易于理解的可读代码,无论是对新手还是维护者来说,都更容易贡献新代码以及防止错误。这意味着,例如,如果将代码行数减少一半可以减慢20%的速度,我们将更倾向于选择这种方式。

  • 我们重视教育和文档编写。所有函数应该具有 NumPy风格的文档字符串 ,最好附带示例,以及展示该函数在科学应用中如何使用的示例。

致谢#

本文档修改自 scikit-image 的使命与价值观文档。