Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-networkx for openSUSE:Factory 
checked in at 2023-01-06 17:04:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-networkx (Old)
 and      /work/SRC/openSUSE:Factory/.python-networkx.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-networkx"

Fri Jan  6 17:04:56 2023 rev:34 rq:1056126 version:2.8.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-networkx/python-networkx.changes  
2022-10-03 13:43:51.001229055 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-networkx.new.1563/python-networkx.changes    
    2023-01-06 17:05:27.656149439 +0100
@@ -1,0 +2,34 @@
+Wed Jan  4 22:18:00 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.8.8:
+  * Fix warnings from running tests in randomized order 
+  * Update pydata-sphinx-theme 
+  * update secutiry link to tidelift 
+  * Update numpydoc 
+  * Support Python 3.11 
+  * Minor updates to expanders generator tests 
+  * Add missing asserts to tests 
+  * fixes #6036 
+  * Improve test coverage expanders line graph generators solved (PR for issue 
#6034) 
+  * Replace .A call with .toarray for sparse array in example. 
+  * Improve test coverage for algorithms/richclub.py 
+  * Tested boykov_kolmogorov and dinitz with cutoff 
+  * Improve test coverage for multigraph class 
+  * Improve test coverage for algorithms in dominating_set.py (PR for issue 
6032) 
+  * Improve test coverage for graph class 
+  * added coverage in generators/tree.py 
+  * DOC: Specifically branch off main, instead of current branch 
+  * Improve test coverage for multidigraph class 
+  * Improve test coverage for digraph class 
+  * Improve test coverage for algorithms in dispersion.py 
+  * Test on Python 3.11 
+  * Improve test coverage in algorithms shortest paths unweighted.py 
+  * Increased test coverage algorithms/matching.py 
+  * Renamed test functions in test_lowest_common_ancestors 
+  * Increase covering coverage 
+  * Add example for fiedler_vector 
+  * Improve test coverage for cycles.py 
+  * Added an example in all_pairs_node_connectivity  
+  * Amount of nodes and edges have mistakes when reading adjlist file 
+
+-------------------------------------------------------------------

Old:
----
  networkx-2.8.7.tar.gz

New:
----
  networkx-2.8.8.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-networkx.spec ++++++
--- /var/tmp/diff_new_pack.BUmDub/_old  2023-01-06 17:05:28.432153797 +0100
+++ /var/tmp/diff_new_pack.BUmDub/_new  2023-01-06 17:05:28.436153819 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-networkx
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python3-%{**}}
 Name:           python-networkx
-Version:        2.8.7
+Version:        2.8.8
 Release:        0
 Summary:        Python package for the study of complex networks
 License:        BSD-3-Clause

++++++ networkx-2.8.7.tar.gz -> networkx-2.8.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/CONTRIBUTING.rst 
new/networkx-2.8.8/CONTRIBUTING.rst
--- old/networkx-2.8.7/CONTRIBUTING.rst 2022-09-30 18:57:13.000000000 +0200
+++ new/networkx-2.8.8/CONTRIBUTING.rst 2022-11-01 19:53:50.000000000 +0100
@@ -94,7 +94,7 @@
      branch name will appear in the merge message, use a sensible name
      such as 'bugfix-for-issue-1480'::
 
-      git checkout -b bugfix-for-issue-1480
+      git checkout -b bugfix-for-issue-1480 main
 
    * Commit locally as you progress (``git add`` and ``git commit``)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/PKG-INFO new/networkx-2.8.8/PKG-INFO
--- old/networkx-2.8.7/PKG-INFO 2022-10-01 22:51:50.154833800 +0200
+++ new/networkx-2.8.8/PKG-INFO 2022-11-01 21:31:21.107464800 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: networkx
-Version: 2.8.7
+Version: 2.8.8
 Summary: Python package for creating and manipulating graphs and networks
 Home-page: https://networkx.org/
 Author: Aric Hagberg
@@ -24,6 +24,7 @@
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
@@ -41,8 +42,8 @@
 NetworkX
 ========
 
-.. image:: 
https://github.com/networkx/networkx/workflows/test/badge.svg?tag=networkx-2.8.7
-  :target: 
https://github.com/networkx/networkx/actions?query=branch%3Anetworkx-2.8.7
+.. image:: 
https://github.com/networkx/networkx/workflows/test/badge.svg?tag=networkx-2.8.8
+  :target: 
https://github.com/networkx/networkx/actions?query=branch%3Anetworkx-2.8.8
 
 .. image:: https://codecov.io/gh/networkx/networkx/branch/main/graph/badge.svg
    :target: https://app.codecov.io/gh/networkx/networkx/branch/main
@@ -59,7 +60,7 @@
 - **Mailing list:** https://groups.google.com/forum/#!forum/networkx-discuss
 - **Source:** https://github.com/networkx/networkx
 - **Bug reports:** https://github.com/networkx/networkx/issues
-- **Report a security vulnerability:** https://tidelift.com/docs/security
+- **Report a security vulnerability:** https://tidelift.com/security
 - **Tutorial:** https://networkx.org/documentation/latest/tutorial.html
 - **GitHub Discussions:** https://github.com/networkx/networkx/discussions
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/README.rst 
new/networkx-2.8.8/README.rst
--- old/networkx-2.8.7/README.rst       2022-10-01 22:50:53.000000000 +0200
+++ new/networkx-2.8.8/README.rst       2022-11-01 21:30:43.000000000 +0100
@@ -1,8 +1,8 @@
 NetworkX
 ========
 
-.. image:: 
https://github.com/networkx/networkx/workflows/test/badge.svg?tag=networkx-2.8.7
-  :target: 
https://github.com/networkx/networkx/actions?query=branch%3Anetworkx-2.8.7
+.. image:: 
https://github.com/networkx/networkx/workflows/test/badge.svg?tag=networkx-2.8.8
+  :target: 
https://github.com/networkx/networkx/actions?query=branch%3Anetworkx-2.8.8
 
 .. image:: https://codecov.io/gh/networkx/networkx/branch/main/graph/badge.svg
    :target: https://app.codecov.io/gh/networkx/networkx/branch/main
@@ -19,7 +19,7 @@
 - **Mailing list:** https://groups.google.com/forum/#!forum/networkx-discuss
 - **Source:** https://github.com/networkx/networkx
 - **Bug reports:** https://github.com/networkx/networkx/issues
-- **Report a security vulnerability:** https://tidelift.com/docs/security
+- **Report a security vulnerability:** https://tidelift.com/security
 - **Tutorial:** https://networkx.org/documentation/latest/tutorial.html
 - **GitHub Discussions:** https://github.com/networkx/networkx/discussions
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/doc/release/index.rst 
new/networkx-2.8.8/doc/release/index.rst
--- old/networkx-2.8.7/doc/release/index.rst    2022-09-30 18:57:13.000000000 
+0200
+++ new/networkx-2.8.8/doc/release/index.rst    2022-11-01 21:26:17.000000000 
+0100
@@ -15,6 +15,7 @@
    :maxdepth: 2
 
    release_dev
+   release_2.8.8
    release_2.8.7
    release_2.8.6
    release_2.8.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/doc/release/release_2.8.8.rst 
