废弃#

政策#

如果必须更改库的行为,则必须遵循废弃周期来警告用户。

在以下情况下,不需要废弃周期:

  • 添加新函数,或

  • 将新关键字参数添加到函数签名的*末尾,或

  • 修复错误行为

对于*任何破坏性API更改*,必须进行废弃周期,这意味着在更改后,使用相同参数调用函数将返回不同的结果。这包括:

  • 更改参数或关键字参数的顺序,或

  • 向函数添加参数或关键字参数,或

  • 更改函数、类、方法等的名称,或

  • 将函数、类等移动到不同的模块,或

  • 更改函数参数的默认值。

通常,我们的政策是在两个次要发布版本上实施废弃周期(例如,如果在2.3中出现废弃警告,则应在2.5中删除该功能)。对于主要发布版本,我们通常要求所有废弃功能至少有一个发布周期(例如,如果3.0在2.5之后发生,则在2.5中应废弃3.0中删除的所有功能)。

请注意,对于主要和次要发布版本的这些1和2发布周期的废弃周期并不是严格规则,在某些情况下,开发人员可以在理由上达成不同程序的一致意见(例如,当我们无法检测到更改时,或者涉及移动或删除整个函数时)。

待办事项#

在删除废弃代码后,请确保审查 networkx/conftest.py

版本 3.5#

  • algorithms/triads.py 中删除 all_triplets

  • algorithms/triad.py 中删除 random_triad

  • algorithms/d_separation.py 中删除 d_separated

  • algorithms/d_separation.py 中删除 minimal_d_separator

  • k_corek_shellk_crustk_corona 函数中添加 not_implemented_for("multigraph”) 装饰器。

  • algorithms/shortest_path/unweighted.py 中的 single_target_shortest_path_length 更改为返回字典。参见 #6527。

  • algorithms/shortest_path/generic.py 中的 shortest_path 更改为返回迭代器。参见 #6527。

  • linalg/laplacianmatrix.py 中删除 total_spanning_tree_weight

  • generators/nonisomorphic_trees 中的 nonisomorphic_trees 中删除 create 关键字参数。

版本 3.6#

  • algorithms/dag.py 中删除 compute_v_structures