使命与价值观#

我们的使命#

NetworkX 的目标是成为 Python 中网络科学算法的参考库。我们通过以下方式实现这一目标:

  • 易于使用和安装。我们审慎地引入新的依赖项,有时会剔除现有依赖项,或使其变为可选。我们 API 中的所有函数都具有详细的文档字符串,澄清预期的输入和输出。

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

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

  • 关心用户数据。我们拥有函数式 API,除非明确指示,否则不修改输入数据。

  • 促进网络科学教育,提供大量的教学文档。

我们的价值观#

  • 我们具有包容性(行为准则)。我们欢迎并指导首次贡献的新成员。

  • 我们是开源的、社区驱动的(NXEP 1 — 治理与决策)。

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

  • 我们偏好使用原生数据结构(尤其是字典)的纯 Python 实现,因为它们具有一致、直观的接口和出色的性能。我们提供了与其他数据结构的接口,尤其是 NumPy 数组和 SciPy 稀疏矩阵,适用于更自然地使用数组和矩阵,或时间和空间需求显著降低的算法。有时,当教学或空间/时间权衡证明这种多样性合理时,我们也会为相同的结果提供两种算法,每种算法使用一种数据结构。

  • 我们重视简单、可读的实现,而非榨取每一分性能。可读的代码对于新成员和维护者来说都易于理解,从而更容易贡献新代码并防止错误。这意味着,例如,如果能将代码行数减少一倍,即使性能降低 20%,我们也会优先选择这种方式。

  • 我们重视教育和文档。所有函数都应该有 NumPy 风格的文档字符串,最好附带示例,并提供画廊示例展示该函数在科学应用中的用法。

致谢#

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