弃用#
策略#
如果库的行为必须改变,必须遵循弃用周期来警告用户。
在以下情况下,弃用周期是不必要的:
添加新函数,或
在函数签名末尾添加新的关键字参数,或
修复错误的行为
任何破坏性 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_crust
和k_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"
。