NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #141 most downloaded on PyPI
Python package for creating and manipulating graphs and networks
Last release 13 days ago
21 Sep 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 57 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
19 years old
98 releases · first in 2007
API: Expire deprecations of could-be isomorphism aliases ( #8498 ).
We're happy to announce the release of networkx 3.7!
leiden_communities and leiden_partitions. This provides an alternative, often improved, community detection algorithm compared to the Louvain functions (#8509).pip with wheels that include the GraphViz binaries. This should make the NetworkX interface to pygraphviz easier to use for graph layout and rendering (#8694).bfs_predecessors (#8494).is_aperiodic (#8148).nx.describe defaults (#8569)._build_paths_from_predecessors stack logic for 30-40% speedup (#8460).barycenter and centroid equivalence (#8630).leiden_communities and leiden_partitions. This provides an alternative, often improved, community detection algorithm compared to the Louvain functions (#8509).edmonds_karp and simplify the minimum_cut partition (#8756).edge_subgraph docstring (#8409).dict(G.degree) in examples (#8490).random_walk (#8535).degree_histogram docstring (#8571).basic_properties example (#8568).SpanningTreeIterator to find min spanning trees (#8556).barycenter and centroid equivalence (#8630).leiden_partitions (#8852).bipartite.write_edgelist docstring examples (#8872).could_be_isomorphic in fast_/faster_ variants (#8497).write_gexf for mixed typed attributes (#8549).strategy_connected_sequential (#8643).is_forest (#8642).test_clique.py (#8214).clustering to algorithm benchmarks (#8764).k_components reconstruction and add tests the private helpers (#8753).reverse to preserve all attributes in dispatch conversions (#8807).remove_{node,edge}_attributes (#8806).full_rary_tree (#8808).72 authors added to this release (alphabetically):
36 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
One column per quarter.
API: Expire deprecations of could-be isomorphism aliases ( #8498 ).
We're happy to announce the release of networkx 3.7rc0!
leiden_communities and leiden_partitions. This provides an alternative, often improved, community detection algorithm compared to the Louvain functions (#8509).pip with wheels that include the GraphViz binaries. This should make the NetworkX interface to pygraphviz easier to use for graph layout and rendering (#8694).bfs_predecessors (#8494).is_aperiodic (#8148).nx.describe defaults (#8569)._build_paths_from_predecessors stack logic for 30-40% speedup (#8460).barycenter and centroid equivalence (#8630).leiden_communities and leiden_partitions. This provides an alternative, often improved, community detection algorithm compared to the Louvain functions (#8509).edmonds_karp and simplify the minimum_cut partition (#8756).edge_subgraph docstring (#8409).dict(G.degree) in examples (#8490).random_walk (#8535).degree_histogram docstring (#8571).basic_properties example (#8568).SpanningTreeIterator to find min spanning trees (#8556).barycenter and centroid equivalence (#8630).leiden_partitions (#8852).bipartite.write_edgelist docstring examples (#8872).could_be_isomorphic in fast_/faster_ variants (#8497).write_gexf for mixed typed attributes (#8549).strategy_connected_sequential (#8643).is_forest (#8642).pip with wheels that include the GraphViz binaries. This should make the NetworkX interface to pygraphviz easier to use for graph layout and rendering (#8694).test_clique.py (#8214).clustering to algorithm benchmarks (#8764).k_components reconstruction and add tests the private helpers (#8753).reverse to preserve all attributes in dispatch conversions (#8807).remove_{node,edge}_attributes (#8806).full_rary_tree (#8808).72 authors added to this release (alphabetically):
36 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
We're happy to announce the release of networkx 3.6.1!
We're happy to announce the release of networkx 3.6.1!
from_biadjacency_matrix (#7993).10 authors added to this release (alphabetically):
9 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Expire deprecation of compute_v_structures (#8281).
We're happy to announce the release of networkx 3.6!
subgraph_centrality and its _exp version (#8340).random_lobster with random_lobster_graph (#8067).maybe_regular_expander with maybe_regular_expander_graph (#8050).random_tree function (#8105).G._adj in Tarjan algorithm (#8064).edges_equal (#8077).is_reachable() (#8112).draw_networkx_edge_labels and display (#8108).all_triangles generator yielding all unique triangles in a graph (#8135).k_factor (#8139).intersection_array computation for checking distance-regularity (#7181).is_regular for directed graphs (#8138).nx.circulant_graph to generate Harary graphs (#8189).directed kwarg to edges_equal (#8192).nx.Graph(backend=...) (#7760).subgraph_centrality and its _exp version (#8340).non_randomness() and clarify its behavior (#8057).nx.find_cliques_recursive (#8211).optimize_edit_paths handling of self-loops (#8207).degree_sequence_tree (#8235).k<N and merge all b.c. rescale helper functions (#8256).cumulative_distribution to address floating-point errors (#8342).min_weight_matching (#8062).non_randomness() and clarify its behavior (#8057).display() keyword node_pos (#8153).all_neighbors() (#8166).number_of_cliques (#8216).degree_sequence_tree (#8236).leiden docs (#8277).needs_(num|sci)py (#8088).scipy.sparse array versions where applicable (#8080).generate_adjlist (#8146).k_factor tests (#8140).pytest.raises as a context (#8170).pyproject.toml (#8172).matrix_power from scipy.sparse in number_of_walks (#8197).try except for tomllib in generate_requirements (#8198)._tree_center and move to tree subpackage (#8174).random_cograph test (#8228).@_dispatchable(name= (#8168).slow coverage in k_components (#8239).degree_seq (#8257).k<N and merge all b.c. rescale helper functions (#8256).itertools.pairwise in pairwise and add docstring (#8201).generators/deg_seq.py (#8226).max_iter in asyn_fluidc (#8224).steiner_tree (#8259).slow coverage for random graph generators (#8252).all_node_cuts with shortest augmenting path flow function (#8230).isomorphvf2 (#8251).nx_pylab drawing tests (#8232).random_k_out_graph to tests to hit try except path (#8231).internet_as_graphs.py (#8225).topo_sort skips visited nodes in goldberg_radzik (#8279).40 authors added to this release (alphabetically):
24 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
We're happy to announce the release of networkx 3.6!
subgraph_centrality and its _exp version (#8340).random_lobster with random_lobster_graph (#8067).maybe_regular_expander with maybe_regular_expander_graph (#8050).random_tree function (#8105).G._adj in Tarjan algorithm (#8064).edges_equal (#8077).is_reachable() (#8112).draw_networkx_edge_labels and display (#8108).all_triangles generator yielding all unique triangles in a graph (#8135).k_factor (#8139).intersection_array computation for checking distance-regularity (#7181).is_regular for directed graphs (#8138).nx.circulant_graph to generate Harary graphs (#8189).directed kwarg to edges_equal (#8192).nx.Graph(backend=...) (#7760).subgraph_centrality and its _exp version (#8340).non_randomness() and clarify its behavior (#8057).nx.find_cliques_recursive (#8211).optimize_edit_paths handling of self-loops (#8207).degree_sequence_tree (#8235).k<N and merge all b.c. rescale helper functions (#8256).cumulative_distribution to address floating-point errors (#8342).min_weight_matching (#8062).non_randomness() and clarify its behavior (#8057).display() keyword node_pos (#8153).all_neighbors() (#8166).number_of_cliques (#8216).degree_sequence_tree (#8236).leiden docs (#8277).needs_(num|sci)py (#8088).scipy.sparse array versions where applicable (#8080).generate_adjlist (#8146).k_factor tests (#8140).pytest.raises as a context (#8170).pyproject.toml (#8172).matrix_power from scipy.sparse in number_of_walks (#8197).try except for tomllib in generate_requirements (#8198)._tree_center and move to tree subpackage (#8174).random_cograph test (#8228).@_dispatchable(name= (#8168).slow coverage in k_components (#8239).degree_seq (#8257).k<N and merge all b.c. rescale helper functions (#8256).itertools.pairwise in pairwise and add docstring (#8201).generators/deg_seq.py (#8226).max_iter in asyn_fluidc (#8224).steiner_tree (#8259).slow coverage for random graph generators (#8252).all_node_cuts with shortest augmenting path flow function (#8230).isomorphvf2 (#8251).nx_pylab drawing tests (#8232).random_k_out_graph to tests to hit try except path (#8231).internet_as_graphs.py (#8225).topo_sort skips visited nodes in goldberg_radzik (#8279).40 authors added to this release (alphabetically):
24 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain
duplicates.
Expire deprecation of compute_v_structures (#8281).
We're happy to announce the release of networkx 3.6rc0!
random_lobster with random_lobster_graph (#8067).maybe_regular_expander with maybe_regular_expander_graph (#8050).random_tree function (#8105).G._adj in Tarjan algorithm (#8064).edges_equal (#8077).is_reachable() (#8112).draw_networkx_edge_labels and display (#8108).all_triangles generator yielding all unique triangles in a graph (#8135).k_factor (#8139).intersection_array computation for checking distance-regularity (#7181).is_regular for directed graphs (#8138).nx.circulant_graph to generate Harary graphs (#8189).directed kwarg to edges_equal (#8192).nx.Graph(backend=...) (#7760).non_randomness() and clarify its behavior (#8057).nx.find_cliques_recursive (#8211).optimize_edit_paths handling of self-loops (#8207).degree_sequence_tree (#8235).k<N and merge all b.c. rescale helper functions (#8256).min_weight_matching (#8062).non_randomness() and clarify its behavior (#8057).display() keyword node_pos (#8153).all_neighbors() (#8166).number_of_cliques (#8216).degree_sequence_tree (#8236).leiden docs (#8277).needs_(num|sci)py (#8088).scipy.sparse array versions where applicable (#8080).generate_adjlist (#8146).k_factor tests (#8140).pytest.raises as a context (#8170).pyproject.toml (#8172).matrix_power from scipy.sparse in number_of_walks (#8197).try except for tomllib in generate_requirements (#8198)._tree_center and move to tree subpackage (#8174).random_cograph test (#8228).@_dispatchable(name= (#8168).slow coverage in k_components (#8239).degree_seq (#8257).k<N and merge all b.c. rescale helper functions (#8256).itertools.pairwise in pairwise and add docstring (#8201).generators/deg_seq.py (#8226).max_iter in asyn_fluidc (#8224).steiner_tree (#8259).slow coverage for random graph generators (#8252).all_node_cuts with shortest augmenting path flow function (#8230).isomorphvf2 (#8251).nx_pylab drawing tests (#8232).random_k_out_graph to tests to hit try except path (#8231).internet_as_graphs.py (#8225).topo_sort skips visited nodes in goldberg_radzik (#8279).38 authors added to this release (alphabetically):
24 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
We're happy to announce the release of networkx 3.6rc0!
random_lobster with random_lobster_graph (#8067).maybe_regular_expander with maybe_regular_expander_graph (#8050).random_tree function (#8105).G._adj in Tarjan algorithm (#8064).edges_equal (#8077).is_reachable() (#8112).draw_networkx_edge_labels and display (#8108).all_triangles generator yielding all unique triangles in a graph (#8135).k_factor (#8139).intersection_array computation for checking distance-regularity (#7181).is_regular for directed graphs (#8138).nx.circulant_graph to generate Harary graphs (#8189).directed kwarg to edges_equal (#8192).nx.Graph(backend=...) (#7760).non_randomness() and clarify its behavior (#8057).nx.find_cliques_recursive (#8211).optimize_edit_paths handling of self-loops (#8207).degree_sequence_tree (#8235).k<N and merge all b.c. rescale helper functions (#8256).min_weight_matching (#8062).non_randomness() and clarify its behavior (#8057).display() keyword node_pos (#8153).all_neighbors() (#8166).number_of_cliques (#8216).degree_sequence_tree (#8236).leiden docs (#8277).needs_(num|sci)py (#8088).scipy.sparse array versions where applicable (#8080).generate_adjlist (#8146).k_factor tests (#8140).pytest.raises as a context (#8170).pyproject.toml (#8172).matrix_power from scipy.sparse in number_of_walks (#8197).try except for tomllib in generate_requirements (#8198)._tree_center and move to tree subpackage (#8174).random_cograph test (#8228).@_dispatchable(name= (#8168).slow coverage in k_components (#8239).degree_seq (#8257).k<N and merge all b.c. rescale helper functions (#8256).itertools.pairwise in pairwise and add docstring (#8201).generators/deg_seq.py (#8226).max_iter in asyn_fluidc (#8224).steiner_tree (#8259).slow coverage for random graph generators (#8252).all_node_cuts with shortest augmenting path flow function (#8230).isomorphvf2 (#8251).nx_pylab drawing tests (#8232).random_k_out_graph to tests to hit try except path (#8231).internet_as_graphs.py (#8225).topo_sort skips visited nodes in goldberg_radzik (#8279).38 authors added to this release (alphabetically):
24 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain
duplicates.
Expire all_triplets deprecation (#7828).
We're happy to announce the release of networkx 3.5!
random_k_out_graph (#7702).find_asteroidal_triple improvement (#7736).weight to harmonic_diameter (#7636).forceatlas2_layout dispatchable (#7794).forceatlas2_layout (#7798).get_node_attributes and a few more from nx.classes.function (#7824).could_be_isomorphic and number_of_cliques (#7855).square_clustering (#7810).biadjacency_matrix to be returned as a dense NumPy array (#7973).sources argument in bfs_layers (#8013).connected_components and weakly_connected_components (#7971)._raise_on_directed to work with create_using pos arg (#7695).edge_subgraph (#7724) (#7729).if condition in asadpour_atsp (#7753).with nx.config(backend_priority=backends): (#7814).edge_attrs="weight" to forceatlas2_layout dispatch decorator (#7918).random_degree_sequence_graph when input is an iterator (#7979).nx.config.backend_priority (#8034).is_aperiodic (#8029).soft_random_geometric_graph and thresholded_random_geometric_graph (#7749).single_source_shortest_path_length docstring (#7637).backends.py to backends.rst (#7776).path parameter (#7835).nx.generate_random_paths(index_map=...) (#7832).weight and gravity attribute to forceatlas2_layout docstring (#7915).tournament_matrix to docs (#7968).random_paths docstring improvements (#7841).maximum_flow() (#8058).min_edge_cover docstring (#8075).partial with staticmethod() in test_link_prediction.py (#7673).pip installs in benchmarking workflow (#7647).osmnx=2.0.0 (#7746).nx.lowest_common_ancestor (#7726).shortest_path and single_target_shortest_path_length for 3.5 (#7754).__call__ when no backends (#7761).assert when using pytest.raises (#7833).path parameter (#7835).nx.generate_random_paths(index_map=...) (#7832).dict(...) for SSSP algos that return dicts (#7878).effective_size of nodes with only self-loop edges is undefined (#7347).to_dict_of_dicts and attr_matrix and input name change in min_fill_in_heuristic (#7883).-n auto from pytest-xdist for dispatch and coverage CI jobs (#7987).56 authors added to this release (alphabetically):
32 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Expire all_triplets deprecation (#7828).
We're happy to announce the release of networkx 3.5rc0!
random_k_out_graph (#7702).find_asteroidal_triple improvement (#7736).weight to harmonic_diameter (#7636).forceatlas2_layout dispatchable (#7794).forceatlas2_layout (#7798).get_node_attributes and a few more from nx.classes.function (#7824).could_be_isomorphic and number_of_cliques (#7855).square_clustering (#7810).biadjacency_matrix to be returned as a dense NumPy array (#7973).sources argument in bfs_layers (#8013).connected_components and weakly_connected_components (#7971)._raise_on_directed to work with create_using pos arg (#7695).edge_subgraph (#7724) (#7729).if condition in asadpour_atsp (#7753).with nx.config(backend_priority=backends): (#7814).edge_attrs="weight" to forceatlas2_layout dispatch decorator (#7918).random_degree_sequence_graph when input is an iterator (#7979).soft_random_geometric_graph and thresholded_random_geometric_graph (#7749).single_source_shortest_path_length docstring (#7637).backends.py to backends.rst (#7776).path parameter (#7835).nx.generate_random_paths(index_map=...) (#7832).weight and gravity attribute to forceatlas2_layout docstring (#7915).tournament_matrix to docs (#7968).random_paths docstring improvements (#7841).partial with staticmethod() in test_link_prediction.py (#7673).pip installs in benchmarking workflow (#7647).osmnx=2.0.0 (#7746).nx.lowest_common_ancestor (#7726).shortest_path and single_target_shortest_path_length for 3.5 (#7754).__call__ when no backends (#7761).assert when using pytest.raises (#7833).path parameter (#7835).nx.generate_random_paths(index_map=...) (#7832).dict(...) for SSSP algos that return dicts (#7878).effective_size of nodes with only self-loop edges is undefined (#7347).to_dict_of_dicts and attr_matrix and input name change in min_fill_in_heuristic (#7883).-n auto from pytest-xdist for dispatch and coverage CI jobs (#7987).54 authors added to this release (alphabetically):
29 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
We're happy to announce the release of networkx 3.4.2!
We're happy to announce the release of networkx 3.4.2!
6 authors added to this release (alphabetically):
4 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Release date: 21 October 2024
Supports Python 3.10, 3.11, 3.12, and 3.13.
NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
For more information, please visit our website and our gallery of examples. Please send comments and questions to the networkx-discuss mailing list.
Add disclaimer about LLM driven PRs (#7683).
Fix doc warnings from recently added docs (#7682).
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._
Remove old deprecation decorator (#7669).
We're happy to announce the release of networkx 3.4.1!
2 authors added to this release (alphabetically):
3 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Release date: 11 October 2024
Supports Python 3.10, 3.11, 3.12, and 3.13.
NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
For more information, please visit our website and our gallery of examples. Please send comments and questions to the networkx-discuss mailing list.
Remove old deprecation decorator (#7669).
MAINT: delay loading of backend_info to after imports (#7672).
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._
Revert breaking change to node_link_* link defaults (#7652).
We're happy to announce the release of networkx 3.4!
forest_str deprecation (#7414).colliders and v_structures and deprecated compute_v_structures in dag.py (#7398).random_tree deprecation (#7415).sort_neighbors param in generic_bfs_edges (#7417).edges keyword/deprecate link keyword arguments in JSON input-output (#7565).node_link_* link defaults (#7652).nodelist feature to from_numpy_array (#7412).to_networkx_graph (#7424).create_using parameter for random graphs (#5672).complete_bipartite_graph (#7399).from_pandas_edgelist for MultiGraph given edge_key (#7466).colliders and v_structures and deprecated compute_v_structures in dag.py (#7398).backend= (#7494).to_agraph from modifying graph argument (#7610).eigenvector_centrality_numpy (#7549).NetworkXPointlessConcept exception (#7434).pairs.py (#7416).shortest_path_length so return is number instead of int (#7477).Backend and Configs docs (#7404).dominance.py [Issue #7522] (#7524).dorogovtsev_goltsev_mendes_graph() (#7473).Introspection section to backends docs (#7556).default_config in get_info's description (#7567).README.rst (#7514).default extras in README (#7574).to_scipy_sparse_array (#7627).connectivity module (#7367).flow_hierarchy (#7393).random_tree in package (#7411).non_randomness (#7395).algorithms.bridges.bridges() (#7471).polynomials.py to needs_numpy (#7493).LoopbackDispatcher to LoopbackBackendInterface and dispatcher to backend_interface (#7492).plot_image_segmentation_spectral_graph_partition example compatible with scipy 1.14.0 (#7518).nx_pydot.graphviz_layout for nodes with quoted/escaped chars (#7588).weisfeiler_lehman_graph_hash: add not_implemented_for("multigraph") decorator (#7614).tools/team_list.py (#7616).53 authors added to this release (alphabetically):
28 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Your coding agent can read these notes before it upgrades. Set up the MCP server →