Mercurial > repos > shellac > sam_consensus_v3
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"]