scikit-network 0.32.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.32.0 → scikit-network-0.33.1}/AUTHORS.rst +0 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/HISTORY.rst +18 -1
- scikit-network-0.33.1/PKG-INFO +115 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/visualization.rst +1 -1
- 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.32.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.32.0 → scikit-network-0.33.1}/setup.cfg +1 -4
- {scikit-network-0.32.0 → scikit-network-0.33.1}/setup.py +3 -42
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/__init__.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/diffusion.py +4 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/knn.py +4 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/metrics.py +3 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/pagerank.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/propagation.py +7 -6
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/leiden.py +2 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/louvain.py +6 -6
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/metrics.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_kcenters.py +5 -37
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_louvain.py +6 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/__init__.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/base.py +7 -2
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/load.py +18 -21
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/models.py +15 -15
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/parse.py +19 -17
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_API.py +3 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_base.py +2 -2
- scikit-network-0.33.1/sknetwork/data/tests/test_toy_graphs.py +68 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/toy_graphs.py +35 -43
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/base.py +3 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/louvain_embedding.py +0 -26
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/svd.py +0 -4
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_louvain_embedding.py +9 -4
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_svd.py +6 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/gnn_classifier.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/louvain_hierarchy.py +10 -6
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/metrics.py +3 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/paris.cpp +703 -701
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/paris.pyx +4 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_metrics.py +4 -4
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/push.cpp +69 -69
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/sparse_lowrank.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/regression/diffusion.py +6 -4
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/cliques.cpp +69 -69
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/core.cpp +69 -69
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/cycles.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/__init__.py +1 -1
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/values.py +5 -3
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/graphs.py +1 -1
- scikit-network-0.32.0/PKG-INFO +0 -503
- scikit-network-0.32.0/scikit_network.egg-info/PKG-INFO +0 -503
- scikit-network-0.32.0/scikit_network.egg-info/requires.txt +0 -2
- scikit-network-0.32.0/sknetwork/data/tests/test_toy_graphs.py +0 -68
- {scikit-network-0.32.0 → scikit-network-0.33.1}/CONTRIBUTING.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/LICENSE +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/MANIFEST.in +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/README.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/Makefile +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/authors.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/conf.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/contributing.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/first_steps.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/genindex.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/glossary.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/history.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/make.bat +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/readme.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/classification.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/clustering.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/data.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/embedding.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/gnn.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/hierarchy.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/linalg.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/linkpred.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/path.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/ranking.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/regression.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/topology.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/reference/utils.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/classification/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/clustering/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/data/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/embedding/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/gnn/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/hierarchy/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/linkpred/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/overview/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/path/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/ranking/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/regression/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/topology/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/docs/tutorials/visualization/index.rst +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/scikit_network.egg-info/dependency_links.txt +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/scikit_network.egg-info/not-zip-safe +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/scikit_network.egg-info/top_level.txt +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/base_rank.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_API.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_diffusion.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_knn.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_metrics.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_pagerank.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/tests/test_propagation.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/vote.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/classification/vote.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/kcenters.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/leiden_core.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/leiden_core.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/louvain_core.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/louvain_core.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/postprocess.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/propagation_clustering.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_API.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_leiden.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_metrics.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/clustering/tests/test_postprocess.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/test_graphs.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_load.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_models.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_parse.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/tests/test_test_graphs.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/data/timeout.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/force_atlas.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/random_projection.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/spectral.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/spring.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_API.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_force_atlas.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_random_projection.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_spectral.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/embedding/tests/test_spring.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/activation.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/base_activation.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/base_layer.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/layer.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/loss.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/neighbor_sampler.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/optimizer.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_activation.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_base_layer.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_gnn_classifier.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_layers.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_loss.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_neigh_sampler.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_optimizer.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/tests/test_utils.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/gnn/utils.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/postprocess.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_API.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_algos.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/hierarchy/tests/test_postprocess.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/basics.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/diteration.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/diteration.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/eig_solver.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/laplacian.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/normalizer.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/operators.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/polynome.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/ppr_solver.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/push.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/svd_solver.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_eig.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_laplacian.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_normalization.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_operators.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_polynome.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_ppr.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_sparse_lowrank.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linalg/tests/test_svd.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linkpred/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linkpred/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linkpred/nn.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linkpred/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/linkpred/tests/test_nn.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/log.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/dag.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/distances.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/search.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/shortest_path.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_dag.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_distances.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_search.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/path/tests/test_shortest_path.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/betweenness.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/betweenness.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/closeness.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/hits.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/katz.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/pagerank.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/postprocess.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_API.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_betweenness.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_closeness.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_hits.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_pagerank.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/ranking/tests/test_postprocess.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/regression/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/regression/base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/regression/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/regression/tests/test_API.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/regression/tests/test_diffusion.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/sknetwork.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/test_base.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/test_log.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/cliques.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/core.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/minheap.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/minheap.pxd +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/minheap.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/structure.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_cliques.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_core.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_cycles.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_structure.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_triangles.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/tests/test_wl.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/triangles.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/triangles.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/weisfeiler_lehman.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/weisfeiler_lehman_core.cpp +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/topology/weisfeiler_lehman_core.pyx +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/check.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/format.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/membership.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/neighbors.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_check.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_format.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_membership.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_neighbors.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_tfidf.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tests/test_values.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/utils/tfidf.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/colors.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/dendrograms.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/tests/__init__.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/tests/test_dendrograms.py +0 -0
- {scikit-network-0.32.0 → scikit-network-0.33.1}/sknetwork/visualization/tests/test_graphs.py +0 -0
|
@@ -2,7 +2,24 @@
|
|
|
2
2
|
History
|
|
3
3
|
=======
|
|
4
4
|
|
|
5
|
-
0.
|
|
5
|
+
0.33.1 (2024-09-18)
|
|
6
|
+
-------------------
|
|
7
|
+
|
|
8
|
+
* Upgrade Numpy
|
|
9
|
+
|
|
10
|
+
0.33.0 (2024-07-16)
|
|
11
|
+
-------------------
|
|
12
|
+
|
|
13
|
+
* Add Python 3.12
|
|
14
|
+
* Drop Python 3.8
|
|
15
|
+
|
|
16
|
+
0.32.1 (2024-04-02)
|
|
17
|
+
-------------------
|
|
18
|
+
|
|
19
|
+
* Fix documentation
|
|
20
|
+
* Fix wheel upload
|
|
21
|
+
|
|
22
|
+
0.32.0 (2024-03-29)
|
|
6
23
|
-------------------
|
|
7
24
|
|
|
8
25
|
* Add Leiden clustering algorithm
|
|
@@ -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.
|
|
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.8
|
|
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.8',
|
|
139
|
-
'Programming Language :: Python :: 3.9',
|
|
140
|
-
'Programming Language :: Python :: 3.10',
|
|
141
|
-
'Programming Language :: Python :: 3.11'
|
|
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.32.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
|
-
>>>
|
|
58
|
+
>>> float(round(np.mean(labels_pred == labels_true), 2))
|
|
59
59
|
0.97
|
|
60
60
|
|
|
61
61
|
References
|
|
@@ -74,8 +74,9 @@ class DiffusionClassifier(BaseClassifier):
|
|
|
74
74
|
self.scale = scale
|
|
75
75
|
|
|
76
76
|
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray],
|
|
77
|
-
labels: Optional[Union[dict,
|
|
78
|
-
|
|
77
|
+
labels: Optional[Union[dict, list, np.ndarray]] = None,
|
|
78
|
+
labels_row: Optional[Union[dict, list, np.ndarray]] = None,
|
|
79
|
+
labels_col: Optional[Union[dict, list, np.ndarray]] = None, force_bipartite: bool = False) \
|
|
79
80
|
-> 'DiffusionClassifier':
|
|
80
81
|
"""Compute the solution to the Dirichlet problem (temperatures at equilibrium).
|
|
81
82
|
|
|
@@ -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
|
-
>>>
|
|
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):
|
|
@@ -97,8 +97,9 @@ class NNClassifier(BaseClassifier):
|
|
|
97
97
|
|
|
98
98
|
return probs, labels
|
|
99
99
|
|
|
100
|
-
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
|
|
101
|
-
labels_row: Union[np.ndarray,
|
|
100
|
+
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
|
|
101
|
+
labels_row: Union[np.ndarray, list, dict] = None,
|
|
102
|
+
labels_col: Union[np.ndarray, list, dict] = None) -> 'NNClassifier':
|
|
102
103
|
"""Node classification by k-nearest neighbors in the embedding space.
|
|
103
104
|
|
|
104
105
|
Parameters
|
|
@@ -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
|
-
>>> get_accuracy_score(labels_true, labels_pred)
|
|
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
|
-
>>>
|
|
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
|
-
>>>
|
|
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
|
|
@@ -91,19 +91,20 @@ class Propagation(BaseClassifier):
|
|
|
91
91
|
labels = labels[index_seed]
|
|
92
92
|
return index_seed.astype(np.int32), index_remain.astype(np.int32), labels.astype(np.int32)
|
|
93
93
|
|
|
94
|
-
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, dict] = None,
|
|
95
|
-
labels_row: Union[np.ndarray,
|
|
94
|
+
def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], labels: Union[np.ndarray, list, dict] = None,
|
|
95
|
+
labels_row: Union[np.ndarray, list, dict] = None,
|
|
96
|
+
labels_col: Union[np.ndarray, list, dict] = None) -> 'Propagation':
|
|
96
97
|
"""Node classification by label propagation.
|
|
97
98
|
|
|
98
99
|
Parameters
|
|
99
100
|
----------
|
|
100
101
|
input_matrix : sparse.csr_matrix, np.ndarray
|
|
101
102
|
Adjacency matrix or biadjacency matrix of the graph.
|
|
102
|
-
labels :
|
|
103
|
+
labels : array, list or dict
|
|
103
104
|
Known labels. Negative values ignored.
|
|
104
|
-
labels_row :
|
|
105
|
+
labels_row : array, list or dict
|
|
105
106
|
Known labels of rows, for bipartite graphs.
|
|
106
|
-
labels_col :
|
|
107
|
+
labels_col : array, list or dict
|
|
107
108
|
Known labels of columns, for bipartite graphs.
|
|
108
109
|
|
|
109
110
|
Returns
|
|
@@ -76,7 +76,8 @@ class Leiden(Louvain):
|
|
|
76
76
|
References
|
|
77
77
|
----------
|
|
78
78
|
* Traag, V. A., Waltman, L., & Van Eck, N. J. (2019).
|
|
79
|
-
|
|
79
|
+
`From Louvain to Leiden: guaranteeing well-connected communities`, Scientific reports.
|
|
80
|
+
|
|
80
81
|
"""
|
|
81
82
|
|
|
82
83
|
def __init__(self, resolution: float = 1, modularity: str = 'dugue', tol_optimization: float = 1e-3,
|
|
@@ -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
|
|
|
@@ -131,9 +131,9 @@ class Louvain(BaseClustering, Log):
|
|
|
131
131
|
increase :
|
|
132
132
|
Gain in modularity after optimization.
|
|
133
133
|
"""
|
|
134
|
-
labels = labels.astype(np.
|
|
135
|
-
indices = adjacency.indices
|
|
136
|
-
indptr = adjacency.indptr
|
|
134
|
+
labels = labels.astype(np.int64)
|
|
135
|
+
indices = adjacency.indices.astype(np.int64)
|
|
136
|
+
indptr = adjacency.indptr.astype(np.int64)
|
|
137
137
|
data = adjacency.data.astype(np.float32)
|
|
138
138
|
out_weights = out_weights.astype(np.float32)
|
|
139
139
|
in_weights = in_weights.astype(np.float32)
|
|
@@ -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))
|