NetworkX 3.2#

发布日期:2023年10月18日

支持 Python 3.9、3.10、3.11 和 3.12。

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

欲了解更多信息,请访问我们的网站和我们的范例集。请将意见和问题发送到networkx-discuss 邮件列表

亮点#

  • 为大多数算法添加 @nx._dispatch 修饰符 (#6688)。

API 变更#

  • is_semiconnected 中移除 topo_order kwarg,不进行弃用处理 (#6651)。

  • 弃用 Edmonds 类 (#6785)。

  • 将权重设为具有默认假设的函数的 API 的一部分 (#6814)。

  • ENH: 允许用户在 get_attr 方法中设置默认值 (#6887)。

  • 将函数 join 重命名为 join_trees (#6908)。

  • API: 添加一个修饰符来弃用位置参数 (#6905)。

  • 取消 node_link 模块中 attrs kwarg 的弃用 (#6939)。

  • 对 sort_neighbors 弃用的小修改 (#6942)。

  • 从 scale_free_graph 中移除已弃用的 create_using kwarg (#6940)。

  • 将位置设为 geometric_edges 的 API 的一部分 (#6816)。

  • 取消弃用 literal_(de)stringizer (#6943)。

  • 将 incidence_matrix 的新 dtype 参数设为仅支持 kwarg (#6954)。

  • fast_label_propagation_communities 的 weight 和 seed 参数设为仅支持 kwarg (#6955)。

  • API: 从 cd_index 的 time_delta 参数中移除默认值 (#6953)。

  • 弃用 strongly_connected_components_recursive (#6957)。

  • 移除已弃用的 clique 辅助函数 (#6941)。

改进#

  • 更新 triangles 计算方法 (#6258)。

  • 添加 single_source_all_shortest_paths 和 all_pairs_all_shortest_paths 函数 (#5959)。

  • 为大多数算法添加 @nx._dispatch 修饰符 (#6688)。

  • 将 benchmarks 移至主仓库内部 (#6835)。

  • ENH – 将 :function:rescale_layout 中的 for 循环替换为 numpy 向量化方法 (#6879)。

  • 用于社区检测的快速标签传播算法 (#6843)。

  • 添加时间序列 Visibility Graph 生成器 (#6880)。

  • 随机树和森林 (#6758)。

  • 向默认 gml 解析器添加对 tuple 节点的支持 (#6950)。

  • 添加 Kemeny 常数 (#6929)。

  • 加速 resistance_distance 计算 (#6925)。

  • 允许图生成器和转换函数进行分发 (#6876)。

  • 添加 extendability problem (第二次尝试) (#4890)。

错误修复#

  • 修复 to_agraph() 的 DOT 格式问题 (#6474)。

  • is_semiconnected 中移除 topo_order kwarg,不进行弃用处理 (#6651)。

  • 稳定 approximation.connected_components 的测试 (#6715)。

  • 修复 minimum_cycle_basis 并更改为返回 cycle 而不是 set (#6788)。

  • 重新修复 minimum_cycle_basis 和 scipy.sparse 转换并添加测试 (#6789)。

  • number_of_walks 可能会使用带权边属性 (#6815)。

  • GML: 添加了对读取多行值的支持 (#6837)。

  • 避免 directed_laplacian_matrix 在某些情况下导致 nans (#6866)。

  • 添加关于零权重 cycle 的测试并修复 goldberg-radzik (#6892)。

  • 修改 s_metric normalized 默认值,以便函数不会引发错误 (#6841)。

  • 针对无效 prufer sequence from_prufer_sequence 的错误处理:issue #6420 (#6457)。

  • 修复:在没有节点属性的情况下,percolation centrality 的更好默认行为 (#6894)。

  • 修复:MultiDiGraphs 的 key 在带权最短路径计算中丢失 (#6963)。

  • 处理 Laplacian centrality 中的边界情况 (#6938)。

  • 添加一个在有向 louvain 算法的每一层忽略自环的公式 (#6630)。

  • 修复 k=2 时 ````is_k_edge_connected```` 的问题 (#7024)。

文档#

  • 修复 laplacian_centrality 和 laplacian_matrix 中的链接 (#6623)。

  • 将 Greedy Coloring 示例添加到范例集 (#6647)。

  • 向贡献者指南添加 linting (#6692)。

  • 对 equitable_coloring 文档字符串的小修改 (#6673)。

  • 移除调查横幅 (#6818)。

  • 修复:使消息可读 (#6860)。

  • 添加 dfs_predecessor 和 dfs_successor 的 source 输入文档 (#6867)。

  • 澄清 basis 仅生成简单 cycle (#6882)。

  • 恢复“澄清 basis 仅生成简单 cycle” (#6885)。

  • 更新 TSP 示例文档 (#6794)。

  • 维护:将 PR 模板指向 pre-commit (#6902)。

  • 修复文档构建错误/警告 (#6907)。

  • 文档:零散的反引号和双反引号而非简单反引号 (#6917)。

  • 文档:在 contraction 中添加自环多重有向图的示例 (#6901)。

  • 修复 sphinx 文档对已分发函数的渲染问题 (#6895)。

  • 添加了更多关于 graphical degree sequence 的示例 (#5634)。

  • 对 sort_neighbors 弃用的小修改 (#6942)。

  • betweenness.py 中关于浮点权重的警告注释 (#5171)。

  • 文档:杂项拼写错误 (#6959)。

  • 修复 effective_size 文档中的拼写错误 (#6967)。

  • 修复 tournament.py 中的示例 (#6964)。

  • 修复一个引用 (#6977)。

  • 在 snap_aggregation 文档字符串中添加缺失参数 (#6978)。

  • 更新开发者弃用待办事项列表 (#6985)。

  • 添加 “networkx.plugin_info” 入口点并更新文档字符串 (#6911)。

  • 文档化图类型;添加链接;移除未使用的导入 (#6992)。

  • 将 GraphBLAS 后端添加到在线文档 (#6998)。

  • 添加 3.2rc0 版本发布说明 (#6997)。

  • 更新 changelist 的发布流程 (#7005)。

  • 更新 changelist workflow 的贡献指南 (#7004)。

  • 修复 modularity 函数文档字符串中参数 \(m\) 的定义 (#6990)。

  • 更新了 SA_tsp 和 TA_tsp 的文档 (#7013)。

  • 更新 katz_centrality 缺失的默认 alpha 值 (#7015)。

维护#

  • 用 gh action 替换 codecov Python CLI (#6635)。

  • 将 pyupgrade 支持的最低 Python 版本提升至 3.9 (#6634)。

  • 维护:小的覆盖率清理 (#6674)。

  • 移除用于验证输入的不可达代码 (#6675)。

  • 暂时固定 sphinx<7 以修复文档 CI 失败 (#6680)。

  • 改进与 #5092 相关的测试粒度的示例 (#5094)。

  • 维护:提升 scipy 版本并利用惰性加载 (#6704)。

  • 根据 SPEC0,停止支持 Python 3.8 (#6733)。

  • 更新 pygraphviz (#6724)。

  • 根据 SPEC0 更新核心依赖项 (#6734)。

  • 在 Python 3.12-beta2 上进行测试 (#6737)。

  • 更新 OSMnx 示例 (#6775)。

  • 清理 numpy 弃用警告的小修改 (#6776)。

  • 添加 label-check 工作流程 (#6797)。

  • 使用 dependabot (#6799)。

  • 将 webfactory/ssh-agent 从 0.7.0 提升至 0.8.0 (#6800)。

  • 为已合并的 PR 关联 milestone (#6802)。

  • 在 convert_from_nx 中添加 preserve_all_attrs 参数以使其更简洁 (#6812)。

  • 将 scientific-python/attach-next-milestone-action 从 f94a5235518d4d34911c41e19d780b8e79d42238 提升至 bc07be829f693829263e57d5e8489f4e57d3d420 (#6830)。

  • 放宽 betweenness_centrality 测试中的阈值 (#6827)。

  • 为 {single_source,all_pairs}_all_shortest_paths 和 cd_index 添加 @nx._dispatch 修饰符 (#6832)。

  • CI: 为 nightly wheel 上传添加分发验证检查 (#6831)。

  • 维护:修复 nightly releases wheels 的链接 (#6845)。

  • 不对 numpy2 nightlies 进行测试 (#6852)。

  • 维护:替换 scipy namespace 中的 numpy 别名 (#6857)。

  • 取消固定 scipy 测试上限 (#6727)。

  • NEP 51 numpy scalar reprs + NX doctests 的临时解决方案 (#6856)。

  • 取消固定 numpy nightly wheels (#6854)。

  • 修复:使消息可读 (#6860)。

  • 恢复“暂时固定 sphinx<7 以修复文档 CI 失败 (#6680)” (#6859)。

  • _dispatch 更改为 class 而非 closure (#6840)。

  • 将 random_state 修饰符移至 @nx._dispatch 之前 (#6878)。

  • 维护:使 GEXF 和 graphml 写入器与 numpy 2.0 兼容 (#6900)。

  • 将函数 join 重命名为 join_trees (#6908)。

  • 将缺失的 join 弃用相关内容添加到 release_dev 和 conftest (#6933)。

  • 维护:将 dispatch test workflow 移至独立的 CI 作业 (#6934)。

  • 维护:使用 importlib.resources 替代 file dunder 来访问文件 (#6936)。

  • 文档,维护:文档说明去重 (#6937)。

  • 维护:当图节点少于 3 个时,random_triad 抛出清晰错误 (#6962)。

  • 更新 numpydoc (#6773)。

  • 维护:更新 pre-commit 工具依赖 (#6965)。

  • 维护:清理 triads 中被注释掉的代码 (#6961)。

  • 维护:使用 np 别名时 Scipy nightly 构建失败 (#6969)。

  • 将 actions/checkout 从 3 提升至 4 (#6970)。

  • 为测试新的 pydata-sphinx-theme PR 添加内容 (#6982)。

  • 维护:暂时禁用构建 delaunay geospatial 示例 (#6981)。

  • 恢复“维护:暂时禁用构建 delaunay geospatial 示例” (#6984)。

  • 改进:更改默认 join trees 6947 (#6948)。

  • 更新 sphinx 主题 (#6930)。

  • 从 pyproject.toml 生成 requirements 文件 (#6987)。

  • 使用可信发布者 (#6988)。

  • 倾向使用“backend”而非“plugin” (#6989)。

  • CI: 将 scientific-python/upload-nightly-action 固定到 0.2.0 (#6993)。

  • 支持 Python 3.12 (#7009)。

  • 对于文档构建,从 git 安装 nx-cugraph,而非 nightly wheels (#7011)。

  • 修复拼写错误 (#7012)。

其他#

  • 更新发布流程 (#6622)。

  • 将 Lowest Common Ancestor 示例添加到范例集 (#6542)。

  • 为 bipartite centrality.py 添加示例 (#6613)。

  • 从 CI 中移除 Python 3.8 (#6636)。

  • 修复 eigenvector.py 和 katz_centrality.py 中的链接 (#6640)。

  • 为 girvan_newman 示例使用正确的命名空间 (#6643)。

  • 在 bipartite_layout 中保留节点顺序 (#6644)。

  • 使 cycle_basis() 函数具有确定性 (#6654)。

  • 为 clique.py 添加了文档字符串示例 (#6576)。

  • 修复空图的 is_chordal 输出 (#6563)。

  • 允许 @nx._dispatch 支持多个图 (#6628)。

  • 在贡献者列表中,在 Dheeraj 名字旁边添加 GitHub 链接 (#6670)。

  • 将 is_tounament 添加到主命名空间 (#6498)。

  • 在 dict 上使用 unpacking operator 以避免构建中间对象 (#6040)。

  • 为 test_correlation.py 添加了测试 (#6590)。

  • 提高 neighbor_degree.py 的测试覆盖率 (#6589)。

  • 为 nx_pylab.py 添加了文档字符串示例 (#6616)。

  • 提高 current_flow_closeness.py 的测试覆盖率 (#6677)。

  • 尝试添加 circleci artifact secret (#6679)。

  • 提高 reaching.py 的测试覆盖率 (#6678)。

  • 为 euler.py 添加了测试 (#6608)。

  • codespell: 修复了 pre-commit、config 和拼写错误 (#6662)。

  • 提高 mst.py 的测试覆盖率 (#6540)。

  • 在测试 dispatch 时,将权重视为 distance= (#6671)。

  • 移除调查横幅 (#6687)。

  • CircleCI: 为 image redirector 添加 token (#6695)。

  • 维护:通过 graphviews 直接将 subgraph_view 和 reverse_view 添加到 nx 命名空间 (#6689)。

  • 为 dense.py 添加了文档字符串示例 (#6669)。

  • 维护:添加一个 github action cron 作业来上传 nightly wheels (#6701)。

  • 维护:修复 nightly build workflow 中的文件路径 (#6702)。

  • 添加最短路径的示例脚本 (#6534)。

  • 为 generic_graph_view 添加了文档字符串 (#6697)。

  • 文档:错误的下划线长度 (#6708)。

  • 维护:每周运行 cron 作业以测试 nightly deps (#6705)。

  • 简化 dfs 中的 stack (#6366)。

  • 优化 generic_bfs_edges 函数 (#6359)。

  • 优化 _plain_bfs 函数 (#6340)。

  • 添加了 girth 计算函数 (#6633)。

  • 维护:阻止 CI 在 fork 上上传 nightly (#6717)。

  • 提升 astar_path 函数的性能 (#6723)。

  • 由于已知问题,跳过 scipy-1.11.0rc1 测试 (#6726)。

  • 为 incidence_matrix 函数添加可选参数以提供... (#6725)。

  • 由 jfinkels & dtekinoglu 实现的 Graph walks (#5908)。

  • 文档:将 walks 添加到 algorithms.index (#6736)。

  • 在贡献者指南中,添加关于在文档字符串中使用 latex 格式的说明 (#6535)。

  • 修复 intersection_all 方法 (#6744)。

  • 修复 Johnson 方法在无权图上的问题 (#6760)。

  • 维护:在 requirements 中忽略 SciPy v1.11 (#6769)。

  • 替换已弃用的 numpy.alltrue 方法 (#6768)。

  • 排除 scipy 1.11.1 (#6772)。

  • 文档化构建文档所需的额外导入项 (#6766)。

  • 修改 max_weight_matching 为非递归实现 (#6684)。

  • 重写 NXEP 3 (#6648)。

  • 重构 edmonds 算法 (#6743)。

  • nx_pylab.py 的文档字符串改进 (#6602)。

  • 使用 pyproject.toml (#6774)。

  • 包含缺失的 package_data (#6780)。

  • [BUG] 修复 is_minimal_d_separator 的文档和功能 (#6427)。

  • 更新 eigenvector centrality 的文档 (#6009)。

  • 修复 contributing 页面中的拼写错误 (#6784)。

  • 修复 louvain 算法在空图上的零除错误 (#6791)。

  • 网络文本的垂直链 (#6759)。

  • 时变模块 (#6682)。

  • 允许用户在 from_numpy_array 函数中选择不包含边属性 (#6259)。

  • 修改 ````bfs_edges```` 并为 ````generic_bfs_edges```` 添加警告 (#5925)。

  • 拼写 (#6752)。

  • 为 join operation 添加了测试用例,并修复 join operation 以处理 label_attributes (#6503)。

  • 移除 adjacency_graph 上的序列化痕迹 (#6041)。

  • 修复 view 签名 (#6267)。

  • 文档:添加非图形示例 6944 (#6946)。

  • 特性:algorithms/operators/all.py 的文档字符串示例 (#6974)。

贡献者#

此版本增加了 70 位作者 (按字母顺序排列)

此版本增加了 41 位审阅者 (按字母顺序排列)

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