使命与价值观#
我们的使命#
NetworkX旨在成为Python中网络科学算法的参考库。我们通过以下方式实现:
易于使用和安装。我们谨慎地引入新的依赖项,并有时会删除现有的依赖项,或者将它们设置为可选。我们API中的所有函数都有详尽的文档字符串,澄清了预期的输入和输出。
提供一致的API。在函数签名中,概念上相同的参数具有相同的名称和位置。
确保正确性。测试覆盖率接近100%,代码在包含在库中之前会由至少两名核心开发人员进行审查。
关心用户的数据。我们有一个功能齐全的API,并且不会修改输入数据,除非明确指示这样做。
促进网络科学教育,并提供广泛的教学文档。
我们的价值观#
我们是包容的(行为准则 )。我们欢迎并指导那些正在做出首次贡献的新人。
我们是开源的,由社区驱动的(治理 )。
我们专注于图数据结构和网络科学应用的算法。
我们更喜欢使用本地数据结构(特别是字典)的纯Python实现,因为它们具有一致的直观接口和惊人的性能能力。我们为其他数据结构提供接口,特别是NumPy数组和SciPy稀疏矩阵,用于更自然地使用数组和矩阵的算法,或者在时间或空间要求明显较低的情况下。有时,我们为同一结果提供两种数据结构的算法,一种使用每种数据结构,当教学或空间/时间权衡证明这种多样性是合理的时候。
我们重视简单易读的实现,而不是追求每一丝性能。易于理解的可读代码,无论是对新手还是维护者来说,都更容易贡献新代码以及防止错误。这意味着,例如,如果将代码行数减少一半可以减慢20%的速度,我们将更倾向于选择这种方式。
我们重视教育和文档编写。所有函数应该具有
NumPy风格的文档字符串
,最好附带示例,以及展示该函数在科学应用中如何使用的示例。
致谢#
本文档修改自 scikit-image
的使命与价值观文档。