NetworkX 3.4#

Release date: 10 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.

API Changes#

  • Expires the forest_str deprecation (#7414).

  • [ENH, BUG]: added colliders and v_structures and deprecated compute_v_structures in dag.py (#7398).

  • Expires the random_tree deprecation (#7415).

  • Expire deprecation for strongly_connected_components_recursive (#7420).

  • Expire deprecated sort_neighbors param in generic_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 edges keyword/deprecate link keyword arguments in JSON input-output (#7565).

  • Revert breaking change to node_link_* link defaults (#7652).

Enhancements#

  • Add a nodelist feature to from_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_using parameter 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_edgelist for MultiGraph given edge_key (#7466).

  • Fix dispatch tests when using numpy 2 (#7506).

  • [ENH, BUG]: added colliders and v_structures and deprecated compute_v_structures in dag.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_agraph from 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 NetworkXPointlessConcept exception (#7434).

  • DOC: updated pairs.py (#7416).

  • Add docstring example for directed tree (#7449).

  • Change docs of shortest_path_length so 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 Configs docs (#7404).

  • Fixed the citation in dominance.py [Issue #7522] (#7524).

  • Clarify generation number in dorogovtsev_goltsev_mendes_graph() (#7473).

  • Add Introspection section to backends docs (#7556).

  • DOC: Added default_config in get_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 default extras 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 connectivity module (#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_tree in 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.py to needs_numpy (#7493).

  • MAINT: Rename LoopbackDispatcher to LoopbackBackendInterface and dispatcher to backend_interface (#7492).

  • CI: update action that got moved org (#7503).

  • Update momepy (#7507).

  • Fix pygraphviz install on Windows (#7512).

  • MAINT: Made plot_image_segmentation_spectral_graph_partition example compatible with scipy 1.14.0 (#7518).

  • Fix CI installation of nx-cugraph in docs workflow (#7538).

  • Minor doc/test tweaks for dorogovtsev_goltsev_mendes (#7535).

  • CI: Add timeout limit to coverage job (#7542).

  • Update images used in docs build workflow (#7537).

  • Remove parallelization related TODO comments (#7226).

  • FIX: scipy 1d indexing tripped up numpy? (#7541).

  • Minor touchups to node_link functions (#7540).

  • Minor updates to colliders v_structures tests (#7539).

  • Update sphinx gallery config to enable sphinx build caching (#7548).

  • Update geospatial gallery dependencies (#7508).

  • Update ruff pre-commit and config (#7547).

  • More accurate NodeNotFound error message (#7545).

  • Update ruff config (#7552).

  • Add changelist config (#7551).

  • Fix installing nx-cugraph in deploy docs CI (#7561).

  • Fix nx_pydot.graphviz_layout for nodes with quoted/escaped chars (#7588).

  • DOC: Rm redundant module from autosummary (#7599).

  • Update numpydoc (1.8) (#7573).

  • Bump minimum pydot version to 3.0 (#7596).

  • CI: Include Python 3.13 in nightly wheel tests (#7594).

  • pydot - Remove Colon Check on Strings (#7606).

  • MAINT: Do not use requirements files in circle CI (#7553).

  • Do not use requirements file in github workflow (#7495).

  • weisfeiler_lehman_graph_hash: add not_implemented_for("multigraph") decorator (#7614).

  • Update teams doc by running tools/team_list.py (#7616).

  • Add single node with self loop check to local and global reaching centrality (#7350).

  • Full test coverage for maxflow in issue #6029 (#6355).

  • CI: Fix typo in nightly run pip install (#7625).

  • DOC: Bring back plausible for docs (#7639).

  • Update minimum dependencies (SPEC 0) (#7631).

  • Update pygraphviz (1.14) (#7654).

  • modified product.py to raise NodeNotFound when ‘root is not in H’ (#7635).

  • Support Python 3.13 (#7661).

  • Use official Python 3.13 release (#7667).

Other#

  • chore: fix some typos in comments (#7427).

Contributors#

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._