new/networkx-2.8.8/doc/release/release_2.8.8.rst
--- old/networkx-2.8.7/doc/release/release_2.8.8.rst    1970-01-01 
01:00:00.000000000 +0100
+++ new/networkx-2.8.8/doc/release/release_2.8.8.rst    2022-11-01 
21:25:44.000000000 +0100
@@ -0,0 +1,70 @@
+NetworkX 2.8.7
+==============
+
+Release date: 1 November 2022
+
+Supports Python 3.8, 3.9, 3.10, and 3.11.
+
+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 <https://networkx.org/>`_
+and our :ref:`gallery of examples <examples_gallery>`.
+Please send comments and questions to the `networkx-discuss mailing list
+<http://groups.google.com/group/networkx-discuss>`_.
+
+Highlights
+----------
+
+Minor documentation and bug fixes.
+
+Merged PRs
+----------
+
+- Bump release version
+- Fix warnings from running tests in randomized order (#6014)
+- Update pydata-sphinx-theme (#6012)
+- update secutiry link to tidelift (#6019)
+- Update numpydoc (#6022)
+- Support Python 3.11 (#6023)
+- Update linters (#6024)
+- Minor updates to expanders generator tests (#6027)
+- Add missing asserts to tests (#6039)
+- fixes #6036 (#6080)
+- Improve test coverage expanders line graph generators solved (PR for issue 
#6034) (#6071)
+- Replace .A call with .toarray for sparse array in example. (#6106)
+- Improve test coverage for algorithms/richclub.py (#6089)
+- Tested boykov_kolmogorov and dinitz with cutoff (#6104)
+- Improve test coverage for multigraph class (#6101)
+- Improve test coverage for algorithms in dominating_set.py (PR for issue 
6032) (#6068)
+- Improve test coverage for graph class (#6105)
+- added coverage in generators/tree.py (#6082)
+- DOC: Specifically branch off main, instead of current branch (#6127)
+- Improve test coverage for multidigraph class (#6131)
+- Improve test coverage for digraph class (#6130)
+- Improve test coverage for algorithms in dispersion.py (#6100)
+- Test on Python 3.11 (#6159)
+- Improve test coverage in algorithms shortest paths unweighted.py (#6121)
+- Increased test coverage algorithms/matching.py (#6095)
+- Renamed test functions in test_lowest_common_ancestors (#6110)
+- Increase covering coverage (#6099)
+- Add example for fiedler_vector (#6155)
+- Improve test coverage for cycles.py (#6152)
+- Added an example in all_pairs_node_connectivity  (#6126)
+- Amount of nodes and edges have mistakes when reading adjlist file (#6132)
+- Update pytest (#6165)
+
+Contributors
+------------
+
+- Ross Barnowski
+- Paula Pérez Bianchi
+- DiamondJoseph
+- Jarrod Millman
+- Mjh9122
+- Alimi Qudirah
+- Okite chimaobi Samuel
+- Jefter Santiago
+- Dan Schult
+- Mridul Seth
+- Tindi Sommers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/examples/drawing/plot_eigenvalues.py 
new/networkx-2.8.8/examples/drawing/plot_eigenvalues.py
--- old/networkx-2.8.7/examples/drawing/plot_eigenvalues.py     2021-05-31 
22:28:22.000000000 +0200
+++ new/networkx-2.8.8/examples/drawing/plot_eigenvalues.py     2022-11-01 
18:27:46.000000000 +0100
@@ -14,7 +14,7 @@
 G = nx.gnm_random_graph(n, m, seed=5040)  # Seed for reproducibility
 
 L = nx.normalized_laplacian_matrix(G)
-e = numpy.linalg.eigvals(L.A)
+e = numpy.linalg.eigvals(L.toarray())
 print("Largest eigenvalue:", max(e))
 print("Smallest eigenvalue:", min(e))
 plt.hist(e, bins=100)  # histogram with 100 bins
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx/__init__.py 
new/networkx-2.8.8/networkx/__init__.py
--- old/networkx-2.8.7/networkx/__init__.py     2022-10-01 22:46:52.000000000 
+0200
+++ new/networkx-2.8.8/networkx/__init__.py     2022-11-01 21:27:06.000000000 
+0100
@@ -8,7 +8,7 @@
 See https://networkx.org for complete documentation.
 """
 
-__version__ = "2.8.7"
+__version__ = "2.8.8"
 
 
 def __getattr__(name):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/approximation/connectivity.py 
new/networkx-2.8.8/networkx/algorithms/approximation/connectivity.py
--- old/networkx-2.8.7/networkx/algorithms/approximation/connectivity.py        
2022-03-29 15:37:39.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/approximation/connectivity.py        
2022-11-01 18:29:08.000000000 +0100
@@ -244,6 +244,20 @@
     K : dictionary
         Dictionary, keyed by source and target, of pairwise node connectivity
 
+    Examples
+    --------
+    A 3 node cycle with one extra node attached has connectivity 2 between all
+    nodes in the cycle and connectivity 1 between the extra node and the rest:
+
+    >>> G = nx.cycle_graph(3)
+    >>> G.add_edge(2, 3)
+    >>> import pprint  # for nice dictionary formatting
+    >>> pprint.pprint(nx.all_pairs_node_connectivity(G))
+    {0: {1: 2, 2: 2, 3: 1},
+     1: {0: 2, 2: 2, 3: 1},
+     2: {0: 2, 1: 2, 3: 1},
+     3: {0: 1, 1: 1, 2: 1}}
+
     See Also
     --------
     local_node_connectivity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/approximation/tests/test_dominating_set.py
 
new/networkx-2.8.8/networkx/algorithms/approximation/tests/test_dominating_set.py
--- 
old/networkx-2.8.7/networkx/algorithms/approximation/tests/test_dominating_set.py
   2022-06-03 01:39:15.000000000 +0200
+++ 
new/networkx-2.8.8/networkx/algorithms/approximation/tests/test_dominating_set.py
   2022-11-01 18:28:05.000000000 +0100
@@ -1,3 +1,5 @@
+import pytest
+
 import networkx as nx
 from networkx.algorithms.approximation import (
     min_edge_dominating_set,
@@ -37,6 +39,11 @@
         G = nx.relabel_nodes(G, {0: 9, 9: 0})
         assert min_weighted_dominating_set(G) == {9}
 
+    def test_null_graph(self):
+        """Tests that the unique dominating set for the null graph is an empty 
set"""
+        G = nx.Graph()
+        assert min_weighted_dominating_set(G) == set()
+
     def test_min_edge_dominating_set(self):
         graph = nx.path_graph(5)
         dom_set = min_edge_dominating_set(graph)
@@ -65,3 +72,7 @@
                 for dom_edge in dom_set:
                     found |= u == dom_edge[0] or u == dom_edge[1]
                 assert found, "Non adjacent edge found!"
+
+        graph = nx.Graph()  # empty Networkx graph
+        with pytest.raises(ValueError, match="Expected non-empty NetworkX 
graph!"):
+            min_edge_dominating_set(graph)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/bipartite/tests/test_matching.py 
new/networkx-2.8.8/networkx/algorithms/bipartite/tests/test_matching.py
--- old/networkx-2.8.7/networkx/algorithms/bipartite/tests/test_matching.py     
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/bipartite/tests/test_matching.py     
2022-11-01 19:53:55.000000000 +0100
@@ -16,7 +16,7 @@
 class TestMatching:
     """Tests for bipartite matching algorithms."""
 
-    def setup(self):
+    def setup_method(self):
         """Creates a bipartite graph for use in testing matching algorithms.
 
         The bipartite graph has a maximum cardinality matching that leaves
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/centrality/tests/test_dispersion.py 
new/networkx-2.8.8/networkx/algorithms/centrality/tests/test_dispersion.py
--- old/networkx-2.8.7/networkx/algorithms/centrality/tests/test_dispersion.py  
2022-06-04 19:36:56.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/centrality/tests/test_dispersion.py  
2022-11-01 18:28:33.000000000 +0100
@@ -58,6 +58,13 @@
         assert len(disp_Gu) == len(G) - 1
         assert isinstance(disp_uv, float)
 
+    def test_dispersion_v_only(self):
+        G = small_ego_G()
+        disp_G_h = nx.dispersion(G, v="h", normalized=False)
+        disp_G_h_normalized = nx.dispersion(G, v="h", normalized=True)
+        assert disp_G_h == {"c": 0, "f": 0, "j": 0, "k": 0, "u": 4}
+        assert disp_G_h_normalized == {"c": 0.0, "f": 0.0, "j": 0.0, "k": 0.0, 
"u": 1.0}
+
     def test_impossible_things(self):
         G = nx.karate_club_graph()
         disp = nx.dispersion(G)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/centrality/tests/test_load_centrality.py 
new/networkx-2.8.8/networkx/algorithms/centrality/tests/test_load_centrality.py
--- 
old/networkx-2.8.7/networkx/algorithms/centrality/tests/test_load_centrality.py 
    2022-06-03 01:39:15.000000000 +0200
+++ 
new/networkx-2.8.8/networkx/algorithms/centrality/tests/test_load_centrality.py 
    2022-11-01 18:27:34.000000000 +0100
@@ -24,6 +24,7 @@
         cls.P3 = nx.path_graph(3)
         cls.P4 = nx.path_graph(4)
         cls.K5 = nx.complete_graph(5)
+        cls.P2 = nx.path_graph(2)
 
         cls.C4 = nx.cycle_graph(4)
         cls.T = nx.balanced_tree(r=2, h=2)
@@ -41,6 +42,13 @@
             assert result[n] == pytest.approx(b[n], abs=1e-3)
             assert result[n] == pytest.approx(nx.load_centrality(self.D, n), 
abs=1e-3)
 
+    def test_P2_normalized_load(self):
+        G = self.P2
+        c = nx.load_centrality(G, normalized=True)
+        d = {0: 0.000, 1: 0.000}
+        for n in sorted(G):
+            assert c[n] == pytest.approx(d[n], abs=1e-3)
+
     def test_weighted_load(self):
         b = nx.load_centrality(self.G, weight="weight", normalized=False)
         for n in sorted(self.G):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/community/tests/test_kclique.py 
new/networkx-2.8.8/networkx/algorithms/community/tests/test_kclique.py
--- old/networkx-2.8.7/networkx/algorithms/community/tests/test_kclique.py      
2021-05-31 22:28:22.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/community/tests/test_kclique.py      
2022-11-01 19:53:55.000000000 +0100
@@ -25,7 +25,7 @@
 
 
 class TestZacharyKarateClub:
-    def setup(self):
+    def setup_method(self):
         self.G = nx.karate_club_graph()
 
     def _check_communities(self, k, expected):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/connectivity/kcutsets.py 
new/networkx-2.8.8/networkx/algorithms/connectivity/kcutsets.py
--- old/networkx-2.8.7/networkx/algorithms/connectivity/kcutsets.py     
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/connectivity/kcutsets.py     
2022-11-01 18:29:08.000000000 +0100
@@ -39,9 +39,10 @@
         computed. Default value: None.
 
     flow_func : function
-        Function to perform the underlying flow computations. Default value
-        edmonds_karp. This function performs better in sparse graphs with
-        right tailed degree distributions. shortest_augmenting_path will
+        Function to perform the underlying flow computations. Default value is
+        :func:`~networkx.algorithms.flow.edmonds_karp`. This function performs
+        better in sparse graphs with right tailed degree distributions.
+        :func:`~networkx.algorithms.flow.shortest_augmenting_path` will
         perform better in denser graphs.
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/flow/tests/test_maxflow.py 
new/networkx-2.8.8/networkx/algorithms/flow/tests/test_maxflow.py
--- old/networkx-2.8.7/networkx/algorithms/flow/tests/test_maxflow.py   
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/flow/tests/test_maxflow.py   
2022-11-01 19:53:55.000000000 +0100
@@ -386,7 +386,7 @@
 
 
 class TestMaxFlowMinCutInterface:
-    def setup(self):
+    def setup_method(self):
         G = nx.DiGraph()
         G.add_edge("x", "a", capacity=3.0)
         G.add_edge("x", "b", capacity=1.0)
@@ -539,11 +539,20 @@
         assert k <= R.graph["flow_value"] <= (2 * k)
         R = edmonds_karp(G, "s", "t", cutoff=k)
         assert k <= R.graph["flow_value"] <= (2 * k)
+        R = dinitz(G, "s", "t", cutoff=k)
+        assert k <= R.graph["flow_value"] <= (2 * k)
+        R = boykov_kolmogorov(G, "s", "t", cutoff=k)
+        assert k <= R.graph["flow_value"] <= (2 * k)
 
     def test_complete_graph_cutoff(self):
         G = nx.complete_graph(5)
         nx.set_edge_attributes(G, {(u, v): 1 for u, v in G.edges()}, 
"capacity")
-        for flow_func in [shortest_augmenting_path, edmonds_karp]:
+        for flow_func in [
+            shortest_augmenting_path,
+            edmonds_karp,
+            dinitz,
+            boykov_kolmogorov,
+        ]:
             for cutoff in [3, 2, 1]:
                 result = nx.maximum_flow_value(
                     G, 0, 4, flow_func=flow_func, cutoff=cutoff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/isomorphism/tests/test_match_helpers.py 
new/networkx-2.8.8/networkx/algorithms/isomorphism/tests/test_match_helpers.py
--- 
old/networkx-2.8.7/networkx/algorithms/isomorphism/tests/test_match_helpers.py  
    2022-06-03 01:39:15.000000000 +0200
+++ 
new/networkx-2.8.8/networkx/algorithms/isomorphism/tests/test_match_helpers.py  
    2022-11-01 19:53:55.000000000 +0100
@@ -11,7 +11,7 @@
 
 
 class TestGenericMultiEdgeMatch:
-    def setup(self):
+    def setup_method(self):
         self.G1 = nx.MultiDiGraph()
         self.G2 = nx.MultiDiGraph()
         self.G3 = nx.MultiDiGraph()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/shortest_paths/tests/test_unweighted.py 
new/networkx-2.8.8/networkx/algorithms/shortest_paths/tests/test_unweighted.py
--- 
old/networkx-2.8.7/networkx/algorithms/shortest_paths/tests/test_unweighted.py  
    2021-05-31 22:28:22.000000000 +0200
+++ 
new/networkx-2.8.8/networkx/algorithms/shortest_paths/tests/test_unweighted.py  
    2022-11-01 18:28:42.000000000 +0100
@@ -1,3 +1,5 @@
+import pytest
+
 import networkx as nx
 
 
@@ -32,6 +34,24 @@
             4, 4, 1, 12, nx.bidirectional_shortest_path(self.grid, 1, 12)
         )
         assert nx.bidirectional_shortest_path(self.directed_cycle, 0, 3) == 
[0, 1, 2, 3]
+        # test source = target
+        assert nx.bidirectional_shortest_path(self.cycle, 3, 3) == [3]
+
+    @pytest.mark.parametrize(
+        ("src", "tgt"),
+        (
+            (8, 3),  # source not in graph
+            (3, 8),  # target not in graph
+            (8, 10),  # neither source nor target in graph
+            (8, 8),  # src == tgt, neither in graph - tests order of input 
checks
+        ),
+    )
+    def test_bidirectional_shortest_path_src_tgt_not_in_graph(self, src, tgt):
+        with pytest.raises(
+            nx.NodeNotFound,
+            match=f"Either source {src} or target {tgt} is not in G",
+        ):
+            nx.bidirectional_shortest_path(self.cycle, src, tgt)
 
     def test_shortest_path_length(self):
         assert nx.shortest_path_length(self.cycle, 0, 3) == 3
@@ -64,6 +84,10 @@
         assert p[3] == [3, 2, 1, 0]
         p = nx.single_target_shortest_path(self.cycle, 0, cutoff=0)
         assert p == {0: [0]}
+        # test missing targets
+        target = 8
+        with pytest.raises(nx.NodeNotFound, match=f"Target {target} not in G"):
+            nx.single_target_shortest_path(self.cycle, target)
 
     def test_single_target_shortest_path_length(self):
         pl = nx.single_target_shortest_path_length
@@ -71,6 +95,10 @@
         assert dict(pl(self.cycle, 0)) == lengths
         lengths = {0: 0, 1: 6, 2: 5, 3: 4, 4: 3, 5: 2, 6: 1}
         assert dict(pl(self.directed_cycle, 0)) == lengths
+        # test missing targets
+        target = 8
+        with pytest.raises(nx.NodeNotFound, match=f"Target {target} is not in 
G"):
+            nx.single_target_shortest_path_length(self.cycle, target)
 
     def test_all_pairs_shortest_path(self):
         p = dict(nx.all_pairs_shortest_path(self.cycle))
@@ -114,3 +142,8 @@
         p, s = nx.predecessor(G, 0, 3, cutoff=2, return_seen=True)
         assert p == []
         assert s == -1
+
+    def test_predecessor_missing_source(self):
+        source = 8
+        with pytest.raises(nx.NodeNotFound, match=f"Source {source} not in G"):
+            nx.predecessor(self.cycle, source)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/shortest_paths/tests/test_weighted.py 
new/networkx-2.8.8/networkx/algorithms/shortest_paths/tests/test_weighted.py
--- 
old/networkx-2.8.7/networkx/algorithms/shortest_paths/tests/test_weighted.py    
    2022-03-29 16:02:47.000000000 +0200
+++ 
new/networkx-2.8.8/networkx/algorithms/shortest_paths/tests/test_weighted.py    
    2022-11-01 19:53:55.000000000 +0100
@@ -36,7 +36,7 @@
 
     """
 
-    def setup(self):
+    def setup_method(self):
         """Creates some graphs for use in the unit tests."""
         cnlti = nx.convert_node_labels_to_integers
         self.grid = cnlti(nx.grid_2d_graph(4, 4), first_label=1, 
ordering="sorted")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tests/test_covering.py 
new/networkx-2.8.8/networkx/algorithms/tests/test_covering.py
--- old/networkx-2.8.7/networkx/algorithms/tests/test_covering.py       
2022-04-25 23:17:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/tests/test_covering.py       
2022-11-01 18:28:55.000000000 +0100
@@ -1,3 +1,5 @@
+import pytest
+
 import networkx as nx
 
 
@@ -13,6 +15,15 @@
         G.add_edge(0, 0)
         assert nx.min_edge_cover(G) == {(0, 0)}
 
+    def test_graph_with_isolated_v(self):
+        G = nx.Graph()
+        G.add_node(1)
+        with pytest.raises(
+            nx.NetworkXException,
+            match="Graph has a node with no edge incident on it, so no edge 
cover exists.",
+        ):
+            nx.min_edge_cover(G)
+
     def test_graph_single_edge(self):
         G = nx.Graph([(0, 1)])
         assert nx.min_edge_cover(G) in ({(0, 1)}, {(1, 0)})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tests/test_cycles.py 
new/networkx-2.8.8/networkx/algorithms/tests/test_cycles.py
--- old/networkx-2.8.7/networkx/algorithms/tests/test_cycles.py 2022-06-03 
01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/tests/test_cycles.py 2022-11-01 
18:29:04.000000000 +0100
@@ -50,6 +50,15 @@
             G = nx.MultiGraph()
             cy = networkx.cycle_basis(G, 0)
 
+    def test_cycle_basis_self_loop(self):
+        """Tests the function for graphs with self loops"""
+        G = nx.Graph()
+        nx.add_cycle(G, [0, 1, 2, 3])
+        nx.add_cycle(G, [0, 0, 6, 2])
+        cy = nx.cycle_basis(G)
+        sort_cy = sorted(sorted(c) for c in cy)
+        assert sort_cy == [[0], [0, 1, 2], [0, 2, 3], [0, 2, 6]]
+
     def test_simple_cycles(self):
         edges = [(0, 0), (0, 1), (0, 2), (1, 2), (2, 0), (2, 1), (2, 2)]
         G = nx.DiGraph(edges)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tests/test_lowest_common_ancestors.py 
new/networkx-2.8.8/networkx/algorithms/tests/test_lowest_common_ancestors.py
--- 
old/networkx-2.8.7/networkx/algorithms/tests/test_lowest_common_ancestors.py    
    2022-08-21 19:03:33.000000000 +0200
+++ 
new/networkx-2.8.8/networkx/algorithms/tests/test_lowest_common_ancestors.py    
    2022-11-01 18:28:51.000000000 +0100
@@ -51,39 +51,33 @@
         for (a, b) in ((min(pair), max(pair)) for pair in chain(d1, d2)):
             assert get_pair(d1, a, b) == get_pair(d2, a, b)
 
-    def test_tree_all_pairs_lowest_common_ancestor1(self):
-        """Specifying the root is optional."""
+    def test_tree_all_pairs_lca_default_root(self):
         assert dict(tree_all_pairs_lca(self.DG)) == self.ans
 
-    def test_tree_all_pairs_lowest_common_ancestor2(self):
-        """Specifying only some pairs gives only those pairs."""
+    def test_tree_all_pairs_lca_return_subset(self):
         test_pairs = [(0, 1), (0, 1), (1, 0)]
         ans = dict(tree_all_pairs_lca(self.DG, 0, test_pairs))
         assert (0, 1) in ans and (1, 0) in ans
         assert len(ans) == 2
 
-    def test_tree_all_pairs_lowest_common_ancestor3(self):
-        """Specifying no pairs same as specifying all."""
+    def test_tree_all_pairs_lca(self):
         all_pairs = chain(combinations(self.DG, 2), ((node, node) for node in 
self.DG))
 
         ans = dict(tree_all_pairs_lca(self.DG, 0, all_pairs))
         self.assert_has_same_pairs(ans, self.ans)
 
-    def test_tree_all_pairs_lowest_common_ancestor4(self):
-        """Gives the right answer."""
+    def test_tree_all_pairs_gold_example(self):
         ans = dict(tree_all_pairs_lca(self.DG))
         self.assert_has_same_pairs(self.gold, ans)
 
-    def test_tree_all_pairs_lowest_common_ancestor5(self):
-        """Handles invalid input correctly."""
+    def test_tree_all_pairs_lca_invalid_input(self):
         empty_digraph = tree_all_pairs_lca(nx.DiGraph())
         pytest.raises(nx.NetworkXPointlessConcept, list, empty_digraph)
 
         bad_pairs_digraph = tree_all_pairs_lca(self.DG, pairs=[(-1, -2)])
         pytest.raises(nx.NodeNotFound, list, bad_pairs_digraph)
 
-    def test_tree_all_pairs_lowest_common_ancestor6(self):
-        """Works on subtrees."""
+    def test_tree_all_pairs_lca_subtrees(self):
         ans = dict(tree_all_pairs_lca(self.DG, 1))
         gold = {
             pair: lca
@@ -92,8 +86,7 @@
         }
         self.assert_has_same_pairs(gold, ans)
 
-    def test_tree_all_pairs_lowest_common_ancestor7(self):
-        """Works on disconnected nodes."""
+    def test_tree_all_pairs_lca_disconnected_nodes(self):
         G = nx.DiGraph()
         G.add_node(1)
         assert {(1, 1): 1} == dict(tree_all_pairs_lca(G))
@@ -104,8 +97,7 @@
 
         pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G))
 
-    def test_tree_all_pairs_lowest_common_ancestor8(self):
-        """Raises right errors if not a tree."""
+    def test_tree_all_pairs_lca_error_if_input_not_tree(self):
         # Cycle
         G = nx.DiGraph([(1, 2), (2, 1)])
         pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G))
@@ -113,27 +105,24 @@
         G = nx.DiGraph([(0, 2), (1, 2)])
         pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G))
 
-    def test_tree_all_pairs_lowest_common_ancestor9(self):
-        """Test that pairs works correctly as a generator."""
+    def test_tree_all_pairs_lca_generator(self):
         pairs = iter([(0, 1), (0, 1), (1, 0)])
         some_pairs = dict(tree_all_pairs_lca(self.DG, 0, pairs))
         assert (0, 1) in some_pairs and (1, 0) in some_pairs
         assert len(some_pairs) == 2
 
-    def test_tree_all_pairs_lowest_common_ancestor10(self):
-        """Test that pairs not in the graph raises error."""
+    def test_tree_all_pairs_lca_nonexisting_pairs_exception(self):
         lca = tree_all_pairs_lca(self.DG, 0, [(-1, -1)])
         pytest.raises(nx.NodeNotFound, list, lca)
         # check if node is None
         lca = tree_all_pairs_lca(self.DG, None, [(-1, -1)])
         pytest.raises(nx.NodeNotFound, list, lca)
 
-    def test_tree_all_pairs_lowest_common_ancestor12(self):
-        """Test that tree routine bails on DAGs."""
+    def test_tree_all_pairs_lca_routine_bails_on_DAGs(self):
         G = nx.DiGraph([(3, 4), (5, 4)])
         pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G))
 
-    def test_not_implemented_for(self):
+    def test_tree_all_pairs_lca_not_implemented(self):
         NNI = nx.NetworkXNotImplemented
         G = nx.Graph([(0, 1)])
         with pytest.raises(NNI):
@@ -154,8 +143,7 @@
             next(all_pairs_lca(G))
         pytest.raises(NNI, nx.lowest_common_ancestor, G, 0, 1)
 
-    def test_tree_all_pairs_lowest_common_ancestor13(self):
-        """Test that it works on non-empty trees with no LCAs."""
+    def test_tree_all_pairs_lca_trees_without_LCAs(self):
         G = nx.DiGraph()
         G.add_node(3)
         ans = list(tree_all_pairs_lca(G))
@@ -232,24 +220,20 @@
                 root_distance[get_pair(d1, a, b)] == 
root_distance[get_pair(d2, a, b)]
             )
 
-    def test_all_pairs_lowest_common_ancestor1(self):
-        """Produces the correct results."""
+    def test_all_pairs_lca_gold_example(self):
         self.assert_lca_dicts_same(dict(all_pairs_lca(self.DG)), self.gold)
 
-    def test_all_pairs_lowest_common_ancestor2(self):
-        """Produces the correct results when all pairs given."""
+    def test_all_pairs_lca_all_pairs_given(self):
         all_pairs = list(product(self.DG.nodes(), self.DG.nodes()))
         ans = all_pairs_lca(self.DG, pairs=all_pairs)
         self.assert_lca_dicts_same(dict(ans), self.gold)
 
-    def test_all_pairs_lowest_common_ancestor3(self):
-        """Produces the correct results when all pairs given as a generator."""
+    def test_all_pairs_lca_generator(self):
         all_pairs = product(self.DG.nodes(), self.DG.nodes())
         ans = all_pairs_lca(self.DG, pairs=all_pairs)
         self.assert_lca_dicts_same(dict(ans), self.gold)
 
-    def test_all_pairs_lowest_common_ancestor4(self):
-        """Graph with two roots."""
+    def test_all_pairs_lca_input_graph_with_two_roots(self):
         G = self.DG.copy()
         G.add_edge(9, 10)
         G.add_edge(9, 4)
@@ -268,52 +252,43 @@
         G.add_edge(-1, 0)
         self.assert_lca_dicts_same(testing, gold, G)
 
-    def test_all_pairs_lowest_common_ancestor5(self):
-        """Test that pairs not in the graph raises error."""
+    def test_all_pairs_lca_nonexisting_pairs_exception(self):
         pytest.raises(nx.NodeNotFound, all_pairs_lca, self.DG, [(-1, -1)])
 
-    def test_all_pairs_lowest_common_ancestor6(self):
-        """Test that pairs with no LCA specified emits nothing."""
+    def test_all_pairs_lca_pairs_without_lca(self):
         G = self.DG.copy()
         G.add_node(-1)
         gen = all_pairs_lca(G, [(-1, -1), (-1, 0)])
         assert dict(gen) == {(-1, -1): -1}
 
-    def test_all_pairs_lowest_common_ancestor7(self):
-        """Test that LCA on null graph bails."""
+    def test_all_pairs_lca_null_graph(self):
         pytest.raises(nx.NetworkXPointlessConcept, all_pairs_lca, nx.DiGraph())
 
-    def test_all_pairs_lowest_common_ancestor8(self):
-        """Test that LCA on non-dags bails."""
+    def test_all_pairs_lca_non_dags(self):
         pytest.raises(nx.NetworkXError, all_pairs_lca, nx.DiGraph([(3, 4), (4, 
3)]))
 
-    def test_all_pairs_lowest_common_ancestor9(self):
-        """Test that it works on non-empty graphs with no LCAs."""
+    def test_all_pairs_lca_nonempty_graph_without_lca(self):
         G = nx.DiGraph()
         G.add_node(3)
         ans = list(all_pairs_lca(G))
         assert ans == [((3, 3), 3)]
 
-    def test_all_pairs_lowest_common_ancestor10(self):
-        """Test that it works on a small graph that previously revealed a bug 
gh-4942"""
+    def test_all_pairs_lca_bug_gh4942(self):
         G = nx.DiGraph([(0, 2), (1, 2), (2, 3)])
         ans = list(all_pairs_lca(G))
         assert len(ans) == 9
 
-    def test_lowest_common_ancestor1(self):
-        """Test that the one-pair function works on default."""
+    def test_all_pairs_lca_default_kwarg(self):
         G = nx.DiGraph([(0, 1), (2, 1)])
         sentinel = object()
         assert nx.lowest_common_ancestor(G, 0, 2, default=sentinel) is sentinel
 
-    def test_lowest_common_ancestor2(self):
-        """Test that the one-pair function works on identity."""
+    def test_all_pairs_lca_identity(self):
         G = nx.DiGraph()
         G.add_node(3)
         assert nx.lowest_common_ancestor(G, 3, 3) == 3
 
-    def test_naive_lowest_common_ancestor1(self):
-        """Test that the one-pair function works for issue #4574."""
+    def test_all_pairs_lca_issue_4574(self):
         G = nx.DiGraph()
         G.add_nodes_from(range(17))
         G.add_edges_from(
@@ -339,8 +314,7 @@
 
         assert nx.lowest_common_ancestor(G, 7, 9) == None
 
-    def test_naive_lowest_common_ancestor2(self):
-        """Test that the one-pair function works for issue #4942."""
+    def test_all_pairs_lca_one_pair_gh4942(self):
         G = nx.DiGraph()
         G.add_edge(0, 1)
         G.add_edge(2, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tests/test_matching.py 
new/networkx-2.8.8/networkx/algorithms/tests/test_matching.py
--- old/networkx-2.8.7/networkx/algorithms/tests/test_matching.py       
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/tests/test_matching.py       
2022-11-01 19:53:50.000000000 +0100
@@ -450,7 +450,7 @@
         assert not nx.is_matching(G, {(0, 0), (1, 2), (2, 3)})
         # selfloop edge in G
         G.add_edge(0, 0)
-        assert not nx.is_matching(G, {(0, 0), (1, 2), (2, 3)})
+        assert not nx.is_matching(G, {(0, 0), (1, 2)})
 
     def test_invalid_matching(self):
         G = nx.path_graph(4)
@@ -476,6 +476,16 @@
         G = nx.path_graph(4)
         assert nx.is_maximal_matching(G, {0: 1, 1: 0, 2: 3, 3: 2})
 
+    def test_invalid_input(self):
+        error = nx.NetworkXError
+        G = nx.path_graph(4)
+        # edge to node not in G
+        raises(error, nx.is_maximal_matching, G, {(0, 5)})
+        raises(error, nx.is_maximal_matching, G, {(5, 0)})
+        # edge not a 2-tuple
+        raises(error, nx.is_maximal_matching, G, {(0, 1, 2), (2, 3)})
+        raises(error, nx.is_maximal_matching, G, {(0,), (2, 3)})
+
     def test_valid(self):
         G = nx.path_graph(4)
         assert nx.is_maximal_matching(G, {(0, 1), (2, 3)})
@@ -483,6 +493,9 @@
     def test_not_matching(self):
         G = nx.path_graph(4)
         assert not nx.is_maximal_matching(G, {(0, 1), (1, 2), (2, 3)})
+        assert not nx.is_maximal_matching(G, {(0, 3)})
+        G.add_edge(0, 0)
+        assert not nx.is_maximal_matching(G, {(0, 0)})
 
     def test_not_maximal(self):
         G = nx.path_graph(4)
@@ -511,8 +524,30 @@
 
         assert nx.is_perfect_matching(G, {(1, 4), (0, 3), (5, 2)})
 
+    def test_invalid_input(self):
+        error = nx.NetworkXError
+        G = nx.path_graph(4)
+        # edge to node not in G
+        raises(error, nx.is_perfect_matching, G, {(0, 5)})
+        raises(error, nx.is_perfect_matching, G, {(5, 0)})
+        # edge not a 2-tuple
+        raises(error, nx.is_perfect_matching, G, {(0, 1, 2), (2, 3)})
+        raises(error, nx.is_perfect_matching, G, {(0,), (2, 3)})
+
+    def test_selfloops(self):
+        error = nx.NetworkXError
+        G = nx.path_graph(4)
+        # selfloop for node not in G
+        raises(error, nx.is_perfect_matching, G, {(5, 5), (2, 3)})
+        # selfloop edge not in G
+        assert not nx.is_perfect_matching(G, {(0, 0), (1, 2), (2, 3)})
+        # selfloop edge in G
+        G.add_edge(0, 0)
+        assert not nx.is_perfect_matching(G, {(0, 0), (1, 2)})
+
     def test_not_matching(self):
         G = nx.path_graph(4)
+        assert not nx.is_perfect_matching(G, {(0, 3)})
         assert not nx.is_perfect_matching(G, {(0, 1), (1, 2), (2, 3)})
 
     def test_maximal_but_not_perfect(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tests/test_richclub.py 
new/networkx-2.8.8/networkx/algorithms/tests/test_richclub.py
--- old/networkx-2.8.7/networkx/algorithms/tests/test_richclub.py       
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/tests/test_richclub.py       
2022-11-01 18:27:51.000000000 +0100
@@ -80,6 +80,17 @@
         nx.rich_club_coefficient(G)
 
 
+def test_rich_club_selfloop():
+    G = nx.Graph()  # or DiGraph, MultiGraph, MultiDiGraph, etc
+    G.add_edge(1, 1)  # self loop
+    G.add_edge(1, 2)
+    with pytest.raises(
+        Exception,
+        match="rich_club_coefficient is not implemented for " "graphs with 
self loops.",
+    ):
+        nx.rich_club_coefficient(G)
+
+
 # def test_richclub2_normalized():
 #    T = nx.balanced_tree(2,10)
 #    rcNorm = nx.richclub.rich_club_coefficient(T,Q=2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tests/test_structuralholes.py 
new/networkx-2.8.8/networkx/algorithms/tests/test_structuralholes.py
--- old/networkx-2.8.7/networkx/algorithms/tests/test_structuralholes.py        
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/tests/test_structuralholes.py        
2022-11-01 19:53:55.000000000 +0100
@@ -18,7 +18,7 @@
 
     """
 
-    def setup(self):
+    def setup_method(self):
         self.D = nx.DiGraph()
         self.D.add_edges_from([(0, 1), (0, 2), (1, 0), (2, 1)])
         self.D_weights = {(0, 1): 2, (0, 2): 2, (1, 0): 1, (2, 1): 1}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/algorithms/tree/tests/test_mst.py 
new/networkx-2.8.8/networkx/algorithms/tree/tests/test_mst.py
--- old/networkx-2.8.7/networkx/algorithms/tree/tests/test_mst.py       
2022-06-08 18:11:41.000000000 +0200
+++ new/networkx-2.8.8/networkx/algorithms/tree/tests/test_mst.py       
2022-11-01 19:53:55.000000000 +0100
@@ -283,7 +283,7 @@
     Order of Increasing Cost
     """
 
-    def setup(self):
+    def setup_method(self):
         # Original Graph
         edges = [(0, 1, 5), (1, 2, 4), (1, 4, 6), (2, 3, 5), (2, 4, 7), (3, 4, 
3)]
         self.G = nx.Graph()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/classes/tests/test_coreviews.py 
new/networkx-2.8.8/networkx/classes/tests/test_coreviews.py
--- old/networkx-2.8.7/networkx/classes/tests/test_coreviews.py 2022-09-30 
18:57:13.000000000 +0200
+++ new/networkx-2.8.8/networkx/classes/tests/test_coreviews.py 2022-11-01 
19:53:55.000000000 +0100
@@ -7,7 +7,7 @@
 
 class TestAtlasView:
     # node->data
-    def setup(self):
+    def setup_method(self):
         self.d = {0: {"color": "blue", "weight": 1.2}, 1: {}, 2: {"color": 1}}
         self.av = nx.classes.coreviews.AtlasView(self.d)
 
@@ -62,7 +62,7 @@
 
 class TestAdjacencyView:
     # node->nbr->data
-    def setup(self):
+    def setup_method(self):
         dd = {"color": "blue", "weight": 1.2}
         self.nd = {0: dd, 1: {}, 2: {"color": 1}}
         self.adj = {3: self.nd, 0: {3: dd}, 1: {}, 2: {3: {"color": 1}}}
@@ -114,7 +114,7 @@
 
 class TestMultiAdjacencyView(TestAdjacencyView):
     # node->nbr->key->data
-    def setup(self):
+    def setup_method(self):
         dd = {"color": "blue", "weight": 1.2}
         self.kd = {0: dd, 1: {}, 2: {"color": 1}}
         self.nd = {3: self.kd, 0: {3: dd}, 1: {0: {}}, 2: {3: {"color": 1}}}
@@ -143,7 +143,7 @@
 
 class TestUnionAtlas:
     # node->data
-    def setup(self):
+    def setup_method(self):
         self.s = {0: {"color": "blue", "weight": 1.2}, 1: {}, 2: {"color": 1}}
         self.p = {3: {"color": "blue", "weight": 1.2}, 4: {}, 2: {"watch": 2}}
         self.av = nx.classes.coreviews.UnionAtlas(self.s, self.p)
@@ -199,7 +199,7 @@
 
 class TestUnionAdjacency:
     # node->nbr->data
-    def setup(self):
+    def setup_method(self):
         dd = {"color": "blue", "weight": 1.2}
         self.nd = {0: dd, 1: {}, 2: {"color": 1}}
         self.s = {3: self.nd, 0: {}, 1: {}, 2: {3: {"color": 1}}}
@@ -249,7 +249,7 @@
 
 class TestUnionMultiInner(TestUnionAdjacency):
     # nbr->key->data
-    def setup(self):
+    def setup_method(self):
         dd = {"color": "blue", "weight": 1.2}
         self.kd = {7: {}, "ekey": {}, 9: {"color": 1}}
         self.s = {3: self.kd, 0: {7: dd}, 1: {}, 2: {"key": {"color": 1}}}
@@ -284,7 +284,7 @@
 
 class TestUnionMultiAdjacency(TestUnionAdjacency):
     # node->nbr->key->data
-    def setup(self):
+    def setup_method(self):
         dd = {"color": "blue", "weight": 1.2}
         self.kd = {7: {}, 8: {}, 9: {"color": 1}}
         self.nd = {3: self.kd, 0: {9: dd}, 1: {8: {}}, 2: {9: {"color": 1}}}
@@ -314,7 +314,7 @@
 
 
 class TestFilteredGraphs:
-    def setup(self):
+    def setup_method(self):
         self.Graphs = [nx.Graph, nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph]
 
     def test_hide_show_nodes(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/classes/tests/test_digraph.py 
new/networkx-2.8.8/networkx/classes/tests/test_digraph.py
--- old/networkx-2.8.7/networkx/classes/tests/test_digraph.py   2022-07-18 
22:43:59.000000000 +0200
+++ new/networkx-2.8.8/networkx/classes/tests/test_digraph.py   2022-11-01 
18:28:29.000000000 +0100
@@ -244,6 +244,8 @@
         assert G.adj == {0: {1: {}}, 1: {}}
         assert G.succ == {0: {1: {}}, 1: {}}
         assert G.pred == {0: {}, 1: {0: {}}}
+        with pytest.raises(ValueError, match="None cannot be a node"):
+            G.add_edge(None, 3)
 
     def test_add_edges_from(self):
         G = self.Graph()
@@ -258,6 +260,8 @@
             G.add_edges_from([(0, 1, 2, 3)])  # too many in tuple
         with pytest.raises(TypeError):
             G.add_edges_from([0])  # not a tuple
+        with pytest.raises(ValueError, match="None cannot be a node"):
+            G.add_edges_from([(None, 3), (3, 2)])
 
     def test_remove_edge(self):
         G = self.K3.copy()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx/classes/tests/test_graph.py 
new/networkx-2.8.8/networkx/classes/tests/test_graph.py
--- old/networkx-2.8.7/networkx/classes/tests/test_graph.py     2022-08-21 
18:29:48.000000000 +0200
+++ new/networkx-2.8.8/networkx/classes/tests/test_graph.py     2022-11-01 
18:28:10.000000000 +0100
@@ -683,6 +683,9 @@
         G = self.Graph()
         G.add_edge(*(0, 1))
         assert G.adj == {0: {1: {}}, 1: {0: {}}}
+        G = self.Graph()
+        with pytest.raises(ValueError):
+            G.add_edge(None, "anything")
 
     def test_add_edges_from(self):
         G = self.Graph()
@@ -706,6 +709,8 @@
             G.add_edges_from([(0, 1, 2, 3)])  # too many in tuple
         with pytest.raises(TypeError):
             G.add_edges_from([0])  # not a tuple
+        with pytest.raises(ValueError):
+            G.add_edges_from([(None, 3), (3, 2)])  # None cannot be a node
 
     def test_remove_edge(self):
         G = self.K3.copy()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/classes/tests/test_graphviews.py 
new/networkx-2.8.8/networkx/classes/tests/test_graphviews.py
--- old/networkx-2.8.7/networkx/classes/tests/test_graphviews.py        
2022-09-30 18:57:13.000000000 +0200
+++ new/networkx-2.8.8/networkx/classes/tests/test_graphviews.py        
2022-11-01 19:53:55.000000000 +0100
@@ -7,7 +7,7 @@
 
 
 class TestReverseView:
-    def setup(self):
+    def setup_method(self):
         self.G = nx.path_graph(9, create_using=nx.DiGraph())
         self.rv = nx.reverse_view(self.G)
 
@@ -55,7 +55,7 @@
 
 
 class TestMultiReverseView:
-    def setup(self):
+    def setup_method(self):
         self.G = nx.path_graph(9, create_using=nx.MultiDiGraph())
         self.G.add_edge(4, 5)
         self.rv = nx.reverse_view(self.G)
@@ -98,7 +98,7 @@
 
 
 class TestToDirected:
-    def setup(self):
+    def setup_method(self):
         self.G = nx.path_graph(9)
         self.dv = nx.to_directed(self.G)
         self.MG = nx.path_graph(9, create_using=nx.MultiGraph())
@@ -137,7 +137,7 @@
 
 
 class TestToUndirected:
-    def setup(self):
+    def setup_method(self):
         self.DG = nx.path_graph(9, create_using=nx.DiGraph())
         self.uv = nx.to_undirected(self.DG)
         self.MDG = nx.path_graph(9, create_using=nx.MultiDiGraph())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/classes/tests/test_multidigraph.py 
new/networkx-2.8.8/networkx/classes/tests/test_multidigraph.py
--- old/networkx-2.8.7/networkx/classes/tests/test_multidigraph.py      
2022-07-18 22:43:59.000000000 +0200
+++ new/networkx-2.8.8/networkx/classes/tests/test_multidigraph.py      
2022-11-01 18:28:24.000000000 +0100
@@ -285,6 +285,8 @@
         assert G._adj == {0: {1: {0: {}}}, 1: {}}
         assert G._succ == {0: {1: {0: {}}}, 1: {}}
         assert G._pred == {0: {}, 1: {0: {0: {}}}}
+        with pytest.raises(ValueError, match="None cannot be a node"):
+            G.add_edge(None, 3)
 
     def test_add_edges_from(self):
         G = self.Graph()
@@ -321,6 +323,8 @@
         pytest.raises(nx.NetworkXError, G.add_edges_from, [(0, 1, 2, 3, 4)])
         # not a tuple
         pytest.raises(TypeError, G.add_edges_from, [0])
+        with pytest.raises(ValueError, match="None cannot be a node"):
+            G.add_edges_from([(None, 3), (3, 2)])
 
     def test_remove_edge(self):
         G = self.K3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/classes/tests/test_multigraph.py 
new/networkx-2.8.8/networkx/classes/tests/test_multigraph.py
--- old/networkx-2.8.7/networkx/classes/tests/test_multigraph.py        
2022-07-18 22:43:59.000000000 +0200
+++ new/networkx-2.8.8/networkx/classes/tests/test_multigraph.py        
2022-11-01 18:28:01.000000000 +0100
@@ -303,6 +303,9 @@
         G = self.Graph()
         G.add_edge(*(0, 1))
         assert G.adj == {0: {1: {0: {}}}, 1: {0: {0: {}}}}
+        G = self.Graph()
+        with pytest.raises(ValueError):
+            G.add_edge(None, "anything")
 
     def test_add_edge_conflicting_key(self):
         G = self.Graph()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx/drawing/tests/test_pylab.py 
new/networkx-2.8.8/networkx/drawing/tests/test_pylab.py
--- old/networkx-2.8.7/networkx/drawing/tests/test_pylab.py     2022-06-03 
01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/drawing/tests/test_pylab.py     2022-11-01 
19:53:50.000000000 +0100
@@ -485,18 +485,19 @@
 
 def test_alpha_iter():
     pos = nx.random_layout(barbell)
+    fig = plt.figure()
     # with fewer alpha elements than nodes
-    plt.subplot(131)
+    fig.add_subplot(131)  # Each test in a new axis object
     nx.draw_networkx_nodes(barbell, pos, alpha=[0.1, 0.2])
     # with equal alpha elements and nodes
     num_nodes = len(barbell.nodes)
     alpha = [x / num_nodes for x in range(num_nodes)]
     colors = range(num_nodes)
-    plt.subplot(132)
+    fig.add_subplot(132)
     nx.draw_networkx_nodes(barbell, pos, node_color=colors, alpha=alpha)
     # with more alpha elements than nodes
     alpha.append(1)
-    plt.subplot(133)
+    fig.add_subplot(133)
     nx.draw_networkx_nodes(barbell, pos, alpha=alpha)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/generators/tests/test_expanders.py 
new/networkx-2.8.8/networkx/generators/tests/test_expanders.py
--- old/networkx-2.8.7/networkx/generators/tests/test_expanders.py      
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/generators/tests/test_expanders.py      
2022-11-01 18:27:41.000000000 +0100
@@ -5,69 +5,83 @@
 import pytest
 
 import networkx as nx
-from networkx import adjacency_matrix, number_of_nodes
-from networkx.generators.expanders import (
-    chordal_cycle_graph,
-    margulis_gabber_galil_graph,
-    paley_graph,
-)
-
-
-def test_margulis_gabber_galil_graph():
-    for n in 2, 3, 5, 6, 10:
-        g = margulis_gabber_galil_graph(n)
-        assert number_of_nodes(g) == n * n
-        for node in g:
-            assert g.degree(node) == 8
-            assert len(node) == 2
-            for i in node:
-                assert int(i) == i
-                assert 0 <= i < n
 
+
+@pytest.mark.parametrize("n", (2, 3, 5, 6, 10))
+def test_margulis_gabber_galil_graph_properties(n):
+    g = nx.margulis_gabber_galil_graph(n)
+    assert g.number_of_nodes() == n * n
+    for node in g:
+        assert g.degree(node) == 8
+        assert len(node) == 2
+        for i in node:
+            assert int(i) == i
+            assert 0 <= i < n
+
+
+@pytest.mark.parametrize("n", (2, 3, 5, 6, 10))
+def test_margulis_gabber_galil_graph_eigvals(n):
     np = pytest.importorskip("numpy")
     sp = pytest.importorskip("scipy")
     import scipy.linalg
 
+    g = nx.margulis_gabber_galil_graph(n)
     # Eigenvalues are already sorted using the scipy eigvalsh,
     # but the implementation in numpy does not guarantee order.
-    w = sorted(sp.linalg.eigvalsh(adjacency_matrix(g).A))
+    w = sorted(sp.linalg.eigvalsh(nx.adjacency_matrix(g).toarray()))
     assert w[-2] < 5 * np.sqrt(2)
 
 
-def test_chordal_cycle_graph():
+@pytest.mark.parametrize("p", (3, 5, 7, 11))  # Primes
+def test_chordal_cycle_graph(p):
     """Test for the :func:`networkx.chordal_cycle_graph` function."""
-    primes = [3, 5, 7, 11]
-    for p in primes:
-        G = chordal_cycle_graph(p)
-        assert len(G) == p
-        # TODO The second largest eigenvalue should be smaller than a constant,
-        # independent of the number of nodes in the graph:
-        #
-        #     eigs = sorted(sp.linalg.eigvalsh(adjacency_matrix(G).A))
-        #     assert_less(eigs[-2], ...)
-        #
+    G = nx.chordal_cycle_graph(p)
+    assert len(G) == p
+    # TODO The second largest eigenvalue should be smaller than a constant,
+    # independent of the number of nodes in the graph:
+    #
+    #     eigs = sorted(sp.linalg.eigvalsh(nx.adjacency_matrix(G).toarray()))
+    #     assert_less(eigs[-2], ...)
+    #
 
 
-def test_paley_graph():
+@pytest.mark.parametrize("p", (3, 5, 7, 11, 13))  # Primes
+def test_paley_graph(p):
     """Test for the :func:`networkx.paley_graph` function."""
-    primes = [3, 5, 7, 11, 13]
-    for p in primes:
-        G = paley_graph(p)
-        # G has p nodes
-        assert len(G) == p
-        # G is (p-1)/2-regular
-        in_degrees = {G.in_degree(node) for node in G.nodes}
-        out_degrees = {G.out_degree(node) for node in G.nodes}
-        assert len(in_degrees) == 1 and in_degrees.pop() == (p - 1) // 2
-        assert len(out_degrees) == 1 and out_degrees.pop() == (p - 1) // 2
-
-        # If p = 1 mod 4, -1 is a square mod 4 and therefore the
-        # edge in the Paley graph are symmetric.
-        if p % 4 == 1:
-            for (u, v) in G.edges:
-                assert (v, u) in G.edges
-
-
-def test_margulis_gabber_galil_graph_badinput():
-    pytest.raises(nx.NetworkXError, margulis_gabber_galil_graph, 3, 
nx.DiGraph())
-    pytest.raises(nx.NetworkXError, margulis_gabber_galil_graph, 3, nx.Graph())
+    G = nx.paley_graph(p)
+    # G has p nodes
+    assert len(G) == p
+    # G is (p-1)/2-regular
+    in_degrees = {G.in_degree(node) for node in G.nodes}
+    out_degrees = {G.out_degree(node) for node in G.nodes}
+    assert len(in_degrees) == 1 and in_degrees.pop() == (p - 1) // 2
+    assert len(out_degrees) == 1 and out_degrees.pop() == (p - 1) // 2
+
+    # If p = 1 mod 4, -1 is a square mod 4 and therefore the
+    # edge in the Paley graph are symmetric.
+    if p % 4 == 1:
+        for (u, v) in G.edges:
+            assert (v, u) in G.edges
+
+
+@pytest.mark.parametrize("graph_type", (nx.Graph, nx.DiGraph, nx.MultiDiGraph))
+def test_margulis_gabber_galil_graph_badinput(graph_type):
+    with pytest.raises(
+        nx.NetworkXError, match="`create_using` must be an undirected 
multigraph"
+    ):
+        nx.margulis_gabber_galil_graph(3, create_using=graph_type)
+
+
+@pytest.mark.parametrize("graph_type", (nx.Graph, nx.DiGraph, nx.MultiDiGraph))
+def test_chordal_cycle_graph_badinput(graph_type):
+    with pytest.raises(
+        nx.NetworkXError, match="`create_using` must be an undirected 
multigraph"
+    ):
+        nx.chordal_cycle_graph(3, create_using=graph_type)
+
+
+def test_paley_graph_badinput():
+    with pytest.raises(
+        nx.NetworkXError, match="`create_using` cannot be a multigraph."
+    ):
+        nx.paley_graph(3, create_using=nx.MultiGraph)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/generators/tests/test_trees.py 
new/networkx-2.8.8/networkx/generators/tests/test_trees.py
--- old/networkx-2.8.7/networkx/generators/tests/test_trees.py  2022-06-03 
01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/generators/tests/test_trees.py  2022-11-01 
18:28:15.000000000 +0100
@@ -86,3 +86,16 @@
     """Tests that a random tree is in fact a tree."""
     T = nx.random_tree(10, seed=1234)
     assert nx.is_tree(T)
+
+
+def test_random_tree_n_zero():
+    """Tests if n = 0 then the NetworkXPointlessConcept exception is raised."""
+    with pytest.raises(nx.NetworkXPointlessConcept):
+        T = nx.random_tree(0, seed=1234)
+
+
+def test_random_tree_using_generator():
+    """Tests that creating a ramdom tree with a generator works"""
+    G = nx.Graph()
+    T = nx.random_tree(10, seed=1234, create_using=G)
+    assert nx.is_tree(T)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/linalg/algebraicconnectivity.py 
new/networkx-2.8.8/networkx/linalg/algebraicconnectivity.py
--- old/networkx-2.8.7/networkx/linalg/algebraicconnectivity.py 2022-06-03 
01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/linalg/algebraicconnectivity.py 2022-11-01 
18:28:59.000000000 +0100
@@ -460,6 +460,18 @@
     See Also
     --------
     laplacian_matrix
+
+    Examples
+    --------
+    Given a connected graph the signs of the values in the Fiedler vector can 
be
+    used to partition the graph into two components.
+
+    >>> G = nx.barbell_graph(5, 0)
+    >>> nx.fiedler_vector(G, normalized=True, seed=1)
+    array([-0.32864129, -0.32864129, -0.32864129, -0.32864129, -0.26072899,
+            0.26072899,  0.32864129,  0.32864129,  0.32864129,  0.32864129])
+
+    The connected components are the two 5-node cliques of the barbell graph.
     """
     import numpy as np
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx/readwrite/adjlist.py 
new/networkx-2.8.8/networkx/readwrite/adjlist.py
--- old/networkx-2.8.7/networkx/readwrite/adjlist.py    2022-06-03 
01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/readwrite/adjlist.py    2022-11-01 
18:29:12.000000000 +0100
@@ -60,6 +60,14 @@
     --------
     write_adjlist, read_adjlist
 
+    Notes
+    -----
+    The default `delimiter=" "` will result in unexpected results if node 
names contain
+    whitespace characters. To avoid this problem, specify an alternate 
delimiter when spaces are
+    valid in node names.
+
+    NB: This option is not available for data that isn't user-generated.
+
     """
     directed = G.is_directed()
     seen = set()
@@ -113,6 +121,11 @@
 
     Notes
     -----
+    The default `delimiter=" "` will result in unexpected results if node 
names contain
+    whitespace characters. To avoid this problem, specify an alternate 
delimiter when spaces are
+    valid in node names.
+    NB: This option is not available for data that isn't user-generated.
+
     This format does not store graph, node, or edge data.
 
     See Also
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_adjacency.py 
new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_adjacency.py
--- old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_adjacency.py    
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_adjacency.py    
2022-11-01 18:27:29.000000000 +0100
@@ -10,7 +10,7 @@
     def test_graph(self):
         G = nx.path_graph(4)
         H = adjacency_graph(adjacency_data(G))
-        nx.is_isomorphic(G, H)
+        assert nx.is_isomorphic(G, H)
 
     def test_graph_attributes(self):
         G = nx.path_graph(4)
@@ -36,7 +36,7 @@
         nx.add_path(G, [1, 2, 3])
         H = adjacency_graph(adjacency_data(G))
         assert H.is_directed()
-        nx.is_isomorphic(G, H)
+        assert nx.is_isomorphic(G, H)
 
     def test_multidigraph(self):
         G = nx.MultiDiGraph()
@@ -50,7 +50,7 @@
         G.add_edge(1, 2, key="first")
         G.add_edge(1, 2, key="second", color="blue")
         H = adjacency_graph(adjacency_data(G))
-        nx.is_isomorphic(G, H)
+        assert nx.is_isomorphic(G, H)
         assert H[1][2]["second"]["color"] == "blue"
 
     def test_exception(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_cytoscape.py 
new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_cytoscape.py
--- old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_cytoscape.py    
2022-09-30 18:57:13.000000000 +0200
+++ new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_cytoscape.py    
2022-11-01 19:53:50.000000000 +0100
@@ -27,7 +27,7 @@
 def test_graph():
     G = nx.path_graph(4)
     H = cytoscape_graph(cytoscape_data(G))
-    nx.is_isomorphic(G, H)
+    assert nx.is_isomorphic(G, H)
 
 
 def test_input_data_is_not_modified_when_building_graph():
@@ -69,7 +69,7 @@
     nx.add_path(G, [1, 2, 3])
     H = cytoscape_graph(cytoscape_data(G))
     assert H.is_directed()
-    nx.is_isomorphic(G, H)
+    assert nx.is_isomorphic(G, H)
 
 
 def test_multidigraph():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_node_link.py 
new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_node_link.py
--- old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_node_link.py    
2022-08-21 18:51:21.000000000 +0200
+++ new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_node_link.py    
2022-11-01 18:27:29.000000000 +0100
@@ -107,7 +107,7 @@
         G.add_edge(1, 2, key="first")
         G.add_edge(1, 2, key="second", color="blue")
         H = node_link_graph(node_link_data(G))
-        nx.is_isomorphic(G, H)
+        assert nx.is_isomorphic(G, H)
         assert H[1][2]["second"]["color"] == "blue"
 
     def test_graph_with_tuple_nodes(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_tree.py 
new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_tree.py
--- old/networkx-2.8.7/networkx/readwrite/json_graph/tests/test_tree.py 
2022-09-30 18:57:13.000000000 +0200
+++ new/networkx-2.8.8/networkx/readwrite/json_graph/tests/test_tree.py 
2022-11-01 19:53:50.000000000 +0100
@@ -13,7 +13,7 @@
     G.add_edge(1, 3, foo=10)
     G.add_edge(3, 4, foo=10)
     H = tree_graph(tree_data(G, 1))
-    nx.is_isomorphic(G, H)
+    assert nx.is_isomorphic(G, H)
 
 
 def test_graph_attributes():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx/tests/test_relabel.py 
new/networkx-2.8.8/networkx/tests/test_relabel.py
--- old/networkx-2.8.7/networkx/tests/test_relabel.py   2022-09-30 
18:57:13.000000000 +0200
+++ new/networkx-2.8.8/networkx/tests/test_relabel.py   2022-11-01 
19:53:50.000000000 +0100
@@ -180,10 +180,10 @@
         K5 = nx.complete_graph(4)
         G = nx.complete_graph(4)
         G = nx.relabel_nodes(G, {i: i + 1 for i in range(4)}, copy=False)
-        nx.is_isomorphic(K5, G)
+        assert nx.is_isomorphic(K5, G)
         G = nx.complete_graph(4)
         G = nx.relabel_nodes(G, {i: i - 1 for i in range(4)}, copy=False)
-        nx.is_isomorphic(K5, G)
+        assert nx.is_isomorphic(K5, G)
 
     def test_relabel_selfloop(self):
         G = nx.DiGraph([(1, 1), (1, 2), (2, 3)])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/networkx-2.8.7/networkx/utils/tests/test_mapped_queue.py 
new/networkx-2.8.8/networkx/utils/tests/test_mapped_queue.py
--- old/networkx-2.8.7/networkx/utils/tests/test_mapped_queue.py        
2022-06-03 01:39:15.000000000 +0200
+++ new/networkx-2.8.8/networkx/utils/tests/test_mapped_queue.py        
2022-11-01 19:53:55.000000000 +0100
@@ -40,7 +40,7 @@
 
 
 class TestMappedQueue:
-    def setup(self):
+    def setup_method(self):
         pass
 
     def _check_map(self, q):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx.egg-info/PKG-INFO 
new/networkx-2.8.8/networkx.egg-info/PKG-INFO
--- old/networkx-2.8.7/networkx.egg-info/PKG-INFO       2022-10-01 
22:51:49.000000000 +0200
+++ new/networkx-2.8.8/networkx.egg-info/PKG-INFO       2022-11-01 
21:31:20.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: networkx
-Version: 2.8.7
+Version: 2.8.8
 Summary: Python package for creating and manipulating graphs and networks
 Home-page: https://networkx.org/
 Author: Aric Hagberg
@@ -24,6 +24,7 @@
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
@@ -41,8 +42,8 @@
 NetworkX
 ========
 
-.. image:: 
https://github.com/networkx/networkx/workflows/test/badge.svg?tag=networkx-2.8.7
-  :target: 
https://github.com/networkx/networkx/actions?query=branch%3Anetworkx-2.8.7
+.. image:: 
https://github.com/networkx/networkx/workflows/test/badge.svg?tag=networkx-2.8.8
+  :target: 
https://github.com/networkx/networkx/actions?query=branch%3Anetworkx-2.8.8
 
 .. image:: https://codecov.io/gh/networkx/networkx/branch/main/graph/badge.svg
    :target: https://app.codecov.io/gh/networkx/networkx/branch/main
@@ -59,7 +60,7 @@
 - **Mailing list:** https://groups.google.com/forum/#!forum/networkx-discuss
 - **Source:** https://github.com/networkx/networkx
 - **Bug reports:** https://github.com/networkx/networkx/issues
-- **Report a security vulnerability:** https://tidelift.com/docs/security
+- **Report a security vulnerability:** https://tidelift.com/security
 - **Tutorial:** https://networkx.org/documentation/latest/tutorial.html
 - **GitHub Discussions:** https://github.com/networkx/networkx/discussions
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx.egg-info/SOURCES.txt 
new/networkx-2.8.8/networkx.egg-info/SOURCES.txt
--- old/networkx-2.8.7/networkx.egg-info/SOURCES.txt    2022-10-01 
22:51:49.000000000 +0200
+++ new/networkx-2.8.8/networkx.egg-info/SOURCES.txt    2022-11-01 
21:31:20.000000000 +0100
@@ -170,6 +170,7 @@
 doc/release/release_2.8.5.rst
 doc/release/release_2.8.6.rst
 doc/release/release_2.8.7.rst
+doc/release/release_2.8.8.rst
 doc/release/release_2.8.rst
 doc/release/release_dev.rst
 doc/release/release_template.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/networkx.egg-info/requires.txt 
new/networkx-2.8.8/networkx.egg-info/requires.txt
--- old/networkx-2.8.7/networkx.egg-info/requires.txt   2022-10-01 
22:51:49.000000000 +0200
+++ new/networkx-2.8.8/networkx.egg-info/requires.txt   2022-11-01 
21:31:20.000000000 +0100
@@ -7,14 +7,14 @@
 
 [developer]
 pre-commit>=2.20
-mypy>=0.981
+mypy>=0.982
 
 [doc]
-sphinx>=5
-pydata-sphinx-theme>=0.9
-sphinx-gallery>=0.10
-numpydoc>=1.4
-pillow>=9.1
+sphinx>=5.2
+pydata-sphinx-theme>=0.11
+sphinx-gallery>=0.11
+numpydoc>=1.5
+pillow>=9.2
 nb2plots>=0.6
 texext>=0.6.6
 
@@ -25,6 +25,6 @@
 sympy>=1.10
 
 [test]
-pytest>=7.1
-pytest-cov>=3.0
+pytest>=7.2
+pytest-cov>=4.0
 codecov>=2.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/requirements/developer.txt 
new/networkx-2.8.8/requirements/developer.txt
--- old/networkx-2.8.7/requirements/developer.txt       2022-09-30 
18:57:24.000000000 +0200
+++ new/networkx-2.8.8/requirements/developer.txt       2022-11-01 
18:27:15.000000000 +0100
@@ -1,2 +1,2 @@
 pre-commit>=2.20
-mypy>=0.981
+mypy>=0.982
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/requirements/doc.txt 
new/networkx-2.8.8/requirements/doc.txt
--- old/networkx-2.8.7/requirements/doc.txt     2022-06-10 16:44:40.000000000 
+0200
+++ new/networkx-2.8.8/requirements/doc.txt     2022-11-01 19:53:50.000000000 
+0100
@@ -1,7 +1,7 @@
-sphinx>=5
-pydata-sphinx-theme>=0.9
-sphinx-gallery>=0.10
-numpydoc>=1.4
-pillow>=9.1
+sphinx>=5.2
+pydata-sphinx-theme>=0.11
+sphinx-gallery>=0.11
+numpydoc>=1.5
+pillow>=9.2
 nb2plots>=0.6
 texext>=0.6.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/requirements/test.txt 
new/networkx-2.8.8/requirements/test.txt
--- old/networkx-2.8.7/requirements/test.txt    2022-04-09 19:03:19.000000000 
+0200
+++ new/networkx-2.8.8/requirements/test.txt    2022-11-01 19:53:55.000000000 
+0100
@@ -1,3 +1,3 @@
-pytest>=7.1
-pytest-cov>=3.0
+pytest>=7.2
+pytest-cov>=4.0
 codecov>=2.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/networkx-2.8.7/setup.py new/networkx-2.8.8/setup.py
--- old/networkx-2.8.7/setup.py 2022-09-30 18:57:13.000000000 +0200
+++ new/networkx-2.8.8/setup.py 2022-11-01 19:53:50.000000000 +0100
@@ -48,6 +48,7 @@
     "Programming Language :: Python :: 3.8",
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3 :: Only",
     "Topic :: Software Development :: Libraries :: Python Modules",
     "Topic :: Scientific/Engineering :: Bio-Informatics",

Reply via email to