NetworkX 2.8
============
Release date: 9 April 2022
Supports Python 3.8, 3.9, and 3.10
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 :ref:`gallery of examples `.
Please send comments and questions to the `networkx-discuss mailing list
`_.
Highlights
----------
This release is the result of over five weeks of work with 48 pull requests by
18 contributors. This is the last release before NetworkX 3.0. For a preview of the
upcoming 3.0 release, please see the draft of our
`migration guide `_
for people moving from 2.X to 3.0.
Improvements
------------
- Correction to the treatment of directed graphs for `average_neighbor_degree`
which used to sum the degrees of outgoing neighbors only but then divide by
the number of "in" or "out" or "in+out" neighbors. So it wasn't even an average.
The correction makes it an average degree of whatever population of neighbors
is specified by `source` = "in" or "out" or "in+out".
For example:
>>> G = nx.path_graph(3, create_using=nx.DiGraph)
>>> print(nx.average_neighbor_degree(G, source="in", target="in"))
{0: 0.0, 1: 1.0, 2: 1.0}
This used to produce `{0: 0.0, 1: 1.0, 2: 0.0}`
Note: node 0 and 2 were treated nonsensically.
Node 0 had calculated value 1/0 which was converted to 0.
(numerator looking at successors while denominator counting predecessors)
Node 2 had caluated value 0/1 = 0.0 (again succs on top, but preds in bottom)
Now node 0 has calculated value 0.0/0 which we treat as 0.0. And node 2 has
calculated value 1/1 = 1.0. Both handle the same nbrhood on top and bottom.
API Changes
-----------
- [`#5394 `_]
The function ``min_weight_matching`` no longer acts upon the parameter ``maxcardinality``
because setting it to False would result in the min_weight_matching being no edges
at all. The only reasonable option is True. The parameter will be removed completely in v3.0.
Deprecations
------------
- [`#5227 `_]
Deprecate the ``n_communities`` parameter name in ``greedy_modularity_communities``
in favor of ``cutoff``.
- [`#5422 `_]
Deprecate ``extrema_bounding``. Use the related distance measures with
``usebounds=True`` instead.
- [`#5427 `_]
Deprecate ``dict_to_numpy_array1`` and ``dict_to_numpy_array2`` in favor of
``dict_to_numpy_array``, which handles both.
- [`#5428 `_]
Deprecate ``utils.misc.to_tuple``.
Merged PRs
----------
- Fix docs
- Fix release notes
- Bump release version
- Fix missing backticks (#5381)
- Add Generator support to create_py_random_state. (#5380)
- modulartiy_max: introduce enforce_n_communities parameter (#5227)
- First draft. (#5359)
- Updated MultiDiGraph documentation to include more examples of actually (#5387)
- Multigraph docs update (#5389)
- Updates to greedy_modularity_communities docs (#5390)
- Finish up NXEP 4 first draft (#5391)
- Correct typo in docstring (int -> float) (#5398)
- DOC: examples code blacks needs a blank line (#5401)
- Add support for multigraphs to nx.bridges. (#5397)
- Update extrema bounding method for compute="eccentricities" parameter (#5409)
- Add Tutte polynomial (#5265)
- Update sparse6 urls to use https (#5424)
- Deprecate extrema bounding (#5422)
- Add NXEP4 to developer toctree and fix broken links (#5420)
- Rm _inherit_doc - default behavior as of Python 3.5. (#5416)
- Minor improvements from general code readthrough (#5414)
- Ignore formatting changes with black, pep8 for git blame (#5405)
- Deprecate dict to numpy helpers (#5427)
- Deprecate `to_tuple` (#5430)
- Fix average_neighbor_degree calculations for directed graph (#5404)
- Parametrize tutte polynomial tests (#5431)
- Update black (#5438)
- Ignore black formatting (#5440)
- Update sphinx (#5439)
- Use https links for conference.scipy.org (#5441)
- Don't use graph6 with directed graphs (#5443) (#5444)
- Fix min_weight_matching to convert edge weights without reciprocal (#5394)
- Make sympy extra dep (#5454)
- Optimize prim for mst (#5455)
- Adding more examples for to_numpy_array method's usage (#5451)
- MAINT: Prim MST test didn't pass algorithm name to all unit tests (#5457)
- Fixed wrong dict factory usage on MultiDiGraph (#5456)
- added extra condition for fancy arrow colors (#5407)
- Update dependencies (#5468)
- Update release notes
- Designate 2.8rc1 release
- Bump release version
- DOCS: add some guidelines for references (#5476)
- Fix for issue 5212 (#5471)
- shortest_path() example (#5491)
- Rm incorrect reference from spiral_layout docstring. (#5503)
- Improve docstring for bethe_hessian_matrix (#5458)
- Add notes about NumPy/SciPy integration to NX 2->3 migration guide (#5505)
- Run black on docs (#5513)
Contributors
------------
- Ross Barnowski
- Riccardo Bucco
- Matthias Bussonnier
- FabianBall
- Martha Frysztacki
- Chris Keefe
- Lukong123
- Peter Mawhorter
- Lucas H. McCabe
- Jarrod Millman
- Sultan Orazbayev
- Dan Schult
- Seon82
- Mridul Seth
- Nikita Sharma
- Dilara Tekinoglu
- blokhinnv
- yusuf-csdev