scikit-network 0.33.0__tar.gz → 0.33.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-network might be problematic. Click here for more details.
- {scikit-network-0.33.0 → scikit-network-0.33.1}/HISTORY.rst +5 -0
- scikit-network-0.33.1/PKG-INFO +115 -0
- scikit-network-0.33.1/pyproject.toml +45 -0
- scikit-network-0.33.1/scikit_network.egg-info/PKG-INFO +115 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/scikit_network.egg-info/SOURCES.txt +1 -0
- scikit-network-0.33.1/scikit_network.egg-info/requires.txt +7 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/setup.cfg +1 -4
- {scikit-network-0.33.0 → scikit-network-0.33.1}/setup.py +3 -42
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/diffusion.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/knn.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/metrics.py +3 -3
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/pagerank.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/propagation.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/louvain.py +3 -3
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/metrics.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_louvain.py +6 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/gnn_classifier.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/metrics.py +3 -3
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/sparse_lowrank.py +1 -1
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/cycles.py +1 -1
- scikit-network-0.33.0/PKG-INFO +0 -515
- scikit-network-0.33.0/scikit_network.egg-info/PKG-INFO +0 -515
- scikit-network-0.33.0/scikit_network.egg-info/requires.txt +0 -2
- {scikit-network-0.33.0 → scikit-network-0.33.1}/AUTHORS.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/CONTRIBUTING.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/LICENSE +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/MANIFEST.in +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/README.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/Makefile +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/authors.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/conf.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/contributing.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/first_steps.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/genindex.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/glossary.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/history.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/make.bat +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/readme.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/classification.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/clustering.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/data.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/embedding.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/gnn.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/hierarchy.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/linalg.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/linkpred.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/path.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/ranking.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/regression.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/topology.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/utils.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/reference/visualization.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/classification/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/clustering/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/data/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/embedding/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/gnn/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/hierarchy/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/linkpred/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/overview/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/path/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/ranking/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/regression/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/topology/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/docs/tutorials/visualization/index.rst +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/scikit_network.egg-info/dependency_links.txt +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/scikit_network.egg-info/not-zip-safe +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/scikit_network.egg-info/top_level.txt +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/base_rank.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_diffusion.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_knn.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_metrics.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_pagerank.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_propagation.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/vote.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/classification/vote.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/kcenters.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/leiden.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/leiden_core.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/leiden_core.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/louvain_core.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/louvain_core.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/postprocess.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/propagation_clustering.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_kcenters.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_leiden.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_metrics.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_postprocess.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/load.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/models.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/parse.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/test_graphs.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_load.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_models.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_parse.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_test_graphs.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_toy_graphs.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/timeout.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/data/toy_graphs.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/force_atlas.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/louvain_embedding.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/random_projection.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/spectral.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/spring.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/svd.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_force_atlas.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_louvain_embedding.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_random_projection.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_spectral.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_spring.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_svd.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/activation.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/base_activation.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/base_layer.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/layer.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/loss.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/neighbor_sampler.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/optimizer.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_activation.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_base_layer.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_gnn_classifier.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_layers.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_loss.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_neigh_sampler.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_optimizer.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_utils.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/gnn/utils.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/louvain_hierarchy.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/paris.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/paris.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/postprocess.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_algos.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_metrics.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_postprocess.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/basics.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/diteration.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/diteration.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/eig_solver.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/laplacian.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/normalizer.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/operators.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/polynome.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/ppr_solver.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/push.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/push.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/svd_solver.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_eig.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_laplacian.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_normalization.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_operators.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_polynome.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_ppr.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_sparse_lowrank.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_svd.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linkpred/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linkpred/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linkpred/nn.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linkpred/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/linkpred/tests/test_nn.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/log.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/dag.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/distances.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/search.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/shortest_path.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_dag.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_distances.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_search.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_shortest_path.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/betweenness.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/betweenness.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/closeness.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/hits.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/katz.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/pagerank.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/postprocess.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_betweenness.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_closeness.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_hits.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_pagerank.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_postprocess.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/regression/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/regression/base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/regression/diffusion.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/regression/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/regression/tests/test_API.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/regression/tests/test_diffusion.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/sknetwork.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/test_base.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/test_log.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/cliques.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/cliques.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/core.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/core.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/minheap.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/minheap.pxd +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/minheap.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/structure.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_cliques.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_core.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_cycles.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_structure.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_triangles.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_wl.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/triangles.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/triangles.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/weisfeiler_lehman.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/weisfeiler_lehman_core.cpp +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/topology/weisfeiler_lehman_core.pyx +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/check.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/format.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/membership.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/neighbors.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_check.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_format.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_membership.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_neighbors.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_tfidf.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_values.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/tfidf.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/utils/values.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/colors.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/dendrograms.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/graphs.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/tests/__init__.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/tests/test_dendrograms.py +0 -0
- {scikit-network-0.33.0 → scikit-network-0.33.1}/sknetwork/visualization/tests/test_graphs.py +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: scikit-network
|
|
3
|
+
Version: 0.33.1
|
|
4
|
+
Summary: Graph algorithms
|
|
5
|
+
Author: Scikit-network team
|
|
6
|
+
Maintainer-email: Thomas Bonald <bonald@enst.fr>
|
|
7
|
+
License: BSD License
|
|
8
|
+
Project-URL: Repository, https://github.com/sknetwork-team/scikit-network
|
|
9
|
+
Project-URL: Documentation, https://scikit-network.readthedocs.io/
|
|
10
|
+
Project-URL: Changelog, https://github.com/sknetwork-team/scikit-network/blob/master/HISTORY.rst
|
|
11
|
+
Keywords: sknetwork
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Information Technology
|
|
15
|
+
Classifier: Intended Audience :: Education
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
18
|
+
Classifier: Natural Language :: English
|
|
19
|
+
Classifier: Programming Language :: Cython
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/x-rst
|
|
26
|
+
Provides-Extra: test
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
License-File: AUTHORS.rst
|
|
29
|
+
|
|
30
|
+
.. image:: https://perso.telecom-paristech.fr/bonald/logo_sknetwork.png
|
|
31
|
+
:align: right
|
|
32
|
+
:width: 150px
|
|
33
|
+
:alt: logo sknetwork
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
.. image:: https://img.shields.io/pypi/v/scikit-network.svg
|
|
38
|
+
:target: https://pypi.python.org/pypi/scikit-network
|
|
39
|
+
|
|
40
|
+
.. image:: https://github.com/sknetwork-team/scikit-network/actions/workflows/ci_checks.yml/badge.svg
|
|
41
|
+
:target: https://github.com/sknetwork-team/scikit-network/actions/workflows/ci_checks.yml
|
|
42
|
+
|
|
43
|
+
.. image:: https://readthedocs.org/projects/scikit-network/badge/?version=latest
|
|
44
|
+
:target: https://scikit-network.readthedocs.io/en/latest/?badge=latest
|
|
45
|
+
:alt: Documentation Status
|
|
46
|
+
|
|
47
|
+
.. image:: https://codecov.io/gh/sknetwork-team/scikit-network/branch/master/graph/badge.svg
|
|
48
|
+
:target: https://codecov.io/gh/sknetwork-team/scikit-network
|
|
49
|
+
|
|
50
|
+
.. image:: https://img.shields.io/pypi/pyversions/scikit-network.svg
|
|
51
|
+
:target: https://pypi.python.org/pypi/scikit-network
|
|
52
|
+
|
|
53
|
+
Free software library in Python for machine learning on graphs:
|
|
54
|
+
|
|
55
|
+
* Memory-efficient representation of graphs as sparse matrices in scipy_ format
|
|
56
|
+
* Fast algorithms
|
|
57
|
+
* Simple API inspired by scikit-learn_
|
|
58
|
+
|
|
59
|
+
.. _scipy: https://www.scipy.org
|
|
60
|
+
.. _scikit-learn: https://scikit-learn.org/
|
|
61
|
+
|
|
62
|
+
Resources
|
|
63
|
+
---------
|
|
64
|
+
|
|
65
|
+
* Free software: BSD license
|
|
66
|
+
* GitHub: https://github.com/sknetwork-team/scikit-network
|
|
67
|
+
* Documentation: https://scikit-network.readthedocs.io
|
|
68
|
+
|
|
69
|
+
Quick start
|
|
70
|
+
-----------
|
|
71
|
+
|
|
72
|
+
Install scikit-network:
|
|
73
|
+
|
|
74
|
+
.. code-block:: console
|
|
75
|
+
|
|
76
|
+
$ pip install scikit-network
|
|
77
|
+
|
|
78
|
+
Import scikit-network::
|
|
79
|
+
|
|
80
|
+
import sknetwork
|
|
81
|
+
|
|
82
|
+
Overview
|
|
83
|
+
--------
|
|
84
|
+
|
|
85
|
+
An overview of the package is presented in this `notebook <https://scikit-network.readthedocs.io/en/latest/tutorials/overview/index.html>`_.
|
|
86
|
+
|
|
87
|
+
Documentation
|
|
88
|
+
-------------
|
|
89
|
+
|
|
90
|
+
The documentation is structured as follows:
|
|
91
|
+
|
|
92
|
+
* `Getting started <https://scikit-network.readthedocs.io/en/latest/first_steps.html>`_: First steps to install, import and use scikit-network.
|
|
93
|
+
* `User manual <https://scikit-network.readthedocs.io/en/latest/reference/data.html>`_: Description of each function and object of scikit-network.
|
|
94
|
+
* `Tutorials <https://scikit-network.readthedocs.io/en/latest/tutorials/data/index.html>`_: Application of the main tools to toy examples.
|
|
95
|
+
* `Examples <https://scikit-network.readthedocs.io/en/latest/use_cases/text.html>`_: Examples combining several tools on specific use cases.
|
|
96
|
+
* `About <https://scikit-network.readthedocs.io/en/latest/authors.html>`_: Authors, history of the library, how to contribute, index of functions and objects.
|
|
97
|
+
|
|
98
|
+
Citing
|
|
99
|
+
------
|
|
100
|
+
|
|
101
|
+
If you want to cite scikit-network, please refer to the publication in
|
|
102
|
+
the `Journal of Machine Learning Research <https://jmlr.org>`_:
|
|
103
|
+
|
|
104
|
+
.. code::
|
|
105
|
+
|
|
106
|
+
@article{JMLR:v21:20-412,
|
|
107
|
+
author = {Thomas Bonald and Nathan de Lara and Quentin Lutz and Bertrand Charpentier},
|
|
108
|
+
title = {Scikit-network: Graph Analysis in Python},
|
|
109
|
+
journal = {Journal of Machine Learning Research},
|
|
110
|
+
year = {2020},
|
|
111
|
+
volume = {21},
|
|
112
|
+
number = {185},
|
|
113
|
+
pages = {1-6},
|
|
114
|
+
url = {http://jmlr.org/papers/v21/20-412.html}
|
|
115
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"numpy",
|
|
4
|
+
"setuptools",
|
|
5
|
+
"scipy",
|
|
6
|
+
"pytest-runner",
|
|
7
|
+
"cython"
|
|
8
|
+
]
|
|
9
|
+
build-backend = "setuptools.build_meta"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
[project]
|
|
13
|
+
name = "scikit-network"
|
|
14
|
+
version = "0.33.1"
|
|
15
|
+
dependencies = ['numpy>=1.22.4', 'scipy>=1.7.3']
|
|
16
|
+
authors = [{name = "Scikit-network team"}]
|
|
17
|
+
maintainers = [{name = "Thomas Bonald", email = "bonald@enst.fr"}]
|
|
18
|
+
description = "Graph algorithms"
|
|
19
|
+
readme = "README.rst"
|
|
20
|
+
license = {text = "BSD License"}
|
|
21
|
+
keywords = ["sknetwork"]
|
|
22
|
+
classifiers=[
|
|
23
|
+
'Development Status :: 3 - Alpha',
|
|
24
|
+
'Intended Audience :: Developers',
|
|
25
|
+
'Intended Audience :: Information Technology',
|
|
26
|
+
'Intended Audience :: Education',
|
|
27
|
+
'Intended Audience :: Science/Research',
|
|
28
|
+
'License :: OSI Approved :: BSD License',
|
|
29
|
+
'Natural Language :: English',
|
|
30
|
+
'Programming Language :: Cython',
|
|
31
|
+
'Programming Language :: Python :: 3.9',
|
|
32
|
+
'Programming Language :: Python :: 3.10',
|
|
33
|
+
'Programming Language :: Python :: 3.11',
|
|
34
|
+
'Programming Language :: Python :: 3.12'
|
|
35
|
+
]
|
|
36
|
+
requires-python = ">= 3.9"
|
|
37
|
+
|
|
38
|
+
[project.optional-dependencies]
|
|
39
|
+
test = ["pytest", "note", "pluggy>=0.7.1"]
|
|
40
|
+
|
|
41
|
+
[project.urls]
|
|
42
|
+
Repository = "https://github.com/sknetwork-team/scikit-network"
|
|
43
|
+
Documentation = "https://scikit-network.readthedocs.io/"
|
|
44
|
+
Changelog = "https://github.com/sknetwork-team/scikit-network/blob/master/HISTORY.rst"
|
|
45
|
+
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: scikit-network
|
|
3
|
+
Version: 0.33.1
|
|
4
|
+
Summary: Graph algorithms
|
|
5
|
+
Author: Scikit-network team
|
|
6
|
+
Maintainer-email: Thomas Bonald <bonald@enst.fr>
|
|
7
|
+
License: BSD License
|
|
8
|
+
Project-URL: Repository, https://github.com/sknetwork-team/scikit-network
|
|
9
|
+
Project-URL: Documentation, https://scikit-network.readthedocs.io/
|
|
10
|
+
Project-URL: Changelog, https://github.com/sknetwork-team/scikit-network/blob/master/HISTORY.rst
|
|
11
|
+
Keywords: sknetwork
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Information Technology
|
|
15
|
+
Classifier: Intended Audience :: Education
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
18
|
+
Classifier: Natural Language :: English
|
|
19
|
+
Classifier: Programming Language :: Cython
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/x-rst
|
|
26
|
+
Provides-Extra: test
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
License-File: AUTHORS.rst
|
|
29
|
+
|
|
30
|
+
.. image:: https://perso.telecom-paristech.fr/bonald/logo_sknetwork.png
|
|
31
|
+
:align: right
|
|
32
|
+
:width: 150px
|
|
33
|
+
:alt: logo sknetwork
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
.. image:: https://img.shields.io/pypi/v/scikit-network.svg
|
|
38
|
+
:target: https://pypi.python.org/pypi/scikit-network
|
|
39
|
+
|
|
40
|
+
.. image:: https://github.com/sknetwork-team/scikit-network/actions/workflows/ci_checks.yml/badge.svg
|
|
41
|
+
:target: https://github.com/sknetwork-team/scikit-network/actions/workflows/ci_checks.yml
|
|
42
|
+
|
|
43
|
+
.. image:: https://readthedocs.org/projects/scikit-network/badge/?version=latest
|
|
44
|
+
:target: https://scikit-network.readthedocs.io/en/latest/?badge=latest
|
|
45
|
+
:alt: Documentation Status
|
|
46
|
+
|
|
47
|
+
.. image:: https://codecov.io/gh/sknetwork-team/scikit-network/branch/master/graph/badge.svg
|
|
48
|
+
:target: https://codecov.io/gh/sknetwork-team/scikit-network
|
|
49
|
+
|
|
50
|
+
.. image:: https://img.shields.io/pypi/pyversions/scikit-network.svg
|
|
51
|
+
:target: https://pypi.python.org/pypi/scikit-network
|
|
52
|
+
|
|
53
|
+
Free software library in Python for machine learning on graphs:
|
|
54
|
+
|
|
55
|
+
* Memory-efficient representation of graphs as sparse matrices in scipy_ format
|
|
56
|
+
* Fast algorithms
|
|
57
|
+
* Simple API inspired by scikit-learn_
|
|
58
|
+
|
|
59
|
+
.. _scipy: https://www.scipy.org
|
|
60
|
+
.. _scikit-learn: https://scikit-learn.org/
|
|
61
|
+
|
|
62
|
+
Resources
|
|
63
|
+
---------
|
|
64
|
+
|
|
65
|
+
* Free software: BSD license
|
|
66
|
+
* GitHub: https://github.com/sknetwork-team/scikit-network
|
|
67
|
+
* Documentation: https://scikit-network.readthedocs.io
|
|
68
|
+
|
|
69
|
+
Quick start
|
|
70
|
+
-----------
|
|
71
|
+
|
|
72
|
+
Install scikit-network:
|
|
73
|
+
|
|
74
|
+
.. code-block:: console
|
|
75
|
+
|
|
76
|
+
$ pip install scikit-network
|
|
77
|
+
|
|
78
|
+
Import scikit-network::
|
|
79
|
+
|
|
80
|
+
import sknetwork
|
|
81
|
+
|
|
82
|
+
Overview
|
|
83
|
+
--------
|
|
84
|
+
|
|
85
|
+
An overview of the package is presented in this `notebook <https://scikit-network.readthedocs.io/en/latest/tutorials/overview/index.html>`_.
|
|
86
|
+
|
|
87
|
+
Documentation
|
|
88
|
+
-------------
|
|
89
|
+
|
|
90
|
+
The documentation is structured as follows:
|
|
91
|
+
|
|
92
|
+
* `Getting started <https://scikit-network.readthedocs.io/en/latest/first_steps.html>`_: First steps to install, import and use scikit-network.
|
|
93
|
+
* `User manual <https://scikit-network.readthedocs.io/en/latest/reference/data.html>`_: Description of each function and object of scikit-network.
|
|
94
|
+
* `Tutorials <https://scikit-network.readthedocs.io/en/latest/tutorials/data/index.html>`_: Application of the main tools to toy examples.
|
|
95
|
+
* `Examples <https://scikit-network.readthedocs.io/en/latest/use_cases/text.html>`_: Examples combining several tools on specific use cases.
|
|
96
|
+
* `About <https://scikit-network.readthedocs.io/en/latest/authors.html>`_: Authors, history of the library, how to contribute, index of functions and objects.
|
|
97
|
+
|
|
98
|
+
Citing
|
|
99
|
+
------
|
|
100
|
+
|
|
101
|
+
If you want to cite scikit-network, please refer to the publication in
|
|
102
|
+
the `Journal of Machine Learning Research <https://jmlr.org>`_:
|
|
103
|
+
|
|
104
|
+
.. code::
|
|
105
|
+
|
|
106
|
+
@article{JMLR:v21:20-412,
|
|
107
|
+
author = {Thomas Bonald and Nathan de Lara and Quentin Lutz and Bertrand Charpentier},
|
|
108
|
+
title = {Scikit-network: Graph Analysis in Python},
|
|
109
|
+
journal = {Journal of Machine Learning Research},
|
|
110
|
+
year = {2020},
|
|
111
|
+
volume = {21},
|
|
112
|
+
number = {185},
|
|
113
|
+
pages = {1-6},
|
|
114
|
+
url = {http://jmlr.org/papers/v21/20-412.html}
|
|
115
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[bumpversion]
|
|
2
|
-
current_version = 0.33.
|
|
2
|
+
current_version = 0.33.1python setup.py sdist
|
|
3
3
|
commit = True
|
|
4
4
|
tag = True
|
|
5
5
|
|
|
@@ -20,9 +20,6 @@ test = pytest
|
|
|
20
20
|
[tool:pytest]
|
|
21
21
|
collect_ignore = ['setup.py']
|
|
22
22
|
|
|
23
|
-
[options]
|
|
24
|
-
python_requires = >=3.9
|
|
25
|
-
|
|
26
23
|
[egg_info]
|
|
27
24
|
tag_build =
|
|
28
25
|
tag_date = 0
|
|
@@ -2,25 +2,15 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
"""Setup script."""
|
|
4
4
|
|
|
5
|
+
import numpy
|
|
5
6
|
|
|
6
7
|
from setuptools import find_packages, setup, Extension
|
|
7
8
|
from sysconfig import get_platform
|
|
8
9
|
from distutils.command.build_ext import build_ext
|
|
9
10
|
import os
|
|
11
|
+
import builtins
|
|
10
12
|
from glob import glob
|
|
11
13
|
|
|
12
|
-
import numpy
|
|
13
|
-
|
|
14
|
-
with open('README.rst') as readme_file:
|
|
15
|
-
readme = readme_file.read()
|
|
16
|
-
|
|
17
|
-
with open('HISTORY.rst') as history_file:
|
|
18
|
-
history = history_file.read()
|
|
19
|
-
|
|
20
|
-
requirements = ['numpy>=1.22.4', 'scipy>=1.7.3']
|
|
21
|
-
|
|
22
|
-
setup_requirements = ['pytest-runner']
|
|
23
|
-
|
|
24
14
|
test_requirements = ['pytest', 'nose', 'pluggy>=0.7.1']
|
|
25
15
|
|
|
26
16
|
# if any problems occur with macOS' clang not knowing the -fopenmp flag, see:
|
|
@@ -55,7 +45,6 @@ if platform.startswith("win"):
|
|
|
55
45
|
EXTRA_COMPILE_ARGS = ['/d2FH4-']
|
|
56
46
|
EXTRA_LINK_ARGS = []
|
|
57
47
|
|
|
58
|
-
|
|
59
48
|
class BuildExtSubclass(build_ext):
|
|
60
49
|
def build_options(self):
|
|
61
50
|
for e in self.extensions:
|
|
@@ -74,8 +63,7 @@ class BuildExtSubclass(build_ext):
|
|
|
74
63
|
def finalize_options(self):
|
|
75
64
|
build_ext.finalize_options(self)
|
|
76
65
|
# Prevent numpy from thinking it is still in its setup process:
|
|
77
|
-
|
|
78
|
-
import numpy
|
|
66
|
+
builtins.__NUMPY_SETUP__ = False
|
|
79
67
|
self.include_dirs.append(numpy.get_include())
|
|
80
68
|
|
|
81
69
|
|
|
@@ -124,36 +112,9 @@ else:
|
|
|
124
112
|
|
|
125
113
|
|
|
126
114
|
setup(
|
|
127
|
-
author="Scikit-network team",
|
|
128
|
-
author_email='bonald@enst.fr',
|
|
129
|
-
classifiers=[
|
|
130
|
-
'Development Status :: 3 - Alpha',
|
|
131
|
-
'Intended Audience :: Developers',
|
|
132
|
-
'Intended Audience :: Information Technology',
|
|
133
|
-
'Intended Audience :: Education',
|
|
134
|
-
'Intended Audience :: Science/Research',
|
|
135
|
-
'License :: OSI Approved :: BSD License',
|
|
136
|
-
'Natural Language :: English',
|
|
137
|
-
'Programming Language :: Cython',
|
|
138
|
-
'Programming Language :: Python :: 3.9',
|
|
139
|
-
'Programming Language :: Python :: 3.10',
|
|
140
|
-
'Programming Language :: Python :: 3.11',
|
|
141
|
-
'Programming Language :: Python :: 3.12'
|
|
142
|
-
],
|
|
143
|
-
description="Graph algorithms",
|
|
144
|
-
install_requires=requirements,
|
|
145
|
-
license="BSD license",
|
|
146
|
-
long_description=readme + '\n\n' + history,
|
|
147
|
-
long_description_content_type='text/x-rst',
|
|
148
|
-
include_package_data=True,
|
|
149
|
-
keywords='sknetwork',
|
|
150
|
-
name='scikit-network',
|
|
151
115
|
packages=find_packages(),
|
|
152
|
-
setup_requires=setup_requirements,
|
|
153
116
|
test_suite='tests',
|
|
154
117
|
tests_require=test_requirements,
|
|
155
|
-
url='https://github.com/sknetwork-team/scikit-network',
|
|
156
|
-
version='0.33.0',
|
|
157
118
|
zip_safe=False,
|
|
158
119
|
ext_modules=ext_modules,
|
|
159
120
|
include_dirs=[numpy.get_include()],
|
|
@@ -55,7 +55,7 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
55
55
|
>>> labels_true = graph.labels
|
|
56
56
|
>>> labels = {0: labels_true[0], 33: labels_true[33]}
|
|
57
57
|
>>> labels_pred = diffusion.fit_predict(adjacency, labels)
|
|
58
|
-
>>> round(np.mean(labels_pred == labels_true), 2)
|
|
58
|
+
>>> float(round(np.mean(labels_pred == labels_true), 2))
|
|
59
59
|
0.97
|
|
60
60
|
|
|
61
61
|
References
|
|
@@ -55,7 +55,7 @@ class NNClassifier(BaseClassifier):
|
|
|
55
55
|
>>> labels_true = graph.labels
|
|
56
56
|
>>> labels = {0: labels_true[0], 33: labels_true[33]}
|
|
57
57
|
>>> labels_pred = classifier.fit_predict(adjacency, labels)
|
|
58
|
-
>>> round(np.mean(labels_pred == labels_true), 2)
|
|
58
|
+
>>> float(round(np.mean(labels_pred == labels_true), 2))
|
|
59
59
|
0.82
|
|
60
60
|
"""
|
|
61
61
|
def __init__(self, n_neighbors: int = 3, embedding_method: Optional[BaseEmbedding] = None, normalize: bool = True):
|
|
@@ -34,7 +34,7 @@ def get_accuracy_score(labels_true: np.ndarray, labels_pred: np.ndarray) -> floa
|
|
|
34
34
|
>>> import numpy as np
|
|
35
35
|
>>> labels_true = np.array([0, 0, 1, 1])
|
|
36
36
|
>>> labels_pred = np.array([0, 0, 0, 1])
|
|
37
|
-
>>> round(get_accuracy_score(labels_true, labels_pred), 2)
|
|
37
|
+
>>> float(round(get_accuracy_score(labels_true, labels_pred), 2))
|
|
38
38
|
0.75
|
|
39
39
|
"""
|
|
40
40
|
check_vector_format(labels_true, labels_pred)
|
|
@@ -105,7 +105,7 @@ def get_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, return_precis
|
|
|
105
105
|
>>> import numpy as np
|
|
106
106
|
>>> labels_true = np.array([0, 0, 1, 1])
|
|
107
107
|
>>> labels_pred = np.array([0, 0, 0, 1])
|
|
108
|
-
>>> round(get_f1_score(labels_true, labels_pred), 2)
|
|
108
|
+
>>> float(round(get_f1_score(labels_true, labels_pred), 2))
|
|
109
109
|
0.67
|
|
110
110
|
"""
|
|
111
111
|
values = set(labels_true[labels_true >= 0]) | set(labels_pred[labels_pred >= 0])
|
|
@@ -188,7 +188,7 @@ def get_average_f1_score(labels_true: np.ndarray, labels_pred: np.ndarray, avera
|
|
|
188
188
|
>>> import numpy as np
|
|
189
189
|
>>> labels_true = np.array([0, 0, 1, 1])
|
|
190
190
|
>>> labels_pred = np.array([0, 0, 0, 1])
|
|
191
|
-
>>> round(get_average_f1_score(labels_true, labels_pred), 2)
|
|
191
|
+
>>> float(round(get_average_f1_score(labels_true, labels_pred), 2))
|
|
192
192
|
0.73
|
|
193
193
|
"""
|
|
194
194
|
if average == 'micro':
|
|
@@ -51,7 +51,7 @@ class PageRankClassifier(RankClassifier):
|
|
|
51
51
|
>>> labels_true = graph.labels
|
|
52
52
|
>>> labels = {0: labels_true[0], 33: labels_true[33]}
|
|
53
53
|
>>> labels_pred = pagerank.fit_predict(adjacency, labels)
|
|
54
|
-
>>> np.round(np.mean(labels_pred == labels_true), 2)
|
|
54
|
+
>>> float(np.round(np.mean(labels_pred == labels_true), 2))
|
|
55
55
|
0.97
|
|
56
56
|
|
|
57
57
|
References
|
|
@@ -58,7 +58,7 @@ class Propagation(BaseClassifier):
|
|
|
58
58
|
>>> labels_true = graph.labels
|
|
59
59
|
>>> labels = {0: labels_true[0], 33: labels_true[33]}
|
|
60
60
|
>>> labels_pred = propagation.fit_predict(adjacency, labels)
|
|
61
|
-
>>> np.round(np.mean(labels_pred == labels_true), 2)
|
|
61
|
+
>>> float(np.round(np.mean(labels_pred == labels_true), 2))
|
|
62
62
|
0.94
|
|
63
63
|
|
|
64
64
|
References
|
|
@@ -14,8 +14,8 @@ from scipy import sparse
|
|
|
14
14
|
from sknetwork.clustering.base import BaseClustering
|
|
15
15
|
from sknetwork.clustering.louvain_core import optimize_core
|
|
16
16
|
from sknetwork.clustering.postprocess import reindex_labels
|
|
17
|
-
from sknetwork.utils.check import check_random_state, get_probs
|
|
18
|
-
from sknetwork.utils.format import
|
|
17
|
+
from sknetwork.utils.check import check_format, check_random_state, get_probs
|
|
18
|
+
from sknetwork.utils.format import get_adjacency, directed2undirected
|
|
19
19
|
from sknetwork.utils.membership import get_membership
|
|
20
20
|
from sknetwork.log import Log
|
|
21
21
|
|
|
@@ -193,7 +193,6 @@ class Louvain(BaseClustering, Log):
|
|
|
193
193
|
self._init_vars()
|
|
194
194
|
|
|
195
195
|
# adjacency matrix
|
|
196
|
-
input_matrix = check_format(input_matrix)
|
|
197
196
|
force_directed = self.modularity == 'dugue'
|
|
198
197
|
adjacency, self.bipartite = get_adjacency(input_matrix, force_directed=force_directed,
|
|
199
198
|
force_bipartite=force_bipartite)
|
|
@@ -266,6 +265,7 @@ class Louvain(BaseClustering, Log):
|
|
|
266
265
|
-------
|
|
267
266
|
self : :class:`Louvain`
|
|
268
267
|
"""
|
|
268
|
+
input_matrix = check_format(input_matrix)
|
|
269
269
|
adjacency, out_weights, in_weights, membership, index = self._pre_processing(input_matrix, force_bipartite)
|
|
270
270
|
n = adjacency.shape[0]
|
|
271
271
|
count = 0
|
|
@@ -64,7 +64,7 @@ def get_modularity(input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: n
|
|
|
64
64
|
>>> from sknetwork.data import house
|
|
65
65
|
>>> adjacency = house()
|
|
66
66
|
>>> labels = np.array([0, 0, 1, 1, 0])
|
|
67
|
-
>>> np.round(get_modularity(adjacency, labels), 2)
|
|
67
|
+
>>> float(np.round(get_modularity(adjacency, labels), 2))
|
|
68
68
|
0.11
|
|
69
69
|
"""
|
|
70
70
|
adjacency, bipartite = get_adjacency(input_matrix.astype(float))
|
|
@@ -17,6 +17,12 @@ class TestLouvainClustering(unittest.TestCase):
|
|
|
17
17
|
labels = Louvain().fit_predict(adjacency)
|
|
18
18
|
self.assertEqual(len(labels), n)
|
|
19
19
|
|
|
20
|
+
def test_format(self):
|
|
21
|
+
adjacency = test_graph()
|
|
22
|
+
n = adjacency.shape[0]
|
|
23
|
+
labels = Louvain().fit_predict(adjacency.toarray())
|
|
24
|
+
self.assertEqual(len(labels), n)
|
|
25
|
+
|
|
20
26
|
def test_modularity(self):
|
|
21
27
|
adjacency = karate_club()
|
|
22
28
|
louvain_d = Louvain(modularity='dugue')
|
|
@@ -93,7 +93,7 @@ class GNNClassifier(BaseGNN):
|
|
|
93
93
|
>>> features = adjacency.copy()
|
|
94
94
|
>>> gnn = GNNClassifier(dims=1, early_stopping=False)
|
|
95
95
|
>>> labels_pred = gnn.fit_predict(adjacency, features, labels, random_state=42)
|
|
96
|
-
>>> round(np.mean(labels_pred == labels_true), 2)
|
|
96
|
+
>>> float(round(np.mean(labels_pred == labels_true), 2))
|
|
97
97
|
0.88
|
|
98
98
|
"""
|
|
99
99
|
|
|
@@ -100,7 +100,7 @@ def dasgupta_cost(adjacency: sparse.csr_matrix, dendrogram: np.ndarray, weights:
|
|
|
100
100
|
>>> adjacency = house()
|
|
101
101
|
>>> dendrogram = paris.fit_transform(adjacency)
|
|
102
102
|
>>> cost = dasgupta_cost(adjacency, dendrogram)
|
|
103
|
-
>>> np.round(cost, 2)
|
|
103
|
+
>>> float(np.round(cost, 2))
|
|
104
104
|
3.33
|
|
105
105
|
|
|
106
106
|
References
|
|
@@ -154,7 +154,7 @@ def dasgupta_score(adjacency: sparse.csr_matrix, dendrogram: np.ndarray, weights
|
|
|
154
154
|
>>> adjacency = house()
|
|
155
155
|
>>> dendrogram = paris.fit_transform(adjacency)
|
|
156
156
|
>>> score = dasgupta_score(adjacency, dendrogram)
|
|
157
|
-
>>> np.round(score, 2)
|
|
157
|
+
>>> float(np.round(score, 2))
|
|
158
158
|
0.33
|
|
159
159
|
|
|
160
160
|
References
|
|
@@ -194,7 +194,7 @@ def tree_sampling_divergence(adjacency: sparse.csr_matrix, dendrogram: np.ndarra
|
|
|
194
194
|
>>> adjacency = house()
|
|
195
195
|
>>> dendrogram = paris.fit_transform(adjacency)
|
|
196
196
|
>>> score = tree_sampling_divergence(adjacency, dendrogram)
|
|
197
|
-
>>> np.round(score, 2)
|
|
197
|
+
>>> float(np.round(score, 2))
|
|
198
198
|
0.05
|
|
199
199
|
|
|
200
200
|
References
|
|
@@ -79,7 +79,7 @@ def get_cycles(adjacency: sparse.csr_matrix, directed: Optional[bool] = None) ->
|
|
|
79
79
|
>>> from sknetwork.data import cyclic_digraph
|
|
80
80
|
>>> graph = cyclic_digraph(4, metadata=True)
|
|
81
81
|
>>> get_cycles(graph.adjacency, directed=True)
|
|
82
|
-
[[0, 1, 2, 3]]
|
|
82
|
+
[[np.int64(0), np.int64(1), np.int64(2), np.int64(3)]]
|
|
83
83
|
"""
|
|
84
84
|
|
|
85
85
|
if directed is False:
|