弃用#

策略#

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

在以下情况下,弃用周期是必要的:

  • 添加新函数,或

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

  • 修复错误的行为

任何破坏性 API 更改都需要弃用周期,这意味着函数在更改后使用相同的参数调用会返回不同的结果。这包括:

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

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

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

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

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

通常,我们的策略是在两个次要版本之间设置一个弃用周期(例如,如果在 2.3 中出现弃用警告,则该功能应在 2.5 中移除)。对于主要版本,我们通常要求所有弃用至少有一个版本的弃用周期(例如,如果 3.0 在 2.5 之后发布,则 3.0 中移除的所有功能应在 2.5 中弃用)。

请注意,主要版本和次要版本的 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_core, k_shell, k_crustk_corona 函数添加 not_implemented_for("multigraph”) 装饰器。

  • 更改 algorithms/shortest_path/unweighted.py 中的 single_target_shortest_path_length 以返回一个 dict。参见 #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

  • readwrite/json_graph/node_link.py 中移除 link kwarg;移除关于 edges 默认值的 FutureWarning 并将默认值更改为 "edges"