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_treescreate 参数 ( #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_monomorphicsubgraph_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_corek_shellk_crustk_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_predictionsimrank 中添加了 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.pygnm_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位作者(按字母顺序排列):

29 位审阅者已添加到此版本发布中(按字母顺序排列):

_这些列表是自动生成的,可能不完整或包含重复项。_