使命与价值观#
我们的使命#
NetworkX 的目标是成为 Python 中网络科学算法的参考库。我们通过以下方式实现这一目标:
易于使用和安装。我们审慎地引入新的依赖项,有时会剔除现有依赖项,或使其变为可选。我们 API 中的所有函数都具有详细的文档字符串,澄清预期的输入和输出。
提供一致的 API。概念上相同的参数在函数签名中具有相同的名称和位置。
确保正确性。测试覆盖率接近 100%,并且代码在被包含到库中之前会由至少两名核心开发者进行评审。
关心用户数据。我们拥有函数式 API,除非明确指示,否则不修改输入数据。
促进网络科学教育,提供大量的教学文档。
我们的价值观#
我们具有包容性(行为准则)。我们欢迎并指导首次贡献的新成员。
我们是开源的、社区驱动的(NXEP 1 — 治理与决策)。
我们专注于用于网络科学应用的图数据结构和算法。
我们偏好使用原生数据结构(尤其是字典)的纯 Python 实现,因为它们具有一致、直观的接口和出色的性能。我们提供了与其他数据结构的接口,尤其是 NumPy 数组和 SciPy 稀疏矩阵,适用于更自然地使用数组和矩阵,或时间和空间需求显著降低的算法。有时,当教学或空间/时间权衡证明这种多样性合理时,我们也会为相同的结果提供两种算法,每种算法使用一种数据结构。
我们重视简单、可读的实现,而非榨取每一分性能。可读的代码对于新成员和维护者来说都易于理解,从而更容易贡献新代码并防止错误。这意味着,例如,如果能将代码行数减少一倍,即使性能降低 20%,我们也会优先选择这种方式。
我们重视教育和文档。所有函数都应该有
NumPy 风格的文档字符串
,最好附带示例,并提供画廊示例展示该函数在科学应用中的用法。
致谢#
本文档修改自 scikit-image
的使命与价值观文档。