diff env/lib/python3.9/site-packages/networkx/conftest.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.9/site-packages/networkx/conftest.py	Mon Mar 22 18:12:50 2021 +0000
@@ -0,0 +1,200 @@
+import pytest
+import networkx
+import sys
+import warnings
+
+
+def pytest_addoption(parser):
+    parser.addoption(
+        "--runslow", action="store_true", default=False, help="run slow tests"
+    )
+
+
+def pytest_configure(config):
+    config.addinivalue_line("markers", "slow: mark test as slow to run")
+
+
+def pytest_collection_modifyitems(config, items):
+    if config.getoption("--runslow"):
+        # --runslow given in cli: do not skip slow tests
+        return
+    skip_slow = pytest.mark.skip(reason="need --runslow option to run")
+    for item in items:
+        if "slow" in item.keywords:
+            item.add_marker(skip_slow)
+
+
+# TODO: The warnings below need to be dealt with, but for now we silence them.
+@pytest.fixture(autouse=True)
+def set_warnings():
+    warnings.filterwarnings(
+        "ignore",
+        category=DeprecationWarning,
+        message="literal_stringizer is deprecated*",
+    )
+    warnings.filterwarnings(
+        "ignore",
+        category=DeprecationWarning,
+        message="literal_destringizer is deprecated*",
+    )
+    warnings.filterwarnings(
+        "ignore", category=DeprecationWarning, message="is_string_like is deprecated*"
+    )
+    warnings.filterwarnings(
+        "ignore", category=DeprecationWarning, message="make_str is deprecated*"
+    )
+    warnings.filterwarnings(
+        "ignore",
+        category=DeprecationWarning,
+        message="context manager reversed is deprecated*",
+    )
+    warnings.filterwarnings(
+        "ignore",
+        category=DeprecationWarning,
+        message="This will return a generator in 3.0*",
+    )
+    warnings.filterwarnings(
+        "ignore", category=DeprecationWarning, message="betweenness_centrality_source*",
+    )
+    warnings.filterwarnings(
+        "ignore", category=DeprecationWarning, message="edge_betweeness*",
+    )
+    warnings.filterwarnings(
+        "ignore",
+        category=PendingDeprecationWarning,
+        message="the matrix subclass is not the recommended way*",
+    )
+
+
+@pytest.fixture(autouse=True)
+def add_nx(doctest_namespace):
+    doctest_namespace["nx"] = networkx
+
+
+# What dependencies are installed?
+
+try:
+    import numpy
+
+    has_numpy = True
+except ImportError:
+    has_numpy = False
+
+try:
+    import scipy
+
+    has_scipy = True
+except ImportError:
+    has_scipy = False
+
+try:
+    import matplotlib
+
+    has_matplotlib = True
+except ImportError:
+    has_matplotlib = False
+
+try:
+    import pandas
+
+    has_pandas = True
+except ImportError:
+    has_pandas = False
+
+try:
+    import pygraphviz
+
+    has_pygraphviz = True
+except ImportError:
+    has_pygraphviz = False
+
+try:
+    import yaml
+
+    has_yaml = True
+except ImportError:
+    has_yaml = False
+
+try:
+    import pydot
+
+    has_pydot = True
+except ImportError:
+    has_pydot = False
+
+try:
+    import ogr
+
+    has_ogr = True
+except ImportError:
+    has_ogr = False
+
+
+# List of files that pytest should ignore
+
+collect_ignore = []
+
+needs_numpy = [
+    "algorithms/centrality/current_flow_closeness.py",
+    "algorithms/node_classification/__init__.py",
+    "algorithms/non_randomness.py",
+    "algorithms/shortest_paths/dense.py",
+    "linalg/bethehessianmatrix.py",
+    "linalg/laplacianmatrix.py",
+    "utils/misc.py",
+]
+needs_scipy = [
+    "algorithms/assortativity/correlation.py",
+    "algorithms/assortativity/mixing.py",
+    "algorithms/assortativity/pairs.py",
+    "algorithms/bipartite/matrix.py",
+    "algorithms/bipartite/spectral.py",
+    "algorithms/centrality/current_flow_betweenness.py",
+    "algorithms/centrality/current_flow_betweenness_subset.py",
+    "algorithms/centrality/eigenvector.py",
+    "algorithms/centrality/katz.py",
+    "algorithms/centrality/second_order.py",
+    "algorithms/centrality/subgraph_alg.py",
+    "algorithms/communicability_alg.py",
+    "algorithms/link_analysis/hits_alg.py",
+    "algorithms/link_analysis/pagerank_alg.py",
+    "algorithms/node_classification/hmn.py",
+    "algorithms/node_classification/lgc.py",
+    "algorithms/similarity.py",
+    "convert_matrix.py",
+    "drawing/layout.py",
+    "generators/spectral_graph_forge.py",
+    "linalg/algebraicconnectivity.py",
+    "linalg/attrmatrix.py",
+    "linalg/graphmatrix.py",
+    "linalg/modularitymatrix.py",
+    "linalg/spectrum.py",
+    "utils/rcm.py",
+]
+needs_matplotlib = ["drawing/nx_pylab.py"]
+needs_pandas = ["convert_matrix.py"]
+needs_yaml = ["readwrite/nx_yaml.py"]
+needs_pygraphviz = ["drawing/nx_agraph.py"]
+needs_pydot = ["drawing/nx_pydot.py"]
+needs_ogr = ["readwrite/nx_shp.py"]
+
+if not has_numpy:
+    collect_ignore += needs_numpy
+if not has_scipy:
+    collect_ignore += needs_scipy
+if not has_matplotlib:
+    collect_ignore += needs_matplotlib
+if not has_pandas:
+    collect_ignore += needs_pandas
+if not has_yaml:
+    collect_ignore += needs_yaml
+if not has_pygraphviz:
+    collect_ignore += needs_pygraphviz
+if not has_pydot:
+    collect_ignore += needs_pydot
+if not has_ogr:
+    collect_ignore += needs_ogr
+
+# FIXME:  This is to avoid errors on AppVeyor
+if sys.platform.startswith("win"):
+    collect_ignore += ["readwrite/graph6.py", "readwrite/sparse6.py"]