NetworkX 3.3#

发布日期:2024年4月6日

支持 Python 3.10, 3.11 和 3.12。

NetworkX 是一个用于创建、操作和研究复杂网络结构、动力学和功能的 Python 包。

如需更多信息,请访问我们的网站和我们的示例画廊。请将意见和问题发送至 networkx-discuss 邮件列表

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)。

  • [功能] 随机扩展器实用工具 (#6761)。

  • 使用后端运行测试时,比较生成器函数的图 (#7066)。

  • 添加基尔霍夫指数 / 有效图电阻 (#6926)。

  • 更改最短路径方法的返回类型以提高一致性 (#6584)。

  • 修复最小 d-分隔符函数无法处理不存在 d-分隔符的情况的新 PR (#7019)。

  • ENH:提供非归一化和归一化有向拉普拉斯矩阵计算 (#7199)。

  • feat:在 PlanarEmbedding 中删除节点属性“first_nbr”的使用 (#7202)。

  • 添加计算 Schultz 和 Gutman 指数的函数 (#3709)。

  • 分裂社区算法 (#5830)。

  • 添加了模块化图乘积功能 (#7227)。

  • ENH:将 sort_neighbors 添加到 depth_first_search.py 中的所有函数 (#7196)。

  • Kneser 图的新图生成器 (#7146)。

  • 绘制 MultiDiGraph 边和标签 qa7008 (#7010)。

  • 使用 GitHub Actions 运行比较基准测试 (#7268)。

  • BFS 布局实现 (#5179)。

  • louvain_communities 添加 max_level= 参数以限制宏迭代次数 (#6909)。

  • 查看并更新自 3.2.1 以来的 @nx._dispatchable 使用情况 (#7302)。

  • _dispatchable 对象转换为函数 (#7298)。

  • fix:使 PlanarEmbedding.copy() 使用父类的 add_edges_from() 方法 (closes #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)。

  • ENH:将图对象转换为后端时进行缓存 (#7345)。

Bug 修复#

  • 修复“发布”页面上的发布说明列表显示 (#7030)。

  • 修复错误转义序列引起的语法警告 (#7034)。

  • 修复 triangles 函数,避免使用 is 比较节点 (#7041)。

  • 修复 nx.mycielski_graph(0) 的错误消息 (#7056)。

  • 不允许在 complete_multipartite_graph 中使用负数节点 (#7057)。

  • 处理 greedy_modularity_communities 的边缘情况 (#6973)。

  • FIX:复制数据时,匹配文档描述 (#7092)。

  • fix:在 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 中 extendability 函数名称的问题 (#7042)。

  • 进行一些小文档清理以消除文档构建警告 (#7048)。

  • DOC:向 generic_bfs_edges 添加示例以演示 neighbors 参数 (#7072)。

  • 分层聚类布局画廊示例 (#7058)。

  • 修复 katz centrality 文档中的错误 (#6294)。

  • 创建 3d_rotation_anime.py (#7025)。

  • DOC:为 filter view 函数添加文档字符串 (#7086)。

  • DOC:为 Filter mapping views 添加文档字符串 (#7075)。

  • DOCS:修复 isomorphvf2 中指向其他函数的内部链接 (#6706)。

  • 添加了 TSP 中三角形不等式情况的说明 (#6995)。

  • 在贡献者指南中添加关于测试重要性的说明 (#7103)。

  • 提议在指导项目中添加中心性概述 (#7104)。

  • 改进组件算法的文档 (#5473)。

  • 将 dot io 添加到 readwrite (#5061)。

  • 向发布说明添加 Python 版本信息 (#7113)。

  • DOC:在图生成器文档字符串中开启内联图 (#6401)。

  • 修复贡献者指南中的重复编号 (#7116)。

  • DOC:删除 planted_partition_graph 中不必要的“or” (#7115)。

  • DOC:将函数中的方法链接到基础 Graph 方法/属性 (#7125)。

  • 将文档连接到 total_spanning_tree_weight 的文档字符串 (#7098)。

  • 使用光谱聚类对图像 (3D RGB 数据) 进行分割,并附带 3D 插图 (#7040)。

  • 更新无向图的 triadic_census 文档 - issue 4386 (#7141)。

  • 向 plot_greedy_coloring.py 添加了 3D 和动画效果 (#7090)。

  • DOC:修复 URL 编码链接和文档引用 (#7152)。

  • DOC:添加对 fast_label_propagation_communities 的引用 (#7167)。

  • 更新了 argmap 类的“另请参阅”部分 (#7163)。

  • DOC:更新了 mincost.py 中的示例 (#7169)。

  • 文档化 directed_laplacian 及类似函数中 walk_type 参数的默认值 (#7171)。

  • DOC:为经典图生成器文档添加图表 (#7114)。

  • 修复 structuralholes.py::local_constraint 文档字符串中的一个小拼写错误 (#7198)。

  • 在文档中添加了 subgraph_is_monomorphicsubgraph_monomorphisms_iter (#7197)。

  • 修复 _dispatch 的在线文档 (#7194)。

  • DOC:更新了 panther_similarity 的文档 (#7175)。

  • 修复构建文档时的警告 (#7195)。

  • 改进 optimal_edit_paths 的文档 (#7130)。

  • DOC:使用 nx-parallel 额外文档信息构建 (#7220)。

  • 修复张量积文档中的 typo (修复 #7228) (#7229)。

  • 添加循环检测示例 (#6560)。

  • 更新 general_k_edge_subgraphs 文档字符串 (#7254)。

  • 更新 nonisomorphic_trees 的文档字符串 (#7255)。

  • cluster.py 中的函数添加自环相关的文档和测试 (#7261)。

  • 将 minimum_cycle_basis 添加到 cycle_basis 的“另请参阅”中 (#7274)。

  • 更新 CONTRIBUTING.rst (#7270)。

  • 修复文档构建期间所有的 sphinx 警告 (#7289)。

  • 文档基础设施:用 myst-nb 替换 nb2plot (#7237)。

  • 为 intersphinx 添加缺失模块的显式目标 (#7313)。

  • DOC:为任意大随机整数工具添加文档建议 (#7322)。

  • 在地理空间示例中尝试/捕获间歇性失败的 basemaps (#7324)。

  • 使用面向未来的 pandas 赋值更新文档字符串示例 (#7323)。

  • 从光谱聚类示例中移除动画以提高性能 (#7328)。

  • 改进 Approximations 文件的文档 (#7338)。

  • 更新 LCF_graph 文档字符串 (#7262)。

  • weisfeiler_lehman_subgraph_hashes 中包含初始标签的选项 (#6601)。

  • 添加 eriknw 作为贡献者 (#7343)。

  • [DOC, DISPATCH]:更新并添加了 backend.py 的文档 (#7305)。

  • 为 traveling_salesman_problem 添加 **kwargs (#7371)。

  • 移动后端文档并连接配置文档。两者都在一个侧边栏条目中 (#7389)。

维护#

  • 放弃 Python 3.9 支持 (#7028)。

  • fix:从 np 导入时,显式检查 edge_attr 中的 None/False (#6825)。

  • 添加 favicon (#7043)。

  • 移除未使用的代码 resistance_distance (#7053)。

  • 修复小图的名称 (#7055)。

  • 改进后端处理配置错误的错误消息 (#7062)。

  • MAINT:修复 union 异常消息 (#7071)。

  • MAINT:对 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_crustk_corona 添加 not_implemented_for("multigraph”) (#7121)。

  • 在编辑 Pull Request 时而不是 push 时添加标签检查 (#7134)。

  • 添加标签工作流 pull_request 类型同步和回显消息 (#7135)。

  • 为使用有向图时的同构性添加测试覆盖 (#6417)。

  • 移除 __networkx_plugin__ 的使用 (改用 __networkx_backend__) (#7157)。

  • DOC:统一 neighbor 的拼写并重命名变量 (#7162)。

  • MAINT:使用 ruff 格式而不是 black (#7160)。

  • 确保与 shortest_path 返回值更改相关的警告对用户可见 (#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.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)。

  • 提高 bipartite matrix.py 的测试覆盖率 (#7312)。

  • 取消 coloring strategies 的调度 (#7329)。

  • 撤销 single_target_shortest_path_length 返回类型更改 (#7327)。

  • 从光谱聚类示例中移除动画以提高性能 (#7328)。

  • steiner tree mehlhorn futurewarning 过期 (#7337)。

  • 将 louvain 测试模块化比较更新为 leq (#7336)。

  • 添加 aaronzo 作为贡献者 (#7342)。

  • 修复 #7339。shortest_path 与警告不一致 (#7341)。

  • 添加 nx.config 字典用于配置调度和后端 (#7225)。

  • 提高 Steiner Tree 及文档的测试覆盖率 (#7348)。

  • test_richclub_normalized 添加了 seed (#7355)。

  • 向 link_prediction.py 添加测试 (#7357)。

  • 修复测试后端时 pydot 测试的问题 (#7356)。

  • 使 graphml 中的 xml 解析具有未来兼容性 (#7360)。

  • 通过移除 np.set_printoptions 使文档字符串示例与顺序无关 (#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)。

  • 通过 3 次更新提升 GH actions (#7310)。

贡献者#

本次发布新增 54 位作者 (按字母顺序排列)

本次发布新增 29 位审阅者 (按字母顺序排列)

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