Releases: networkx/networkx
NetworkX 3.6.1
networkx 3.6.1
We're happy to announce the release of networkx 3.6.1!
API Changes
- Add spectral bipartition community finding and greedy bipartition using node swaps (#8347).
Enhancements
- Nodelists for
from_biadjacency_matrix(#7993). - Add spectral bipartition community finding and greedy bipartition using node swaps (#8347).
- Fix draw_networkx_nodes with list node_shape and add regression test (#8363).
Bug Fixes
- Fix: allow graph subclasses to have additional arguments (#8369).
Documentation
- DOC: Improve benchmarking readme (#8358).
- DOC: More details re: RC releases in the release process devdocs (#8346).
- DOC: clarify difference between G.nodes/G.nodes() and G.edges/G.edges() in tutorial (#8300).
- DOC: Add blurb to contributor guide about drawing tests (#8370).
- DOC: Fix underline lens in docstrings (#8371).
- Rolling back shortest paths links (#8373).
Maintenance
- MAINT: Replace string literal with comment (#8359).
- Bump actions/checkout from 5 to 6 in the actions group (#8360).
- pin python 3.14 to be version 3.14.0 until dataclasses are fixed (#8365).
- Blocklist Python 3.14.1 (#8372).
Other
- TST: add tests for unsupported graph types in MST algorithms (#8353).
- TST: clean up isomorphism tests (#8364).
Contributors
10 authors added to this release (alphabetically):
- @Aka2210
- @jfinkels
- @NaorTIRAM
- Aditi Juneja (@Schefflera-Arboricola)
- Alejandro Candioti (@amcandio)
- Colman Bouton (@LorentzFactor)
- Dan Schult (@dschult)
- Erik Welch (@eriknw)
- Mridul Seth (@MridulS)
- Ross Barnowski (@rossbar)
9 reviewers added to this release (alphabetically):
- @Aka2210
- Aditi Juneja (@Schefflera-Arboricola)
- Alejandro Candioti (@amcandio)
- Colman Bouton (@LorentzFactor)
- Dan Schult (@dschult)
- Erik Welch (@eriknw)
- Gilles Peiffer (@Peiffap)
- Mridul Seth (@MridulS)
- Ross Barnowski (@rossbar)
These lists are automatically generated, and may not be complete or may contain
duplicates.
NetworkX 3.6
networkx 3.6
We're happy to announce the release of networkx 3.6!
New Features
- ENH: add normalize option for
subgraph_centralityand its_expversion (#8340).
API Changes
- Replace
random_lobsterwithrandom_lobster_graph(#8067). - Replace
maybe_regular_expanderwithmaybe_regular_expander_graph(#8050). - Rm networkx.algorithms.threshold.swap_d (#8213).
- Expire deprecation of compute_v_structures (#8281).
- Rm unused dissuade_hubs kwarg from forceatlas2 (#8293).
- Expire deprecation of link kwarg in node_link fns (#8282).
- DEP: Deprecate metric_closure (#8304).
Enhancements
- Improve error message for removed
random_treefunction (#8105). - Update approx current_flow betweenness to use k directly (#8007).
- Proposal: update semantics for nonisomorphic trees with order 0 or 1 (#8083).
- SCC benchmarks and use of
G._adjin Tarjan algorithm (#8064). - Performance improvement and tests for
edges_equal(#8077). - optimise
is_reachable()(#8112). - Optimise harmonic centrality (#8158).
- feat(drawing): add missing connection styles in
draw_networkx_edge_labelsanddisplay(#8108). - Optimizing Dijkstra's paths to target (~50x faster for graphs with multiple-hops shortest path) (#8023).
- Add
all_trianglesgenerator yielding all unique triangles in a graph (#8135). - refactor: simplify
k_factor(#8139). - feat: add directed star graph (#8151).
- Faster
intersection_arraycomputation for checking distance-regularity (#7181). - enh: short-circuit in
is_regularfor directed graphs (#8138). - Avoid re-exploring nodes in Kosaraju's SCC algorithm (#8056).
- trust rank implementation and testing (#8165).
- Add hyper_wiener_index function (#8184).
- Bidirectional dijkstra optimization: from 1.1x to 25x faster (#8206).
- Implement the algorithm to find the centroid(s) of a tree (#8089).
- Set length threshold in FR and use np.clip (#8145).
- Add panther++ (#4400).
- maint: use
nx.circulant_graphto generate Harary graphs (#8189). - ENH: add
directedkwarg toedges_equal(#8192). - Optimizing Dijkstra's path construction for all targets case (#8218).
- ENH: adds ISMAGS support for directed and multigraph with tests and refactor (#8274).
- Dispatch classes such as
nx.Graph(backend=...)(#7760). - ENH: Add is_perfect_graph using SPGT (follow-up to #8111) (#8318).
- Add benchmark suite for shortest path algorithms on weighted graphs (#8059).
- Adding Generalized Petersen Graph (#8147).
- ENH: add normalize option for
subgraph_centralityand its_expversion (#8340). - FEAT: Add a describe method for some basic info about graphs (#8338).
Bug Fixes
- Add Python 3.14 to testing matrix (#8096).
- Fix round-trip to and from pygraphviz.AGraph setting spurious graph attributes (#8121).
- Add input validation to
non_randomness()and clarify its behavior (#8057). - Ensure that backend names are valid Python identifiers (#8160).
- fix: resolve failure to pickle.loads(pickle.dumps(PlanarEmbedding())) (#8186).
- Add GEXF 1.3 to the recognized GEXF versions (#8196).
- BUG: Raise on directed graphs in
nx.find_cliques_recursive(#8211). - fix
optimize_edit_pathshandling of self-loops (#8207). - BUG: add check for isolated nodes in
degree_sequence_tree(#8235). - Mehlorn Steiner Tree (#8052).
- BUG/MAINT: fix edge betweenness centrality scaling when
k<Nand merge all b.c. rescale helper functions (#8256). - Fix node attributes on lattice graphs (#8311).
- BUG: allow graphs with nonstandard node labels in FISTA (#8332).
- Make dominance functions consistent with definitions (#8061).
- Pin last value to 1.0 in
cumulative_distributionto address floating-point errors (#8342).
Documentation
- Fix
min_weight_matching(#8062). - Update deploy-docs yml to use Python 3.12 when deploying the docs (#8102).
- DOC: Add missing params to bfs_layout docstring (#8086).
- Add input validation to
non_randomness()and clarify its behavior (#8057). - doc: improve docstring for hypercube_graph (#8012).
- Improved documentation for boundary_expansion function (#7905).
- DOC: Add docstring example count number of unique triangles (#8144).
- Add function bfs_labeled_edges to docs (#8149).
- Fix issues with urls in HITS reference docs (#8156).
- Correct the docs for
display()keywordnode_pos(#8153). - Adding Notes on Multi-Target Shortest Path Queries (#8169).
- 3d facebook plot example (#6893).
- trust rank implementation and testing (#8165).
- Improve docs for
all_neighbors()(#8166). - Adding shortest-paths documentation (#8187).
- Add Linux Foundation health score badge to README (#8219).
- DOC: Add docstring for
number_of_cliques(#8216). - DOC: add docstring for
degree_sequence_tree(#8236). - DOC: Add examples to contracted_nodes (#7856).
- DOC: fix wrong reference in
leidendocs (#8277). - Fix over-indentation of list in chordless_cycles docstring (#8288).
- Add iplotx to network drawing documentation (#8289).
- Fix sphinx build errors (#8303).
- DOC: Move deprecation procedure from contributing->dev guide (#8308).
- DOC: add gallery example for metric_closure (#8306).
- Cross-link Platonic graphs in See Also section (#8307).
- Add seealso crosslinks between lattice graphs (#8310).
- CI,DOC: Only run one parallel betweenness example (#8305).
- DOC: rework betweenness centrality docstrings (#8264).
- Rm 3D layout and animation from greedy_color example (#8315).
- DOC: Clarify node and edge removal behavior in tutorial (#8321).
- Improving connected module docs (#8267).
- Docs: add nx-neptune backend documentation ([#8258](https://git...
NetworkX 3.6rc0
networkx 3.6rc0
We're happy to announce the release of networkx 3.6rc0!
API Changes
- Replace
random_lobsterwithrandom_lobster_graph(#8067). - Replace
maybe_regular_expanderwithmaybe_regular_expander_graph(#8050). - Rm networkx.algorithms.threshold.swap_d (#8213).
- Expire deprecation of compute_v_structures (#8281).
- Rm unused dissuade_hubs kwarg from forceatlas2 (#8293).
- Expire deprecation of link kwarg in node_link fns (#8282).
- DEP: Deprecate metric_closure (#8304).
Enhancements
- Improve error message for removed
random_treefunction (#8105). - Update approx current_flow betweenness to use k directly (#8007).
- Proposal: update semantics for nonisomorphic trees with order 0 or 1 (#8083).
- SCC benchmarks and use of
G._adjin Tarjan algorithm (#8064). - Performance improvement and tests for
edges_equal(#8077). - optimise
is_reachable()(#8112). - Optimise harmonic centrality (#8158).
- feat(drawing): add missing connection styles in
draw_networkx_edge_labelsanddisplay(#8108). - Optimizing Dijkstra's paths to target (~50x faster for graphs with multiple-hops shortest path) (#8023).
- Add
all_trianglesgenerator yielding all unique triangles in a graph (#8135). - refactor: simplify
k_factor(#8139). - feat: add directed star graph (#8151).
- Faster
intersection_arraycomputation for checking distance-regularity (#7181). - enh: short-circuit in
is_regularfor directed graphs (#8138). - Avoid re-exploring nodes in Kosaraju's SCC algorithm (#8056).
- trust rank implementation and testing (#8165).
- Add hyper_wiener_index function (#8184).
- Bidirectional dijkstra optimization: from 1.1x to 25x faster (#8206).
- Implement the algorithm to find the centroid(s) of a tree (#8089).
- Set length threshold in FR and use np.clip (#8145).
- Add panther++ (#4400).
- maint: use
nx.circulant_graphto generate Harary graphs (#8189). - ENH: add
directedkwarg toedges_equal(#8192). - Optimizing Dijkstra's path construction for all targets case (#8218).
- ENH: adds ISMAGS support for directed and multigraph with tests and refactor (#8274).
- Dispatch classes such as
nx.Graph(backend=...)(#7760). - ENH: Add is_perfect_graph using SPGT (follow-up to #8111) (#8318).
- Add benchmark suite for shortest path algorithms on weighted graphs (#8059).
Bug Fixes
- Add Python 3.14 to testing matrix (#8096).
- Fix round-trip to and from pygraphviz.AGraph setting spurious graph attributes (#8121).
- Add input validation to
non_randomness()and clarify its behavior (#8057). - Ensure that backend names are valid Python identifiers (#8160).
- fix: resolve failure to pickle.loads(pickle.dumps(PlanarEmbedding())) (#8186).
- Add GEXF 1.3 to the recognized GEXF versions (#8196).
- BUG: Raise on directed graphs in
nx.find_cliques_recursive(#8211). - fix
optimize_edit_pathshandling of self-loops (#8207). - BUG: add check for isolated nodes in
degree_sequence_tree(#8235). - Mehlorn Steiner Tree (#8052).
- BUG/MAINT: fix edge betweenness centrality scaling when
k<Nand merge all b.c. rescale helper functions (#8256). - Fix node attributes on lattice graphs (#8311).
- BUG: allow graphs with nonstandard node labels in FISTA (#8332).
- Make dominance functions consistent with definitions (#8061).
Documentation
- Fix
min_weight_matching(#8062). - Update deploy-docs yml to use Python 3.12 when deploying the docs (#8102).
- DOC: Add missing params to bfs_layout docstring (#8086).
- Add input validation to
non_randomness()and clarify its behavior (#8057). - doc: improve docstring for hypercube_graph (#8012).
- Improved documentation for boundary_expansion function (#7905).
- DOC: Add docstring example count number of unique triangles (#8144).
- Add function bfs_labeled_edges to docs (#8149).
- Fix issues with urls in HITS reference docs (#8156).
- Correct the docs for
display()keywordnode_pos(#8153). - Adding Notes on Multi-Target Shortest Path Queries (#8169).
- 3d facebook plot example (#6893).
- trust rank implementation and testing (#8165).
- Improve docs for
all_neighbors()(#8166). - Adding shortest-paths documentation (#8187).
- Add Linux Foundation health score badge to README (#8219).
- DOC: Add docstring for
number_of_cliques(#8216). - DOC: add docstring for
degree_sequence_tree(#8236). - DOC: Add examples to contracted_nodes (#7856).
- DOC: fix wrong reference in
leidendocs (#8277). - Fix over-indentation of list in chordless_cycles docstring (#8288).
- Add iplotx to network drawing documentation (#8289).
- Fix sphinx build errors (#8303).
- DOC: Move deprecation procedure from contributing->dev guide (#8308).
- DOC: add gallery example for metric_closure (#8306).
- Cross-link Platonic graphs in See Also section (#8307).
- Add seealso crosslinks between lattice graphs (#8310).
- CI,DOC: Only run one parallel betweenness example (#8305).
- DOC: rework betweenness centrality docstrings (#8264).
- Rm 3D layout and animation from greedy_color example (#8315).
- DOC: Clarify node and edge removal behavior in tutorial (#8321).
- Improving connected module docs (#8267).
- Docs: add nx-neptune backend documentation (#8258).
- Improving shortest paths docs when there is no path between source and target (#8327).
- Adding floating point considerations to tutorial (#8324).
- Adding Dijkstra's algo specific doc (#8286).
- Minor documentation build improvements (#8329).
- Clarify the meaning of the cutoff parameter in some path-finding functions (#7487).
- Switch to the NumFOCUS Co...
NetworkX 3.5
networkx 3.5
We're happy to announce the release of networkx 3.5!
API Changes
- Save Layouts on Graphs (#7571).
- Expire d_separated and minimum_d_separator functions (#7830).
- Expire all_triplets deprecation (#7828).
- Expire random_triad deprecation (#7829).
- DEP: Raise an exception for k_core functions with multigraphs (#7831).
- Deprecate graph_could_be_isomorphic (#7826).
- Expire total_spanning_tree_weight deprecation (#7843).
- Expire deprecation of create kwarg in nonisomorphic_trees (#7847).
- New draw API (#7589).
Enhancements
- perf: optimise
random_k_out_graph(#7702). - Clausets local community detection algorithm (#7691).
find_asteroidal_tripleimprovement (#7736).- Add
weightto harmonic_diameter (#7636). - Densest Subgraph Problem: Greedy Peeling and Greedy++ Implementations (#7731).
- single_source_all_shortest_paths: don't loop over all nodes (#7762).
- Error message improvement for nbunch_iter ( NetworkXError raised with specific message on TypeError with "iter" in msg ) (#7790).
- Faster computation of energy in Laplacian centrality (#7793).
- Make
forceatlas2_layoutdispatchable (#7794). - Update dispatchable for
forceatlas2_layout(#7798). - Enable backend-only functions where NetworkX is just an API (#7690).
- Steinertree kou enhancement in response to issue 5889 type:Enhancements (#7767).
- Add Leiden as a backend-only algorithm (#7743).
- Bipartite layout nodes optional (#7756).
- Densest Subgraph Problem: FISTA based algorithm + Large scale tests (#7770).
- Dispatch
get_node_attributesand a few more fromnx.classes.function(#7824). - Faster
could_be_isomorphicandnumber_of_cliques(#7855). - Add square_clustering to algorithm benchmarks (#7857).
- Faster Implementation of Structural Holes (#7249).
- Improve runtime of number_of_nonisomorphic_trees() (#7917).
- Fix write_gexf timeformat for dynamic Graphs (#7914).
- Consolidate could_be_isomorphic (#7852).
- Improving rooted_tree_isomorphism for deep trees (#7945).
- Fixing nx.diameter inconsistent results with usebounds=True (#7954).
- Faster
square_clustering(#7810). - Avoid repeated cache conversion failures for backends (#7768).
- Improve _sparse_fruchterman_reingold with L-BFGS (#7889).
- Improve Performance of Tree Isomorphism and Center Calculation (#7946).
- Add option for
biadjacency_matrixto be returned as a dense NumPy array (#7973). - Add Functions for Finding Connected Dominating Sets (#7774).
- Add feature to make storing node contraction data optional (#7902).
- Added "initial_node" param to generate_random_paths() to allow a starting node to be specified for generated walks (#8002).
- Fix behavior for iterable
sourcesargument inbfs_layers(#8013). - Speed up
connected_componentsandweakly_connected_components(#7971). - BiRank Algorithm Implementation (#7978).
- Enforce correct graph types for graph matchers (#8043).
Bug Fixes
- Update
_raise_on_directedto work withcreate_usingpos arg (#7695). - trophic_levels now checks for paths from each node to a basal node (#7453).
- Fix TSP weight parameter issues (#7721).
- Fix for filtered MultiGraph views from
edge_subgraph(#7724) (#7729). - BUG: fixed the
ifcondition inasadpour_atsp(#7753). - Implement Bar ConnectionStyle for labels (#7739).
- Fixed a divide by zero error in forceatlas2 (#7791).
- Fix for issue #7645: Do not preserve 'cw' and 'ccw' attributes in PlanarEmbedding.to_undirected() (#7750).
- fix typo in ramanujan branch (#7804).
- Fix
with nx.config(backend_priority=backends):(#7814). - Fix handling of faux_infinite values in network_simplex (#7796).
- Fixed the return type from an empty dict to an empty set (#7910).
- Add
edge_attrs="weight"toforceatlas2_layoutdispatch decorator (#7918). - Fix graph_hash iteration counts and DiGraph handling (#7834).
- Refactored the working of chordless_cycles to handle self loops (#7901).
- Fix bc scale with k endpoints (#7908).
- Fix BC scaling for source nodes with k and endpoints=False (#7949).
- BUG: graph6 format invariant to trailing newline (#7941).
- Fix
random_degree_sequence_graphwhen input is an iterator (#7979). - Improve special cases in dispatch testing (paying off tech debt) (#7982).
- Fix bug when assigning list to
nx.config.backend_priority(#8034). - A minimal fix for
is_aperiodic(#8029). - fix bug of _sparse_fruchterman_reingold and remove try/except idiom (#8041).
- Fix edge case in ISMAGS symmetry detection (#8055).
Documentation
- set nx-arangodb link to github (#7694).
- Re-submission of gh-7087 with better file provenance (#7681).
- Fix code formatting of some examples (#7730).
- Add examples for custom graph in the doc of
soft_random_geometric_graphandthresholded_random_geometric_graph(#7749). - Gallery example: bipartite a/b-core motif (#7757).
- Add blurb about pytest-mpl dependency to contributing guide (#7741).
- Minor updates to
single_source_shortest_path_lengthdocstring (#7637). - Added a note to the contributor guideline to avoid numpy scalars as a… (#7773).
- Correcting the example given under subgraph_is_monomorphic.py (#7779).
- [easy] Add to Contributor List (#7801).
- doc: mention the second major update (#7782).
- DOC: Add details about more grants (#7823).
- Refactor: Moving backend docs from
backends.pytobackends.rst(#7776). - Update readwrite docstrings for the
pathparameter (#7835). - Fix docstring example of
nx.generate_random_paths(index_map=...)(#7832). - Adds NVIDIA Corporation to list of supporters (#7846).
- Fix use of triple backticks in docstrings ([#7845](https://github.com/networkx/net...
NetworkX 3.5rc0
networkx 3.5rc0
We're happy to announce the release of networkx 3.5rc0!
API Changes
- Save Layouts on Graphs (#7571).
- Expire d_separated and minimum_d_separator functions (#7830).
- Expire all_triplets deprecation (#7828).
- Expire random_triad deprecation (#7829).
- DEP: Raise an exception for k_core functions with multigraphs (#7831).
- Deprecate graph_could_be_isomorphic (#7826).
- Expire total_spanning_tree_weight deprecation (#7843).
- Expire deprecation of create kwarg in nonisomorphic_trees (#7847).
- New draw API (#7589).
Enhancements
- perf: optimise
random_k_out_graph(#7702). - Clausets local community detection algorithm (#7691).
find_asteroidal_tripleimprovement (#7736).- Add
weightto harmonic_diameter (#7636). - Densest Subgraph Problem: Greedy Peeling and Greedy++ Implementations (#7731).
- single_source_all_shortest_paths: don't loop over all nodes (#7762).
- Error message improvement for nbunch_iter ( NetworkXError raised with specific message on TypeError with "iter" in msg ) (#7790).
- Faster computation of energy in Laplacian centrality (#7793).
- Make
forceatlas2_layoutdispatchable (#7794). - Update dispatchable for
forceatlas2_layout(#7798). - Enable backend-only functions where NetworkX is just an API (#7690).
- Steinertree kou enhancement in response to issue 5889 type:Enhancements (#7767).
- Add Leiden as a backend-only algorithm (#7743).
- Bipartite layout nodes optional (#7756).
- Densest Subgraph Problem: FISTA based algorithm + Large scale tests (#7770).
- Dispatch
get_node_attributesand a few more fromnx.classes.function(#7824). - Faster
could_be_isomorphicandnumber_of_cliques(#7855). - Add square_clustering to algorithm benchmarks (#7857).
- Faster Implementation of Structural Holes (#7249).
- Improve runtime of number_of_nonisomorphic_trees() (#7917).
- Fix write_gexf timeformat for dynamic Graphs (#7914).
- Consolidate could_be_isomorphic (#7852).
- Improving rooted_tree_isomorphism for deep trees (#7945).
- Fixing nx.diameter inconsistent results with usebounds=True (#7954).
- Faster
square_clustering(#7810). - Avoid repeated cache conversion failures for backends (#7768).
- Improve _sparse_fruchterman_reingold with L-BFGS (#7889).
- Improve Performance of Tree Isomorphism and Center Calculation (#7946).
- Add option for
biadjacency_matrixto be returned as a dense NumPy array (#7973). - Add Functions for Finding Connected Dominating Sets (#7774).
- Add feature to make storing node contraction data optional (#7902).
- Added "initial_node" param to generate_random_paths() to allow a starting node to be specified for generated walks (#8002).
- Fix behavior for iterable
sourcesargument inbfs_layers(#8013). - Speed up
connected_componentsandweakly_connected_components(#7971).
Bug Fixes
- Update
_raise_on_directedto work withcreate_usingpos arg (#7695). - trophic_levels now checks for paths from each node to a basal node (#7453).
- Fix TSP weight parameter issues (#7721).
- Fix for filtered MultiGraph views from
edge_subgraph(#7724) (#7729). - BUG: fixed the
ifcondition inasadpour_atsp(#7753). - Implement Bar ConnectionStyle for labels (#7739).
- Fixed a divide by zero error in forceatlas2 (#7791).
- Fix for issue #7645: Do not preserve 'cw' and 'ccw' attributes in PlanarEmbedding.to_undirected() (#7750).
- fix typo in ramanujan branch (#7804).
- Fix
with nx.config(backend_priority=backends):(#7814). - Fix handling of faux_infinite values in network_simplex (#7796).
- Fixed the return type from an empty dict to an empty set (#7910).
- Add
edge_attrs="weight"toforceatlas2_layoutdispatch decorator (#7918). - Fix graph_hash iteration counts and DiGraph handling (#7834).
- Refactored the working of chordless_cycles to handle self loops (#7901).
- Fix bc scale with k endpoints (#7908).
- Fix BC scaling for source nodes with k and endpoints=False (#7949).
- BUG: graph6 format invariant to trailing newline (#7941).
- Fix
random_degree_sequence_graphwhen input is an iterator (#7979). - Improve special cases in dispatch testing (paying off tech debt) (#7982).
Documentation
- set nx-arangodb link to github (#7694).
- Re-submission of gh-7087 with better file provenance (#7681).
- Fix code formatting of some examples (#7730).
- Add examples for custom graph in the doc of
soft_random_geometric_graphandthresholded_random_geometric_graph(#7749). - Gallery example: bipartite a/b-core motif (#7757).
- Add blurb about pytest-mpl dependency to contributing guide (#7741).
- Minor updates to
single_source_shortest_path_lengthdocstring (#7637). - Added a note to the contributor guideline to avoid numpy scalars as a… (#7773).
- Correcting the example given under subgraph_is_monomorphic.py (#7779).
- [easy] Add to Contributor List (#7801).
- doc: mention the second major update (#7782).
- DOC: Add details about more grants (#7823).
- Refactor: Moving backend docs from
backends.pytobackends.rst(#7776). - Update readwrite docstrings for the
pathparameter (#7835). - Fix docstring example of
nx.generate_random_paths(index_map=...)(#7832). - Adds NVIDIA Corporation to list of supporters (#7846).
- Fix use of triple backticks in docstrings (#7845).
- Add paragraph about university classes to mentored projects (#7838).
- Fix pygraphviz_layout example (#7849).
- Add test-extras to optional dependencies (#7854).
- doc: hash size are in bytes (#7866).
- DOC: Clean up mentored projects page: move visualization project to completed section (#7881).
- added 2 projects for GSoC 2025 ([#7880](https://github.com/networkx/netw...
NetworkX 3.4.2
NetworkX 3.4.2
We're happy to announce the release of networkx 3.4.2!
Bug Fixes
Documentation
- Add disclaimer about LLM driven PRs (#7683).
Maintenance
- Fix doc warnings from recently added docs (#7682).
Contributors
6 authors added to this release (alphabetically):
- Dan Schult (@dschult)
- Erik Welch (@eriknw)
- Jarrod Millman (@jarrodmillman)
- Kirk Bonney (@kbonney)
- Mridul Seth (@MridulS)
- Ross Barnowski (@rossbar)
4 reviewers added to this release (alphabetically):
- Aditi Juneja (@Schefflera-Arboricola)
- Dan Schult (@dschult)
- Jarrod Millman (@jarrodmillman)
- Matt Schwennesen (@mjschwenne)
These lists are automatically generated, and may not be complete or may contain duplicates.
NetworkX 3.4.1
networkx 3.4.1
We're happy to announce the release of networkx 3.4.1!
Maintenance
- Remove old deprecation decorator (#7669).
- MAINT: delay loading of backend_info to after imports (#7672).
Contributors
2 authors added to this release (alphabetically):
- Dan Schult (@dschult)
- Jarrod Millman (@jarrodmillman)
3 reviewers added to this release (alphabetically):
- Jarrod Millman (@jarrodmillman)
- Mridul Seth (@MridulS)
- Ross Barnowski (@rossbar)
These lists are automatically generated, and may not be complete or may contain duplicates.
NetworkX 3.4
networkx 3.4
We're happy to announce the release of networkx 3.4!
API Changes
- Expires the
forest_strdeprecation (#7414). - [ENH, BUG]: added
collidersandv_structuresand deprecatedcompute_v_structuresindag.py(#7398). - Expires the
random_treedeprecation (#7415). - Expire deprecation for strongly_connected_components_recursive (#7420).
- Expire deprecated
sort_neighborsparam ingeneric_bfs_edges(#7417). - Rm deprecated normalized param from s_metric (#7418).
- Expire deprecated nx.join in favor of join_trees (#7419).
- Remove depercated Edmonds class for 3.4 (#7447).
- Remove deprecated MultiDiGraph_EdgeKey for 3.4 (#7448).
- Add
edgeskeyword/deprecatelinkkeyword arguments inJSONinput-output (#7565). - Revert breaking change to
node_link_*link defaults (#7652).
Enhancements
- Add a
nodelistfeature tofrom_numpy_array(#7412). - Prioritize edgelist representations in
to_networkx_graph(#7424). - Adds initial debug logging calls to _dispatchable (#7300).
- add: nodes attribute is modifiable (#7532).
- Enable config to be used as context manager (#7363).
- Added code to handle multi-graph in mst (#7454).
- Enable caching by default (#7498).
- #7546 More detail error message for pydot (#7558).
- Fix weakly_connected_components() performance on graph view (#7586).
- Forceatlas2 (#7543).
- avoid iteration and use boolean indexing (#7591).
- Hide edges with a weight of None in simple_paths (#7583).
- Improved running time for harmonic centrality (#7595).
- Add remove attribute functions (#7569).
- Log "can/should run" and caching in dispatch machinery (#7568).
- Individualize drawing attributes (#7570).
- added nx-parallel gsoc project (#7620).
- Harmonic diameter (#5251).
- Allow dispatch machinery to fall back to networkx (#7585).
- Add
create_usingparameter for random graphs (#5672). - Add config option to disable warning when using cached value (#7497).
Bug Fixes
- Fix graph name attribute for
complete_bipartite_graph(#7399). - Remove import warnings during to_networkx_graph conversion (#7426).
- Fix nx.from_pandas_edgelist so edge keys are not added as edge attributes and edge keys (#7445).
- Fix
from_pandas_edgelistfor MultiGraph given edge_key (#7466). - Fix dispatch tests when using numpy 2 (#7506).
- [ENH, BUG]: added
collidersandv_structuresand deprecatedcompute_v_structuresindag.py(#7398). - Fix reading edgelist when delimiter is whitespace, e.g. tab (#7465).
- Ensure we always raise for unknown backend in
backend=(#7494). - Prevent
to_agraphfrom modifying graph argument (#7610). - Implementing iterative removal of non_terminal_leaves in Steiner Tree approximation (#7422).
- Only allow connected graphs in
eigenvector_centrality_numpy(#7549). - CI: Fix typo in nightly run pip install (#7625).
Documentation
- Document missing shortest_path functions (#7394).
- Optimal Edit Paths Return Section Improved (#7375).
- Minor updates to simple_cycles docstring (#7421).
- DOC: Clarifying
NetworkXPointlessConceptexception (#7434). - DOC: updated
pairs.py(#7416). - Add docstring example for directed tree (#7449).
- Change docs of
shortest_path_lengthso return is number instead of int (#7477). - Use intersphinx_registry to manage intersphinx mapping (#7481).
- Ma: fix some spelling errors in docs (#7480).
- Update NetworkX reference links in doc index (#7500).
- strong product docs update (#7511).
- Refactoring and enhancing user-facing
Backend and Configsdocs (#7404). - Fixed the citation in
dominance.py[Issue #7522] (#7524). - Clarify generation number in
dorogovtsev_goltsev_mendes_graph()(#7473). - Add
Introspectionsection to backends docs (#7556). - DOC: Added
default_configinget_info's description (#7567). - Prettify
README.rst(#7514). - DOC: Fix typo in the code snippet provided in the docstring of nx_pydot.pydot_layout() (#7572).
- Fix installation instructions for
defaultextras in README (#7574). - Add missing metadata to v3.3 release notes (#7592).
- Correct the members of steering council (#7604).
- Fix dispatch docs formatting (#7619).
- Add to Contributor List (#7621).
- Example fix for issue 7633 (#7634).
- Fix: Correct community color assignment in Girvan-Newman community detection (#7644).
- Updated docstring for generators/karate_club_graph() (#7626).
- Updates documentation to include details about using NetworkX with backends (#7611).
- Add examples section to
to_scipy_sparse_array(#7627). - Add examples to docstrings of subgraph_(iso/monomorphism) methods (#7622).
Maintenance
- Simplify flow func augmentation logic in
connectivitymodule (#7367). - A few more doctest skips for mpl/np dependencies (#7403).
- Remove repetitive words (#7406).
- FilterAdjacency: len is recalculated unnecessarily #7377 (#7378).
- Add check for empty graphs in
flow_hierarchy(#7393). - Use nodelist feature of from_numpy_array (#7425).
- Cleanup remaining usages of deprecated
random_treein package (#7411). - Add check for empty graphs in
non_randomness(#7395). - Update tests for macOS Sonoma v14 (#7437).
- Update doc requirements (#7435).
- Update pygraphviz (#7441).
- Always cache graph attrs for better cache behavior (#7455).
- retain adjacency order in nx-loopback copy of networkx graph (#7432).
- DEV: Add files generated by benchmarking to .gitignore (#7461).
- Remove redundant graph copy in
algorithms.bridges.bridges()(#7471). - CI: Add G...
NetworkX 3.4rc0
networkx 3.4rc0
We're happy to announce the release of networkx 3.4rc0!
API Changes
- Expires the
forest_strdeprecation (#7414). - [ENH, BUG]: added
collidersandv_structuresand deprecatedcompute_v_structuresindag.py(#7398). - Expires the
random_treedeprecation (#7415). - Expire deprecation for strongly_connected_components_recursive (#7420).
- Expire deprecated
sort_neighborsparam ingeneric_bfs_edges(#7417). - Rm deprecated normalized param from s_metric (#7418).
- Expire deprecated nx.join in favor of join_trees (#7419).
- Remove depercated Edmonds class for 3.4 (#7447).
- Remove deprecated MultiDiGraph_EdgeKey for 3.4 (#7448).
- Add
edgeskeyword/deprecatelinkkeyword arguments inJSONinput-output (#7565). - Revert breaking change to
node_link_*link defaults (#7652).
Enhancements
- Add a
nodelistfeature tofrom_numpy_array(#7412). - Prioritize edgelist representations in
to_networkx_graph(#7424). - Adds initial debug logging calls to _dispatchable (#7300).
- add: nodes attribute is modifiable (#7532).
- Enable config to be used as context manager (#7363).
- Added code to handle multi-graph in mst (#7454).
- Enable caching by default (#7498).
- #7546 More detail error message for pydot (#7558).
- Fix weakly_connected_components() performance on graph view (#7586).
- Forceatlas2 (#7543).
- avoid iteration and use boolean indexing (#7591).
- Hide edges with a weight of None in simple_paths (#7583).
- Improved running time for harmonic centrality (#7595).
- Add remove attribute functions (#7569).
- Log "can/should run" and caching in dispatch machinery (#7568).
- Individualize drawing attributes (#7570).
- added nx-parallel gsoc project (#7620).
- Harmonic diameter (#5251).
- Allow dispatch machinery to fall back to networkx (#7585).
Bug Fixes
- Fix graph name attribute for
complete_bipartite_graph(#7399). - Remove import warnings during to_networkx_graph conversion (#7426).
- Fix nx.from_pandas_edgelist so edge keys are not added as edge attributes and edge keys (#7445).
- Fix
from_pandas_edgelistfor MultiGraph given edge_key (#7466). - Fix dispatch tests when using numpy 2 (#7506).
- [ENH, BUG]: added
collidersandv_structuresand deprecatedcompute_v_structuresindag.py(#7398). - Fix reading edgelist when delimiter is whitespace, e.g. tab (#7465).
- Ensure we always raise for unknown backend in
backend=(#7494). - Prevent
to_agraphfrom modifying graph argument (#7610). - Implementing iterative removal of non_terminal_leaves in Steiner Tree approximation (#7422).
- Only allow connected graphs in
eigenvector_centrality_numpy(#7549). - CI: Fix typo in nightly run pip install (#7625).
Documentation
- Document missing shortest_path functions (#7394).
- Optimal Edit Paths Return Section Improved (#7375).
- Minor updates to simple_cycles docstring (#7421).
- DOC: Clarifying
NetworkXPointlessConceptexception (#7434). - DOC: updated
pairs.py(#7416). - Add docstring example for directed tree (#7449).
- Change docs of
shortest_path_lengthso return is number instead of int (#7477). - Use intersphinx_registry to manage intersphinx mapping (#7481).
- Ma: fix some spelling errors in docs (#7480).
- Update NetworkX reference links in doc index (#7500).
- strong product docs update (#7511).
- Refactoring and enhancing user-facing
Backend and Configsdocs (#7404). - Fixed the citation in
dominance.py[Issue #7522] (#7524). - Clarify generation number in
dorogovtsev_goltsev_mendes_graph()(#7473). - Add
Introspectionsection to backends docs (#7556). - DOC: Added
default_configinget_info's description (#7567). - Prettify
README.rst(#7514). - DOC: Fix typo in the code snippet provided in the docstring of nx_pydot.pydot_layout() (#7572).
- Fix installation instructions for
defaultextras in README (#7574). - Add missing metadata to v3.3 release notes (#7592).
- Correct the members of steering council (#7604).
- Fix dispatch docs formatting (#7619).
- Add to Contributor List (#7621).
- Example fix for issue 7633 (#7634).
- Fix: Correct community color assignment in Girvan-Newman community detection (#7644).
- Updated docstring for generators/karate_club_graph() (#7626).
Maintenance
- Simplify flow func augmentation logic in
connectivitymodule (#7367). - A few more doctest skips for mpl/np dependencies (#7403).
- Remove repetitive words (#7406).
- FilterAdjacency: len is recalculated unnecessarily #7377 (#7378).
- Add check for empty graphs in
flow_hierarchy(#7393). - Use nodelist feature of from_numpy_array (#7425).
- Cleanup remaining usages of deprecated
random_treein package (#7411). - Add check for empty graphs in
non_randomness(#7395). - Update tests for macOS Sonoma v14 (#7437).
- Update doc requirements (#7435).
- Update pygraphviz (#7441).
- Always cache graph attrs for better cache behavior (#7455).
- retain adjacency order in nx-loopback copy of networkx graph (#7432).
- DEV: Add files generated by benchmarking to .gitignore (#7461).
- Remove redundant graph copy in
algorithms.bridges.bridges()(#7471). - CI: Add GitHub artifact attestations to package distribution (#7459).
- Add
polynomials.pytoneeds_numpy(#7493). - MAINT: Rename
LoopbackDispatchertoLoopbackBackendInterfaceanddispatchertobackend_interface(#7492). - CI: update action that got moved org (#7503).
- Update momepy (#7507).
- Fix pygraphviz install on Windows ([#7512](htt...
NetworkX 3.3
networkx 3.3
We're happy to announce the release of networkx 3.3!
API Changes
- Disallow negative number of nodes in
complete_multipartite_graph(#7057). - DEP: Deprecate the all_triplets one-liner (#7060).
- [A-star] Added expansion pruning via cutoff if cutoff is provided (#7073).
- Make HITS raise exceptions consistent with power iterations (#7084).
- DEP: Deprecate random_triad (#7061).
- Added feature modular graph product (#7227).
- ENH: Speed up common/non_neighbors by using _adj dict operations (#7244).
- Deprecate the
createargument ofnonisomorphic_trees(#7316). - Improve total_spanning_tree_weight (#7100).
- Update init.py (#7320).
- add **kwargs to traveling_salesman_problem (#7371).
Enhancements
- Add Tadpole graph (#6999).
- [A-star] Added expansion pruning via cutoff if cutoff is provided (#7073).
- Implementation of
$S^1$ model (#6858). - [Feat] Random expanders utilities (#6761).
- Compare graphs for generator functions when running tests with backend (#7066).
- Add Kirchhoff index / Effective graph resistance (#6926).
- Changed return types of shortest path methods to improve consistency (#6584).
- New PR for Fixes minimal d-separator function failing to handle cases where no d-separators exist (#7019).
- ENH : Provide non-normalized and normalized directed laplacian matrix calculation (#7199).
- feat: drop the use of node attribute "first_nbr" in PlanarEmbedding (#7202).
- Add functions to compute Schultz and Gutman Index (#3709).
- Divisive community algorithms (#5830).
- Added feature modular graph product (#7227).
- ENH : added
sort_neighborsto all functions indepth_first_search.py(#7196). - New graph generator for the Kneser graph (#7146).
- Draw MultiDiGraph edges and labels qa7008 (#7010).
- Use github actions to run a comparison benchmark (#7268).
- BFS layout implementation (#5179).
- Add
max_level=argument tolouvain_communitiesto limit macro-iterations (#6909). - Review and update
@nx._dispatchableusage since 3.2.1 (#7302). - Transmogrify
_dispatchableobjects into functions (#7298). - fix: make
PlanarEmbedding.copy()useadd_edges_from()from parent (closes #7223) (#7224). - Allow seed of np.random instance to exactly produce arbitrarily large integers (#6869).
- Improve total_spanning_tree_weight (#7100).
- add seed to
nx.generate_random_paths(#7332). - Allow backends to implement
should_run(#7257). - Adding tree broadcasting algorithm in a new module (#6928).
- Option to include initial labels in
weisfeiler_lehman_subgraph_hashes(#6601). - Add better error message when trying to get edge that is not present (#7245).
- Make
is_negatively_weighteddispatchable (#7352). - Add option to hide or show tick labels (#6018).
- ENH: Cache graphs objects when converting to a backend (#7345).
Bug Fixes
- Fix listing of release notes on Releases page (#7030).
- Fix syntax warning from bad escape sequence (#7034).
- Fix triangles to avoid using
isto compare nodes (#7041). - Fix error message for
nx.mycielski_graph(0)(#7056). - Disallow negative number of nodes in
complete_multipartite_graph(#7057). - Handle edge cases for greedy_modularity_communities (#6973).
- FIX: Match the doc description while copying over data (#7092).
- fix: Include singleton/trivial paths in all_simple_paths & other functions (#6694).
- Dinitz correction (#6968).
- Modify GML test to fix invalid octal character warning (#7159).
- Fix random_spanning_tree() for single node and empty graphs (#7211).
- PlanarEmbedding.remove_edge() now updates removed edge's neighbors (#6798).
- add seed to graph creation (#7241).
- add seed to tests of fast_label_propatation_communities (#7242).
- Fix rich_club_coefficient() for single node and empty graphs (#7212).
- Fix minimum_spanning_arborescence regression (#7280).
- Move arrowstyle input munging after intput validation (#7293).
- Fix empty GraphML attribute is not parsed (#7319).
- Add new test result to
test_asadpour_tspand changelinprogmethod (#7335). - Fix custom weight attribute for Mehlhorn (#6681).
Documentation
- Update release process (#7029).
- Update convert_matrix.py (#7018).
- fix extendability function name in bipartite.rst (#7042).
- Minor doc cleanups to remove doc build warnings (#7048).
- DOC: Add example to generic_bfs_edges to demonstrate the
neighborsparam (#7072). - Hierarchical clustering layout gallery example (#7058).
- Fixed an error in the documentation of the katz centrality (#6294).
- Create 3d_rotation_anime.py (#7025).
- DOC: Add docstrings to filter view functions (#7086).
- DOC: Add docstrings to Filter mapping views (#7075).
- DOCS: Fix internal links to other functions in isomorphvf2 (#6706).
- added note for the triangle inequality case in TSP (#6995).
- Add note about importance of testing to contributor guide (#7103).
- Proposal to add centrality overview to mentored projects (#7104).
- Improve documentation of Component Algorithms (#5473).
- Add dot io to readwrite (#5061).
- Add Python versions to release notes (#7113).
- DOC: Turn on inline plots in graph generators docstrings (#6401).
- Fix duplicate numbering in contributor guide (#7116).
- DOC: remove unnecessary 'or' in planted_partition_graph (#7115).
- DOC: Link methods in functions to base Graph methods/properties (#7125).
- Connect docs to doc_string for total_spanning_tree_weight (#7098).
- Image (3D RGB data) segmentation by spectral clustering with 3D illustrations (#7040).
- update triadic_census documentation for undirected graphs - issue 4386 ([#7141](https://github.com/ne...