networkx 3.3#
我们很高兴地宣布发布了 networkx 3.3!
API 变更#
在
complete_multipartite_graph中禁止负数节点数 ( #7057 )。DEP: 弃用 all_triplets 一行代码 ( #7060 )。
[A-star] 如果提供了 cutoff,则通过截断进行扩展修剪 ( #7073 )。
使 HITS 引发与幂迭代一致的异常 ( #7084 )。
DEP: 弃用 random_triad ( #7061 )。
添加特征模块化图乘积 ( #7227 )。
ENH: 通过使用 _adj 字典操作加速 common/non_neighbors ( #7244 )。
弃用
nonisomorphic_trees的create参数 ( #7316 )。改进 total_spanning_tree_weight ( #7100 )。
更新 __init__.py ( #7320 )。
在 traveling_salesman_problem 中添加 **kwargs ( #7371 )。
增强功能#
添加 Tadpole 图 ( #6999 )。
[A-star] 如果提供了 cutoff,则通过截断进行扩展修剪 ( #7073 )。
实现 \(S^1\) 模型 ( #6858 )。
[Feat] 随机扩展工具 ( #6761 )。
在使用后端运行测试时,为生成函数比较图 ( #7066 )。
添加 Kirchhoff 指数 / 有效图电阻 ( #6926 )。
更改最短路径方法的返回类型以提高一致性 ( #6584 )。
修复最小 d-分离器函数无法处理不存在 d-分离器的情况的新 PR ( #7019 )。
ENH: 提供非标准化和标准化有向拉普拉斯矩阵计算 ( #7199 )。
feat: 在 PlanarEmbedding 中放弃节点属性 “first_nbr” 的使用 ( #7202 )。
添加计算 Schultz 和 Gutman 指数的函数 ( #3709 )。
分裂社区算法 ( #5830 )。
添加特征模块化图乘积 ( #7227 )。
增强:在
depth_first_search.py中的所有函数中添加了sort_neighbors( #7196 )。为Kneser图添加了新的图生成器( #7146 )。
绘制MultiDiGraph边缘和标签qa7008( #7010 )。
使用github actions运行比较基准测试( #7268 )。
BFS布局实现( #5179 )。
在
louvain_communities中添加了max_level=参数以限制宏迭代( #6909 )。自3.2.1版本以来,审查并更新
@nx._dispatchable的使用( #7302 )。将
_dispatchable对象转换为函数( #7298 )。修复:使
PlanarEmbedding.copy()使用父级的add_edges_from()(关闭#7223)( #7224 )。允许np.random实例的种子精确生成任意大的整数( #6869 )。
改进
total_spanning_tree_weight( #7100 )。为
nx.generate_random_paths添加种子( #7332 )。允许后端实现
should_run( #7257 )。在新模块中添加树广播算法( #6928 )。
在
weisfeiler_lehman_subgraph_hashes中包含初始标签的选项( #6601 )。当尝试获取不存在的边缘时添加更好的错误消息( #7245 )。
使
is_negatively_weighted可分发( #7352 )。添加隐藏或显示刻度标签的选项( #6018 )。
增强:在转换为后端时缓存图对象( #7345 )。
错误修复#
修复发布页面上发布说明的列表( #7030 )。
修复由于错误的转义序列而导致的语法警告( #7034 )。
修复三角形以避免使用
is比较节点( #7041 )。修复
nx.mycielski_graph(0)的错误消息( #7056 )。不允许
complete_multipartite_graph中的节点数为负数( #7057 )。处理
greedy_modularity_communities的边缘情况( #6973 )。修复:在复制数据时匹配文档描述 ( #7092 )。
修复:在 all_simple_paths 和其他函数中包含单例/平凡路径 ( #6694 )。
Dinitz 修正 ( #6968 )。
修改 GML 测试以修复无效的八进制字符警告 ( #7159 )。
修复 random_spanning_tree() 对单个节点和空图的情况 ( #7211 )。
PlanarEmbedding.remove_edge() 现在更新已移除边的邻居 ( #6798 )。
在图创建中添加种子 ( #7241 )。
在 fast_label_propatation_communities 的测试中添加种子 ( #7242 )。
修复 rich_club_coefficient() 对单个节点和空图的情况 ( #7212 )。
修复 minimum_spanning_arborescence 的回归问题 ( #7280 )。
将 arrowstyle 输入处理放在输入验证之后 ( #7293 )。
修复未解析空 GraphML 属性的问题 ( #7319 )。
在
test_asadpour_tsp中添加新的测试结果并更改linprog方法 ( #7335 )。修复 Mehlhorn 的自定义权重属性 ( #6681 )。
文档#
更新发布流程 ( #7029 )。
更新 convert_matrix.py ( #7018 )。
修复 bipartite.rst 中可扩展性函数名称 ( #7042 )。
对文档进行轻微清理,以消除文档构建警告 ( #7048 )。
文档:向 generic_bfs_edges 添加示例以演示
neighbors参数 ( #7072 )。分层聚类布局画廊示例 ( #7058 )。
修复 katz 中心性文档中的错误 ( #6294 )。
创建 3d_rotation_anime.py ( #7025 )。
文档:为 filter view 函数添加文档字符串 ( #7086 )。
文档:为 Filter mapping views 添加文档字符串 ( #7075 )。
文档:修复 isomorphvf2 中对其他函数的内部链接 ( #6706 )。
在 TSP 中为三角不等式情况添加注释 ( #6995 )。
在贡献者指南中添加关于测试重要性的注释 ( #7103 )。
建议在指导项目中添加中心性概述 ( #7104 )。
改进组件算法的文档 ( #5473 )。
在readwrite中添加dot io ( #5061 )。
在发布说明中添加Python版本 ( #7113 )。
文档:在图生成器文档字符串中启用内联图 ( #6401 )。
修复贡献者指南中的重复编号 ( #7116 )。
文档:移除planted_partition_graph中不必要的 ‘or’ ( #7115 )。
文档:将函数中的方法链接到基本图方法/属性 ( #7125 )。
将文档连接到total_spanning_tree_weight的doc_string ( #7098 )。
使用三维插图进行图像(3D RGB数据)分割的谱聚类 ( #7040 )。
更新无向图的triadic_census文档 - 问题4386 ( #7141 )。
在plot_greedy_coloring.py中添加3D和动画 ( #7090 )。
文档:修复URL编码链接和文档引用 ( #7152 )。
文档:添加对fast_label_propagation_communities的引用 ( #7167 )。
更新argmap类的See also部分 ( #7163 )。
文档:更新mincost.py中的示例 ( #7169 )。
在directed_laplacian和类似函数中文档walk_type参数的默认值 ( #7171 )。
文档:在经典图生成器文档中添加图表 ( #7114 )。
修复
structuralholes.py::local_constraint文档字符串中的一个小错别字 ( #7198 )。在文档中添加
subgraph_is_monomorphic和subgraph_monomorphisms_iter( #7197 )。修复
_dispatch的在线文档 ( #7194 )。文档:更新panther_similarity的文档 ( #7175 )。
修复构建文档时的警告 ( #7195 )。
改进optimal_edit_paths的文档 ( #7130 )。
文档:使用nx-parallel额外文档信息构建 ( #7220 )。
修复张量积文档中的拼写错误(修复 #7228)( #7229 )。
添加循环检测的示例( #6560 )。
更新 general_k_edge_subgraphs 的文档字符串( #7254 )。
更新 nonisomorphic_trees 的文档字符串( #7255 )。
在
cluster.py中的函数中添加关于自环的相关文档和测试( #7261 )。将 minimum_cycle_basis 添加到 cycle_basis 的 See Also 中( #7274 )。
更新 CONTRIBUTING.rst( #7270 )。
修复文档构建过程中的所有 Sphinx 警告( #7289 )。
文档基础设施:用
myst-nb替换nb2plot( #7237 )。为 intersphinx 添加缺失模块的显式目标( #7313 )。
文档:为任意大的随机整数工具添加文档建议( #7322 )。
在地理空间示例中尝试/捕获间歇性失败的底图( #7324 )。
使用未来兼容的 pandas 赋值更新文档字符串示例( #7323 )。
从谱聚类示例中移除动画以提高性能( #7328 )。
近似文件的文档改进( #7338 )。
更新
LCF_graph的文档字符串( #7262 )。在
weisfeiler_lehman_subgraph_hashes中添加包含初始标签的选项( #6601 )。将 eriknw 添加为贡献者( #7343 )。
[文档,调度]:更新并添加
backend.py的文档( #7305 )。为 traveling_salesman_problem 添加 **kwargs( #7371 )。
移动后端文档并连接配置文档。两者在单个侧边栏条目中( #7389 )。
维护#
放弃 Python 3.9 支持( #7028 )。
修复:在从 np 导入时明确检查 edge_attr 中的 None/False( #6825 )。
添加网站图标( #7043 )。
移除未使用的代码 resistance_distance( #7053 )。
修复小图的名称( #7055 )。
改进对配置错误的后端处理的错误消息 ( #7062 )。
维护:修复并集异常消息 ( #7071 )。
维护:微调 tadpole 和 lollipop 图 ( #7049 )。
在
number_connected_components中添加@not_implemented_for("directed")( #7074 )。删除未使用的代码 ( #7076 )。
对 beamsearch 模块进行微小调整 ( #7059 )。
修复同一行上令人讨厌的拆分字符串 ( #7079 )。
更新
hits的 dispatch 装饰器,使用"weight"边权重 ( #7081 )。移除 nbconvert 的上限固定(还原 #6984) ( #7083 )。
添加一个 CI 步骤,检查导入时的警告 ( #7077 )。
为 /generators/duplication.py 和 /generators/geomet… 添加了一些测试 ( #6976 )。
在 Python 3.13-dev 上进行测试 ( #7096 )。
更改了 GraphMLWriterLxml.dump() 的参数列表 ( #6261 )。
write_graphml:在TypeError异常上对对象类型描述进行小修复 ( #7109 )。更新了
core.py中的函数 ( #7027 )。在 push 和更改检查名称时进行标签检查 ( #7111 )。
DEP:为
k_core、k_shell、k_crust和k_corona添加not_implemented_for("multigraph”)( #7121 )。在编辑拉取请求时添加标签检查,而不是在推送时 ( #7134 )。
添加标签工作流拉取请求类型 synchronize 和 echo 消息 ( #7135 )。
在使用有向图时为同构性添加测试覆盖率 ( #6417 )。
移除
__networkx_plugin__的使用(改用__networkx_backend__) ( #7157 )。文档:一致拼写邻居并重命名变量 ( #7162 )。
维护:使用 ruff 格式代替 black ( #7160 )。
确保与最短路径返回值变化相关的警告对用户可见 ( #7161 )。
同步空图的 is_{type} 行为 ( #5849 )。
在
_apply_prediction和simrank中添加了NodeNotFound异常,并在panther_similarity中忽略了孤立节点( #7110 )。修复了is_regular和相关函数的not_implemented_for装饰器( #7182 )。
修复了完全图的all_node_cuts输出( #6558 )。
移除了
"networkx.plugins"和"networkx.plugin_info"入口点( #7192 )。将actions/setup-python从4升级到5( #7201 )。
更新了Pytest v8的测试套件( #7203 )。
现在pydot再次得到积极维护,取消了对
nx_pydot的弃用( #7204 )。未来证明和改进测试( #7209 )。
根据SPEC 0删除旧的依赖项( #7217 )。
更新了pygraphviz( #7216 )。
为了提高性能,重构了geometric_soft_configuration_model的测试( #7210 )。
将
_dispatch重命名为_dispatchable( #7193 )。在测试套件中用tmp_path fixture替换了tempfile( #7221 )。
更新了test_directed_edge_swap #5814( #6426 )。
将版权年份提升至2024( #7232 )。
改进了Small.py的测试覆盖率( #7260 )。
对称边流介数分区的测试( #7251 )。
MAINT:在
community/tests/test_label_propagation.py的gnm_random_graph中添加了seed( #7264 )。将scientific-python/upload-nightly-action从0.2.0升级到0.3.0( #7266 )。
为
cluster.py中的函数添加了关于自环的相关文档和测试( #7261 )。改进了Mycielsky.py的测试覆盖率( #7271 )。
使用ruff的文档字符串格式( #7276 )。
将文档字符串格式更改添加到blame-ignore-revs( #7281 )。
改进了random_clustered的测试覆盖率并更新了函数名称( #7273 )。
文档基础设施:用
myst-nb替换了nb2plot( #7237 )。临时删除地理空间示例以修复CI ( #7299 )。
改进二部图可扩展性的测试覆盖率 ( #7306 )。
CI:将scientific-python/upload-nightly-action从0.3.0更新到0.4.0 ( #7309 )。
CI:分组dependabot更新 ( #7308 )。
CI:将upload-nightly-action更新为0.5.0 ( #7311 )。
重命名后端
func_info字典的键 ( #7219 )。在
_dispatchable中添加mutates_input=和returns_graph=( #7191 )。避免使用numpy标量创建结果(参考NEP 51) ( #7282 )。
将changelist从0.4提升到0.5 ( #7325 )。
改进二部图matrix.py的测试覆盖率 ( #7312 )。
撤消着色策略的分派 ( #7329 )。
撤销
single_target_shortest_path_length的返回类型更改 ( #7327 )。从谱聚类示例中移除动画以提高性能 ( #7328 )。
过期steinertree mehlhorn futurewarning ( #7337 )。
将louvain测试模块性比较更新为leq ( #7336 )。
将aaronzo添加为贡献者 ( #7342 )。
修复 #7339。
shortest_path与警告不一致 ( #7341 )。添加
nx.config字典以配置分派和后端 ( #7225 )。改进Steiner Tree & Docs的测试覆盖率 ( #7348 )。
在
test_richclub_normalized中添加seed( #7355 )。在link_prediction.py中添加测试 ( #7357 )。
在测试后端时修复pydot测试 ( #7356 )。
未来证明graphml中的xml解析 ( #7360 )。
通过删除np.set_printoptions使doc_string示例无序 ( #7361 )。
在测试清理时关闭图形 ( #7373 )。
为numpy 2.0进行更多numpy标量清理 ( #7374 )。
更新numpydoc ( #7364 )。
修复在后端测试中导致段错误的pygraphviz测试 ( #7380 )。
在broadcasting.py中添加分派功能 ( #7386 )。
更新测试套件以处理未安装scipy时的情况 ( #7388 )。
删除已弃用的np.row_stack,改用vstack ( #7390 )。
修复对
del config[key]的异常 ( #7391 )。将GH操作更新为3个 ( #7310 )。
贡献者#
本次发布中新增了54位作者(按字母顺序排列):
Aaron Z. ( @aaronzo )
Aditi Juneja ( @Schefflera-Arboricola )
AKSHAYA MADHURI ( @akshayamadhuri )
Alex Markham ( @Alex-Markham )
Anders Rydbirk ( @anders-rydbirk )
Andrew Knyazev ( @lobpcg )
Ayooluwa ( @Ay-slim )
Baldo ( @BrunoBaldissera )
Benjamin Edwards ( @bjedwards )
Chiranjeevi Karthik Kuruganti ( @karthikchiru12 )
Chris Pryer ( @cnpryer )
d.grigonis ( @dgrigonis )
Dan Schult ( @dschult )
Daniel V. Egdal ( @DanielEgdal )
Dilara Tekinoglu ( @dtekinoglu )
Dishie Vinchhi ( @Dishie2498 )
Erik Welch ( @eriknw )
Frédéric Crozatier ( @fcrozatier )
Henrik Finsberg ( @finsberg )
Jangwon Yie ( @jangwon-yie )
Jaron Lee ( @jaron-lee )
Jarrod Millman ( @jarrodmillman )
Jon Crall ( @Erotemic )
Jonas Otto ( @ottojo )
Jordan Matelsky ( @j6k4m8 )
Koen van den Berk ( @kalkoen )
Luigi Sciarretta ( @LuigiSciar )
Luigi Sciarretta ( @LuigiSciarretta )
Matt Schwennesen ( @mjschwenne )
Matthew Feickert ( @matthewfeickert )
Matthieu Gouel ( @matthieugouel )
Mauricio Souza de Alencar ( @mdealencar )
Maximilian Seeliger ( @max-seeli )
Mridul Seth ( @MridulS )
Navya Agarwal ( @navyagarwal )
Neil Botelho ( @NeilBotelho )
Nihal John George ( @nihalgeorge01 )
Paolo Lammens ( @plammens )
Patrick Nicodemus ( @patrick-nicodemus )
Paula Pérez Bianchi ( @paulitapb )
Purvi Chaurasia ( @PurviChaurasia )
Robert ( @ImHereForTheCookies )
Robert Jankowski ( @robertjankowski )
Ross Barnowski ( @rossbar )
Sadra Barikbin ( @sadra-barikbin )
Salim BELHADDAD ( @salym )
Till Hoffmann ( @tillahoffmann )
Vanshika Mishra ( @vanshika230 )
William Black ( @smokestacklightnin )
William Zijie Zhang ( @Transurgeon )
29 位审阅者已添加到此版本发布中(按字母顺序排列):
Aaron Z. ( @aaronzo )
Aditi Juneja ( @Schefflera-Arboricola )
AKSHAYA MADHURI ( @akshayamadhuri )
Andrew Knyazev ( @lobpcg )
Ayooluwa ( @Ay-slim )
Chiranjeevi Karthik Kuruganti ( @karthikchiru12 )
Chris Pryer ( @cnpryer )
d.grigonis ( @dgrigonis )
Dan Schult ( @dschult )
Erik Welch ( @eriknw )
Frédéric Crozatier ( @fcrozatier )
Henrik Finsberg ( @finsberg )
Jarrod Millman ( @jarrodmillman )
Kyle Sunden ( @ksunden )
Matt Schwennesen ( @mjschwenne )
Mauricio Souza de Alencar ( @mdealencar )
Maximilian Seeliger ( @max-seeli )
Mridul Seth ( @MridulS )
Nihal John George ( @nihalgeorge01 )
Paolo Lammens ( @plammens )
Paula Pérez Bianchi ( @paulitapb )
Rick Ratzel ( @rlratzel )
Robert Jankowski ( @robertjankowski )
Ross Barnowski ( @rossbar )
Stefan van der Walt ( @stefanv )
Vanshika Mishra ( @vanshika230 )
William Black ( @smokestacklightnin )
William Zijie Zhang ( @Transurgeon )
_这些列表是自动生成的,可能不完整或包含重复项。_