NetworkX 3.4#
发布日期:2024年10月10日
支持 Python 3.10, 3.11, 3.12 和 3.13。
NetworkX 是一个用于创建、操作和研究复杂网络的结构、动态和功能的 Python 包。
欲了解更多信息,请访问我们的网站和示例集。请将意见和问题发送至 networkx-discuss 邮件列表。
API 变更#
终止
forest_str
的弃用期 (#7414)。[增强, 错误修复]: 在
dag.py
中添加了colliders
和v_structures
并弃用了compute_v_structures
(#7398)。终止
random_tree
的弃用期 (#7415)。终止 strongly_connected_components_recursive 的弃用期 (#7420)。
终止
generic_bfs_edges
中弃用的sort_neighbors
参数的弃用期 (#7417)。从 s_metric 中移除弃用的 normalized 参数 (#7418)。
终止弃用的 nx.join,推荐使用 join_trees (#7419)。
移除 3.4 中弃用的 Edmonds 类 (#7447)。
移除 3.4 中弃用的 MultiDiGraph_EdgeKey (#7448)。
在
JSON
输入输出中添加edges
关键词/弃用link
关键词参数 (#7565)。撤销对
node_link_*
link 默认值的破坏性变更 (#7652)。
增强功能#
为
from_numpy_array
添加nodelist
功能 (#7412)。在
to_networkx_graph
中优先使用边列表表示 (#7424)。向 _dispatchable 添加初始调试日志调用 (#7300)。
添加: nodes 属性可修改 (#7532)。
使 config 可用作上下文管理器 (#7363)。
添加了在 mst 中处理多图的代码 (#7454)。
默认启用缓存 (#7498)。
#7546 为 pydot 提供更详细的错误消息 (#7558)。
修复 weakly_connected_components() 在图视图上的性能问题 (#7586)。
Forceatlas2 (#7543)。
避免迭代,使用布尔索引 (#7591)。
在 simple_paths 中隐藏权重为 None 的边 (#7583)。
改进了调和中心性 (harmonic centrality) 的运行时间 (#7595)。
添加移除属性函数 (#7569)。
在分派机制中记录“能否/应运行”和缓存 (#7568)。
个性化绘图属性 (#7570)。
添加了 nx-parallel gsoc 项目 (#7620)。
调和直径 (Harmonic diameter) (#5251)。
允许分派机制回退到 networkx (#7585)。
为随机图添加
create_using
参数 (#5672)。添加配置选项以在使用缓存值时禁用警告 (#7497)。
错误修复#
修复
complete_bipartite_graph
的图名称属性 (#7399)。移除 to_networkx_graph 转换期间的导入警告 (#7426)。
修复 nx.from_pandas_edgelist,使其不将边键添加为边属性和边键 (#7445)。
修复
from_pandas_edgelist
在给定 edge_key 时对 MultiGraph 的处理 (#7466)。修复使用 numpy 2 时的分派测试 (#7506)。
[增强, 错误修复]: 在
dag.py
中添加了colliders
和v_structures
并弃用了compute_v_structures
(#7398)。修复当分隔符为空白符(例如制表符)时读取边列表的问题 (#7465)。
确保在
backend=
中遇到未知后端时总是抛出异常 (#7494)。防止
to_agraph
修改图参数 (#7610)。在 Steiner Tree 近似中实现迭代移除非末端叶子 (#7422)。
在
eigenvector_centrality_numpy
中只允许连通图 (#7549)。CI: 修复夜间运行 pip install 中的拼写错误 (#7625)。
文档#
补充缺失的 shortest_path 函数文档 (#7394)。
改进了 Optimal Edit Paths 返回部分的描述 (#7375)。
对 simple_cycles docstring 进行小更新 (#7421)。
文档: 澄清
NetworkXPointlessConcept
异常 (#7434)。文档: 更新了
pairs.py
(#7416)。为有向树添加 docstring 示例 (#7449)。
修改
shortest_path_length
文档,使其返回类型为 number 而非 int (#7477)。使用 intersphinx_registry 管理 intersphinx 映射 (#7481)。
维护: 修复文档中的一些拼写错误 (#7480)。
更新文档索引中的 NetworkX 参考链接 (#7500)。
更新 strong product 文档 (#7511)。
重构和增强面向用户的
Backend and Configs
文档 (#7404)。修复了
dominance.py
中的引用 [Issue #7522] (#7524)。澄清
dorogovtsev_goltsev_mendes_graph()
中的生成代数 (#7473)。在后端文档中添加
Introspection
章节 (#7556)。文档: 在
get_info
的描述中添加了default_config
(#7567)。美化
README.rst
(#7514)。文档: 修复 nx_pydot.pydot_layout() 的 docstring 中提供的代码片段中的拼写错误 (#7572)。
修复 README 中
default
额外依赖的安装说明 (#7574)。为 v3.3 版本发布说明添加缺失的元数据 (#7592)。
更正指导委员会成员 (#7604)。
修复分派文档格式问题 (#7619)。
添加到贡献者列表 (#7621)。
针对 issue 7633 的示例修复 (#7634)。
修复: 修正 Girvan-Newman 社区检测中的社区颜色分配 (#7644)。
更新了 generators/karate_club_graph() 的 docstring (#7626)。
更新文档以包含有关将 NetworkX 与后端一起使用的详细信息 (#7611)。
为
to_scipy_sparse_array
添加示例章节 (#7627)。为 subgraph_(iso/monomorphism) 方法的 docstring 添加示例 (#7622)。
维护#
简化
connectivity
模块中的流函数增强逻辑 (#7367)。为 mpl/np 依赖项添加一些 doctest 跳过规则 (#7403)。
移除重复词汇 (#7406)。
FilterAdjacency: __len__ 被不必要地重新计算 #7377 (#7378)。
在
flow_hierarchy
中添加空图检查 (#7393)。使用 from_numpy_array 的 nodelist 功能 (#7425)。
清理包中弃用的
random_tree
的剩余用法 (#7411)。在
non_randomness
中添加空图检查 (#7395)。更新 macOS Sonoma v14 的测试 (#7437)。
更新文档需求 (#7435)。
更新 pygraphviz (#7441)。
始终缓存图属性以获得更好的缓存行为 (#7455)。
在 networkx 图的 nx-loopback 副本中保留邻接顺序 (#7432)。
开发者: 将性能测试生成的文件添加到 .gitignore (#7461)。
移除
algorithms.bridges.bridges()
中的冗余图复制 (#7471)。CI: 为包分发添加 GitHub 构建产物认证 (#7459)。
将
polynomials.py
添加到needs_numpy
(#7493)。维护: 将
LoopbackDispatcher
重命名为LoopbackBackendInterface
,将dispatcher
重命名为backend_interface
(#7492)。CI: 更新已转移组织的 action (#7503)。
更新 momepy (#7507)。
修复 Windows 上 pygraphviz 的安装问题 (#7512)。
维护: 使
plot_image_segmentation_spectral_graph_partition
示例兼容 scipy 1.14.0 (#7518)。修复文档工作流中 nx-cugraph 的 CI 安装问题 (#7538)。
对 dorogovtsev_goltsev_mendes 的文档/测试进行小修改 (#7535)。
CI: 为覆盖率任务添加超时限制 (#7542)。
更新文档构建工作流中使用的图像 (#7537)。
移除与并行化相关的 TODO 注释 (#7226)。
修复: scipy 1d 索引问题导致 numpy 出现问题?(#7541)。
对 node_link 函数进行小修改 (#7540)。
对 colliders v_structures 测试进行小更新 (#7539)。
更新 sphinx gallery 配置以启用 sphinx 构建缓存 (#7548)。
更新地理空间示例集的依赖项 (#7508)。
更新 ruff pre-commit 和 config (#7547)。
更精确的 NodeNotFound 错误消息 (#7545)。
更新 ruff config (#7552)。
添加 changelist config (#7551)。
修复部署文档 CI 中 nx-cugraph 的安装问题 (#7561)。
修复
nx_pydot.graphviz_layout
对带有引号/转义字符的节点的处理问题 (#7588)。文档: 从 autosummary 中移除冗余模块 (#7599)。
更新 numpydoc (1.8) (#7573)。
将 pydot 最低版本提升至 3.0 (#7596)。
CI: 在夜间 wheel 测试中包含 Python 3.13 (#7594)。
pydot - 移除字符串中的冒号检查 (#7606)。
维护: 在 circle CI 中不使用 requirements 文件 (#7553)。
在 github workflow 中不使用 requirements 文件 (#7495)。
weisfeiler_lehman_graph_hash
: 添加not_implemented_for("multigraph")
装饰器 (#7614)。通过运行
tools/team_list.py
更新 teams 文档 (#7616)。为局部和全局可达中心性添加单节点自环检查 (#7350)。
为 issue #6029 中的 maxflow 添加全面的测试覆盖 (#6355)。
CI: 修复夜间运行 pip install 中的拼写错误 (#7625)。
文档: 在文档中重新引入 plausible (#7639)。
更新最低依赖项 (SPEC 0) (#7631)。
更新 pygraphviz (1.14) (#7654)。
修改 product.py,使其在 'root 不在 H 中' 时抛出 NodeNotFound 异常 (#7635)。
支持 Python 3.13 (#7661)。
使用官方发布的 Python 3.13 (#7667)。
其他#
杂项: 修复评论中的一些拼写错误 (#7427)。
贡献者#
此版本新增 53 位作者 (按字母顺序排列)
Aditi Juneja (@Schefflera-Arboricola)
Alexander Bakhtin (@bakhtos)
Ashwin Nayak (@ashwin-nayak)
Brigitta Sipőcz (@bsipocz)
Casper van Elteren (@cvanelteren)
Charitha Buddhika Heendeniya (@buddih09)
chrizzftd (@chrizzFTD)
Cora Schneck (@cyschneck)
Dan Schult (@dschult)
Erik Welch (@eriknw)
Ewout ter Hoeven (@EwoutH)
Fabian Spaeh (@285714)
Gilles Peiffer (@Peiffap)
Gregory Shklover (@gregory-shklover)
Jarrod Millman (@jarrodmillman)
Jim Hull (@jmhull)
Joye Mang (@joyemang33)
Kelvin Chung (@KelvinChung2000)
Koushik_Nekkanti (@KoushikNekkanti)
M Bussonnier (@Carreau)
Marc-Alexandre Côté (@MarcCote)
Matt Schwennesen (@mjschwenne)
Matthew Feickert (@matthewfeickert)
Maverick18 (@Aditya-Shandilya1182)
Michael Bolger (@mbbolger)
Miguel Cárdenas (@miguelcsx)
Mohamed Rezk (@mohamedrezk122)
Mridul Seth (@MridulS)
Mudassir Chapra (@muddi900)
Orion Sehn (@OrionSehn)
Orion Sehn (@OrionSehn-personal)
Peter Cock (@peterjc)
Philipp van Kempen (@PhilippvK)
prathamesh shinde (@prathamesh901)
Raj Pawar (@Raj3110)
Rick Ratzel (@rlratzel)
Rike-Benjamin Schuppner (@Debilski)
Ross Barnowski (@rossbar)
Sanchit Ram Arvind (@sanchitram1)
Sebastiano Vigna (@vigna)
STEVEN ADAMS (@hugehope)
Thomas J. Fan (@thomasjpfan)
Till Hoffmann (@tillahoffmann)
Vanshika Mishra (@vanshika230)
Woojin Jung (@WoojinJung-04)
Yury Fedotov (@yury-fedotov)
Łukasz (@lkk7)
此版本新增 28 位评审者 (按字母顺序排列)
Aditi Juneja (@Schefflera-Arboricola)
Bhuvneshwar Chouksey (@gbhuvneshwar)
Casper van Elteren (@cvanelteren)
chrizzftd (@chrizzFTD)
Dan Schult (@dschult)
Erik Welch (@eriknw)
Fabian Spaeh (@285714)
Gilles Peiffer (@Peiffap)
Jarrod Millman (@jarrodmillman)
M Bussonnier (@Carreau)
Matt Schwennesen (@mjschwenne)
Maverick18 (@Aditya-Shandilya1182)
Michael Bolger (@mbbolger)
Miguel Cárdenas (@miguelcsx)
Mohamed Rezk (@mohamedrezk122)
Mridul Seth (@MridulS)
Orion Sehn (@OrionSehn)
Orion Sehn (@OrionSehn-personal)
Raj Pawar (@Raj3110)
Rick Ratzel (@rlratzel)
Ross Barnowski (@rossbar)
Sanchit Ram Arvind (@sanchitram1)
Sebastiano Vigna (@vigna)
Till Hoffmann (@tillahoffmann)
Woojin Jung (@WoojinJung-04)
_这些列表是自动生成的,可能不完整或包含重复项。_