scikit-network 0.30.0__tar.gz → 0.32.0__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.30.0 → scikit-network-0.32.0}/AUTHORS.rst +3 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/HISTORY.rst +21 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/PKG-INFO +23 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/clustering.rst +11 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/embedding.rst +0 -4
- scikit-network-0.32.0/docs/reference/path.rst +21 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/ranking.rst +0 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/topology.rst +18 -7
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/visualization.rst +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/clustering/index.rst +2 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/embedding/index.rst +0 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/PKG-INFO +23 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/SOURCES.txt +29 -28
- {scikit-network-0.30.0 → scikit-network-0.32.0}/setup.cfg +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/setup.py +22 -15
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/__init__.py +1 -1
- scikit-network-0.32.0/sknetwork/base.py +67 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/base.py +24 -24
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/base_rank.py +17 -25
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/diffusion.py +35 -35
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/knn.py +24 -21
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/metrics.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/pagerank.py +10 -10
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/propagation.py +23 -20
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_diffusion.py +13 -3
- scikit-network-0.30.0/sknetwork/clustering/louvain_core.cpp → scikit-network-0.32.0/sknetwork/classification/vote.cpp +19509 -19512
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/vote.pyx +1 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/__init__.py +3 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/base.py +36 -40
- scikit-network-0.32.0/sknetwork/clustering/kcenters.py +253 -0
- scikit-network-0.32.0/sknetwork/clustering/leiden.py +241 -0
- scikit-network-0.32.0/sknetwork/clustering/leiden_core.cpp +31531 -0
- scikit-network-0.32.0/sknetwork/clustering/leiden_core.pyx +124 -0
- scikit-network-0.32.0/sknetwork/clustering/louvain.py +286 -0
- scikit-network-0.32.0/sknetwork/clustering/louvain_core.cpp +31176 -0
- scikit-network-0.32.0/sknetwork/clustering/louvain_core.pyx +124 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/postprocess.py +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/propagation_clustering.py +15 -19
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_API.py +8 -4
- scikit-network-0.32.0/sknetwork/clustering/tests/test_kcenters.py +92 -0
- scikit-network-0.32.0/sknetwork/clustering/tests/test_leiden.py +34 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_louvain.py +3 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/__init__.py +2 -1
- scikit-network-0.32.0/sknetwork/data/base.py +28 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/load.py +38 -37
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/models.py +18 -18
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/parse.py +54 -33
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/test_graphs.py +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_API.py +1 -1
- scikit-network-0.32.0/sknetwork/data/tests/test_base.py +14 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_load.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_parse.py +9 -12
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_test_graphs.py +1 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/toy_graphs.py +18 -18
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/__init__.py +0 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/base.py +21 -20
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/force_atlas.py +3 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/louvain_embedding.py +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/random_projection.py +5 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/spectral.py +0 -73
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_API.py +4 -28
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_louvain_embedding.py +4 -9
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_random_projection.py +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_spectral.py +5 -8
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_svd.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/base.py +4 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/base_layer.py +3 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/gnn_classifier.py +45 -89
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/layer.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/loss.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/optimizer.py +4 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_base_layer.py +4 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_gnn_classifier.py +12 -35
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/utils.py +8 -8
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/base.py +29 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/louvain_hierarchy.py +45 -41
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/paris.cpp +27334 -22853
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/paris.pyx +7 -9
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/postprocess.py +16 -16
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_API.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_algos.py +5 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_metrics.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/__init__.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/diteration.cpp +13910 -9926
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/diteration.pyx +0 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/eig_solver.py +1 -1
- scikit-network-0.30.0/sknetwork/linalg/normalization.py → scikit-network-0.32.0/sknetwork/linalg/normalizer.py +18 -15
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/operators.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/ppr_solver.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/push.cpp +23016 -18873
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/push.pyx +0 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/svd_solver.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_normalization.py +3 -7
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_operators.py +4 -8
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_ppr.py +1 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/base.py +13 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/nn.py +6 -6
- scikit-network-0.32.0/sknetwork/log.py +19 -0
- scikit-network-0.32.0/sknetwork/path/__init__.py +5 -0
- scikit-network-0.32.0/sknetwork/path/dag.py +54 -0
- scikit-network-0.32.0/sknetwork/path/distances.py +98 -0
- scikit-network-0.32.0/sknetwork/path/search.py +31 -0
- scikit-network-0.32.0/sknetwork/path/shortest_path.py +61 -0
- scikit-network-0.32.0/sknetwork/path/tests/test_dag.py +37 -0
- scikit-network-0.32.0/sknetwork/path/tests/test_distances.py +62 -0
- scikit-network-0.32.0/sknetwork/path/tests/test_search.py +40 -0
- scikit-network-0.32.0/sknetwork/path/tests/test_shortest_path.py +40 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/__init__.py +0 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/base.py +13 -8
- scikit-network-0.32.0/sknetwork/ranking/betweenness.cpp +9668 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/betweenness.pyx +0 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/closeness.py +7 -10
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/pagerank.py +14 -14
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/postprocess.py +12 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_API.py +2 -4
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_betweenness.py +3 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_closeness.py +3 -7
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_pagerank.py +11 -5
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_postprocess.py +5 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/base.py +19 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/diffusion.py +24 -10
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/tests/test_diffusion.py +8 -0
- scikit-network-0.32.0/sknetwork/test_base.py +35 -0
- scikit-network-0.32.0/sknetwork/test_log.py +15 -0
- scikit-network-0.32.0/sknetwork/topology/__init__.py +8 -0
- scikit-network-0.30.0/sknetwork/topology/kcliques.cpp → scikit-network-0.32.0/sknetwork/topology/cliques.cpp +22939 -19839
- scikit-network-0.32.0/sknetwork/topology/cliques.pyx +149 -0
- scikit-network-0.30.0/sknetwork/topology/kcore.cpp → scikit-network-0.32.0/sknetwork/topology/core.cpp +21786 -18957
- scikit-network-0.32.0/sknetwork/topology/core.pyx +90 -0
- scikit-network-0.32.0/sknetwork/topology/cycles.py +243 -0
- {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/topology}/minheap.cpp +19425 -15377
- {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/topology}/minheap.pxd +1 -3
- {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/topology}/minheap.pyx +1 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/structure.py +3 -43
- scikit-network-0.32.0/sknetwork/topology/tests/test_cliques.py +28 -0
- scikit-network-0.32.0/sknetwork/topology/tests/test_core.py +19 -0
- scikit-network-0.32.0/sknetwork/topology/tests/test_cycles.py +65 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/tests/test_structure.py +2 -16
- scikit-network-0.32.0/sknetwork/topology/tests/test_triangles.py +38 -0
- scikit-network-0.32.0/sknetwork/topology/tests/test_wl.py +72 -0
- scikit-network-0.32.0/sknetwork/topology/triangles.cpp +8856 -0
- scikit-network-0.32.0/sknetwork/topology/triangles.pyx +151 -0
- scikit-network-0.32.0/sknetwork/topology/weisfeiler_lehman.py +133 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/weisfeiler_lehman_core.cpp +14780 -10711
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/weisfeiler_lehman_core.pyx +0 -2
- scikit-network-0.32.0/sknetwork/utils/__init__.py +7 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/check.py +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/format.py +5 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/membership.py +2 -2
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_check.py +3 -3
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_format.py +3 -1
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/values.py +1 -1
- scikit-network-0.32.0/sknetwork/visualization/__init__.py +4 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/dendrograms.py +55 -7
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/graphs.py +292 -72
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/tests/test_dendrograms.py +9 -9
- scikit-network-0.32.0/sknetwork/visualization/tests/test_graphs.py +176 -0
- scikit-network-0.30.0/docs/reference/path.rst +0 -49
- scikit-network-0.30.0/sknetwork/classification/vote.cpp +0 -23449
- scikit-network-0.30.0/sknetwork/clustering/louvain.py +0 -255
- scikit-network-0.30.0/sknetwork/clustering/louvain_core.pyx +0 -134
- scikit-network-0.30.0/sknetwork/embedding/louvain_hierarchy.py +0 -142
- scikit-network-0.30.0/sknetwork/embedding/tests/test_louvain_hierarchy.py +0 -19
- scikit-network-0.30.0/sknetwork/path/__init__.py +0 -4
- scikit-network-0.30.0/sknetwork/path/metrics.py +0 -148
- scikit-network-0.30.0/sknetwork/path/search.py +0 -65
- scikit-network-0.30.0/sknetwork/path/shortest_path.py +0 -186
- scikit-network-0.30.0/sknetwork/path/tests/test_metrics.py +0 -29
- scikit-network-0.30.0/sknetwork/path/tests/test_search.py +0 -25
- scikit-network-0.30.0/sknetwork/path/tests/test_shortest_path.py +0 -45
- scikit-network-0.30.0/sknetwork/ranking/betweenness.cpp +0 -7012
- scikit-network-0.30.0/sknetwork/ranking/harmonic.py +0 -82
- scikit-network-0.30.0/sknetwork/topology/__init__.py +0 -9
- scikit-network-0.30.0/sknetwork/topology/dag.py +0 -74
- scikit-network-0.30.0/sknetwork/topology/dag_core.cpp +0 -23353
- scikit-network-0.30.0/sknetwork/topology/dag_core.pyx +0 -38
- scikit-network-0.30.0/sknetwork/topology/kcliques.pyx +0 -193
- scikit-network-0.30.0/sknetwork/topology/kcore.pyx +0 -120
- scikit-network-0.30.0/sknetwork/topology/tests/test_cliques.py +0 -28
- scikit-network-0.30.0/sknetwork/topology/tests/test_cores.py +0 -21
- scikit-network-0.30.0/sknetwork/topology/tests/test_dag.py +0 -26
- scikit-network-0.30.0/sknetwork/topology/tests/test_triangles.py +0 -42
- scikit-network-0.30.0/sknetwork/topology/tests/test_wl_coloring.py +0 -49
- scikit-network-0.30.0/sknetwork/topology/tests/test_wl_kernel.py +0 -31
- scikit-network-0.30.0/sknetwork/topology/triangles.cpp +0 -6532
- scikit-network-0.30.0/sknetwork/topology/triangles.pyx +0 -166
- scikit-network-0.30.0/sknetwork/topology/weisfeiler_lehman.py +0 -163
- scikit-network-0.30.0/sknetwork/utils/__init__.py +0 -37
- scikit-network-0.30.0/sknetwork/utils/base.py +0 -35
- scikit-network-0.30.0/sknetwork/utils/simplex.py +0 -140
- scikit-network-0.30.0/sknetwork/utils/tests/test_base.py +0 -28
- scikit-network-0.30.0/sknetwork/utils/tests/test_bunch.py +0 -16
- scikit-network-0.30.0/sknetwork/utils/tests/test_projection_simplex.py +0 -33
- scikit-network-0.30.0/sknetwork/utils/tests/test_verbose.py +0 -15
- scikit-network-0.30.0/sknetwork/utils/verbose.py +0 -37
- scikit-network-0.30.0/sknetwork/visualization/__init__.py +0 -4
- scikit-network-0.30.0/sknetwork/visualization/tests/test_graphs.py +0 -167
- {scikit-network-0.30.0 → scikit-network-0.32.0}/CONTRIBUTING.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/LICENSE +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/MANIFEST.in +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/README.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/Makefile +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/authors.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/conf.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/contributing.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/first_steps.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/genindex.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/glossary.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/history.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/make.bat +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/readme.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/classification.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/data.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/gnn.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/hierarchy.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/linalg.rst +7 -7
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/linkpred.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/regression.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/utils.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/classification/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/data/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/gnn/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/hierarchy/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/linkpred/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/overview/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/path/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/ranking/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/regression/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/topology/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/visualization/index.rst +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/dependency_links.txt +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/not-zip-safe +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/requires.txt +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/top_level.txt +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_API.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_knn.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_metrics.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_pagerank.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_propagation.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/metrics.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_metrics.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_postprocess.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_models.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_toy_graphs.py +0 -0
- {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/data}/timeout.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/spring.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/svd.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_force_atlas.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_spring.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/activation.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/base_activation.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/neighbor_sampler.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_activation.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_base.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_layers.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_loss.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_neigh_sampler.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_optimizer.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_utils.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/metrics.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_postprocess.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/basics.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/laplacian.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/polynome.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/sparse_lowrank.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_eig.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_laplacian.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_polynome.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_sparse_lowrank.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_svd.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/tests/test_nn.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/path/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/hits.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/katz.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_hits.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/tests/test_API.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/sknetwork.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/neighbors.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/__init__.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_membership.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_neighbors.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_tfidf.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_values.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tfidf.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/colors.py +0 -0
- {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/tests/__init__.py +0 -0
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
History
|
|
3
3
|
=======
|
|
4
4
|
|
|
5
|
+
0.32.0 (2024-03-28)
|
|
6
|
+
-------------------
|
|
7
|
+
|
|
8
|
+
* Add Leiden clustering algorithm
|
|
9
|
+
* Add k-center clustering algorithm
|
|
10
|
+
* Add functions to detect and break cycles
|
|
11
|
+
* Add damping factor in diffusion
|
|
12
|
+
* Fix F1 scores
|
|
13
|
+
* Remove hierarchical Louvain embedding
|
|
14
|
+
* Get clustering coefficient for directed graphs
|
|
15
|
+
|
|
16
|
+
0.31.0 (2023-05-22)
|
|
17
|
+
-------------------
|
|
18
|
+
|
|
19
|
+
* Add Python 3.11
|
|
20
|
+
* Add set_param / get_param to algorithms, suggested by Franz Kiraly (#557)
|
|
21
|
+
* Compute shortest paths by matrix-vector multiplications
|
|
22
|
+
* Make tools on topology (cliques, code-decomposition, etc.) as functions
|
|
23
|
+
* Rename parameter membership -> probs for soft classification / clustering
|
|
24
|
+
* Add softmax to classification by diffusion
|
|
25
|
+
|
|
5
26
|
0.30.0 (2023-04-12)
|
|
6
27
|
-------------------
|
|
7
28
|
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scikit-network
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.32.0
|
|
4
4
|
Summary: Graph algorithms
|
|
5
5
|
Home-page: https://github.com/sknetwork-team/scikit-network
|
|
6
6
|
Author: Scikit-network team
|
|
7
7
|
Author-email: bonald@enst.fr
|
|
8
8
|
License: BSD license
|
|
9
9
|
Keywords: sknetwork
|
|
10
|
-
Platform: UNKNOWN
|
|
11
10
|
Classifier: Development Status :: 3 - Alpha
|
|
12
11
|
Classifier: Intended Audience :: Developers
|
|
13
12
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -19,6 +18,7 @@ Classifier: Programming Language :: Cython
|
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.8
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Requires-Python: >=3.8
|
|
23
23
|
Description-Content-Type: text/x-rst
|
|
24
24
|
License-File: LICENSE
|
|
@@ -116,6 +116,27 @@ the `Journal of Machine Learning Research <https://jmlr.org>`_:
|
|
|
116
116
|
History
|
|
117
117
|
=======
|
|
118
118
|
|
|
119
|
+
0.32.0 (2024-03-28)
|
|
120
|
+
-------------------
|
|
121
|
+
|
|
122
|
+
* Add Leiden clustering algorithm
|
|
123
|
+
* Add k-center clustering algorithm
|
|
124
|
+
* Add functions to detect and break cycles
|
|
125
|
+
* Add damping factor in diffusion
|
|
126
|
+
* Fix F1 scores
|
|
127
|
+
* Remove hierarchical Louvain embedding
|
|
128
|
+
* Get clustering coefficient for directed graphs
|
|
129
|
+
|
|
130
|
+
0.31.0 (2023-05-22)
|
|
131
|
+
-------------------
|
|
132
|
+
|
|
133
|
+
* Add Python 3.11
|
|
134
|
+
* Add set_param / get_param to algorithms, suggested by Franz Kiraly (#557)
|
|
135
|
+
* Compute shortest paths by matrix-vector multiplications
|
|
136
|
+
* Make tools on topology (cliques, code-decomposition, etc.) as functions
|
|
137
|
+
* Rename parameter membership -> probs for soft classification / clustering
|
|
138
|
+
* Add softmax to classification by diffusion
|
|
139
|
+
|
|
119
140
|
0.30.0 (2023-04-12)
|
|
120
141
|
-------------------
|
|
121
142
|
|
|
@@ -480,5 +501,3 @@ History
|
|
|
480
501
|
------------------
|
|
481
502
|
|
|
482
503
|
* First release on PyPI.
|
|
483
|
-
|
|
484
|
-
|
|
@@ -49,6 +49,17 @@ When the graph is weighted, the degree of a node is replaced by its weight (sum
|
|
|
49
49
|
|
|
50
50
|
.. autoclass:: sknetwork.clustering.Louvain
|
|
51
51
|
|
|
52
|
+
Leiden
|
|
53
|
+
------
|
|
54
|
+
|
|
55
|
+
.. autoclass:: sknetwork.clustering.Leiden
|
|
56
|
+
|
|
57
|
+
K-centers
|
|
58
|
+
---------
|
|
59
|
+
|
|
60
|
+
.. autoclass:: sknetwork.clustering.KCenters
|
|
61
|
+
|
|
62
|
+
|
|
52
63
|
Propagation
|
|
53
64
|
-----------
|
|
54
65
|
.. autoclass:: sknetwork.clustering.PropagationClustering
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.. _path:
|
|
2
|
+
|
|
3
|
+
Path
|
|
4
|
+
****
|
|
5
|
+
|
|
6
|
+
Distances
|
|
7
|
+
---------
|
|
8
|
+
|
|
9
|
+
.. autofunction:: sknetwork.path.get_distances
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Shortest paths
|
|
13
|
+
--------------
|
|
14
|
+
|
|
15
|
+
.. autofunction:: sknetwork.path.get_shortest_path
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Search
|
|
19
|
+
------
|
|
20
|
+
|
|
21
|
+
.. autofunction:: sknetwork.path.breadth_first_search
|
|
@@ -27,10 +27,6 @@ Closeness centrality
|
|
|
27
27
|
--------------------
|
|
28
28
|
.. autoclass:: sknetwork.ranking.Closeness
|
|
29
29
|
|
|
30
|
-
Harmonic centrality
|
|
31
|
-
-------------------
|
|
32
|
-
.. autoclass:: sknetwork.ranking.Harmonic
|
|
33
|
-
|
|
34
30
|
Post-processing
|
|
35
31
|
---------------
|
|
36
32
|
.. autofunction:: sknetwork.ranking.top_k
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Topology
|
|
4
4
|
********
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Functions related to graph topology.
|
|
7
7
|
|
|
8
8
|
Connectivity
|
|
9
9
|
------------
|
|
@@ -19,27 +19,38 @@ Structure
|
|
|
19
19
|
|
|
20
20
|
.. autofunction:: sknetwork.topology.is_bipartite
|
|
21
21
|
|
|
22
|
+
Cycles
|
|
23
|
+
------
|
|
24
|
+
|
|
22
25
|
.. autofunction:: sknetwork.topology.is_acyclic
|
|
23
26
|
|
|
24
|
-
..
|
|
27
|
+
.. autofunction:: sknetwork.topology.get_cycles
|
|
28
|
+
|
|
29
|
+
.. autofunction:: sknetwork.topology.break_cycles
|
|
25
30
|
|
|
26
31
|
Core decomposition
|
|
27
32
|
------------------
|
|
28
33
|
|
|
29
|
-
.. autoclass:: sknetwork.topology.
|
|
34
|
+
.. autoclass:: sknetwork.topology.get_core_decomposition
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
Triangles
|
|
38
|
+
---------
|
|
39
|
+
|
|
40
|
+
.. autoclass:: sknetwork.topology.count_triangles
|
|
41
|
+
|
|
42
|
+
.. autoclass:: sknetwork.topology.get_clustering_coefficient
|
|
30
43
|
|
|
31
44
|
|
|
32
45
|
Cliques
|
|
33
46
|
-------
|
|
34
47
|
|
|
35
|
-
.. autoclass:: sknetwork.topology.
|
|
36
|
-
|
|
37
|
-
.. autoclass:: sknetwork.topology.Cliques
|
|
48
|
+
.. autoclass:: sknetwork.topology.count_cliques
|
|
38
49
|
|
|
39
50
|
|
|
40
51
|
Isomorphism
|
|
41
52
|
-----------
|
|
42
53
|
|
|
43
|
-
.. autoclass:: sknetwork.topology.
|
|
54
|
+
.. autoclass:: sknetwork.topology.color_weisfeiler_lehman
|
|
44
55
|
|
|
45
56
|
.. autofunction:: sknetwork.topology.are_isomorphic
|
|
@@ -10,9 +10,9 @@ Graphs
|
|
|
10
10
|
|
|
11
11
|
.. autofunction:: sknetwork.visualization.graphs.svg_graph
|
|
12
12
|
|
|
13
|
-
.. autofunction:: sknetwork.visualization.graphs.
|
|
13
|
+
.. autofunction:: sknetwork.visualization.graphs.visualize_bigraph
|
|
14
14
|
|
|
15
15
|
Dendrograms
|
|
16
16
|
-----------
|
|
17
17
|
|
|
18
|
-
.. autofunction:: sknetwork.visualization.dendrograms.
|
|
18
|
+
.. autofunction:: sknetwork.visualization.dendrograms.visualize_dendrogram
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scikit-network
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.32.0
|
|
4
4
|
Summary: Graph algorithms
|
|
5
5
|
Home-page: https://github.com/sknetwork-team/scikit-network
|
|
6
6
|
Author: Scikit-network team
|
|
7
7
|
Author-email: bonald@enst.fr
|
|
8
8
|
License: BSD license
|
|
9
9
|
Keywords: sknetwork
|
|
10
|
-
Platform: UNKNOWN
|
|
11
10
|
Classifier: Development Status :: 3 - Alpha
|
|
12
11
|
Classifier: Intended Audience :: Developers
|
|
13
12
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -19,6 +18,7 @@ Classifier: Programming Language :: Cython
|
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.8
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Requires-Python: >=3.8
|
|
23
23
|
Description-Content-Type: text/x-rst
|
|
24
24
|
License-File: LICENSE
|
|
@@ -116,6 +116,27 @@ the `Journal of Machine Learning Research <https://jmlr.org>`_:
|
|
|
116
116
|
History
|
|
117
117
|
=======
|
|
118
118
|
|
|
119
|
+
0.32.0 (2024-03-28)
|
|
120
|
+
-------------------
|
|
121
|
+
|
|
122
|
+
* Add Leiden clustering algorithm
|
|
123
|
+
* Add k-center clustering algorithm
|
|
124
|
+
* Add functions to detect and break cycles
|
|
125
|
+
* Add damping factor in diffusion
|
|
126
|
+
* Fix F1 scores
|
|
127
|
+
* Remove hierarchical Louvain embedding
|
|
128
|
+
* Get clustering coefficient for directed graphs
|
|
129
|
+
|
|
130
|
+
0.31.0 (2023-05-22)
|
|
131
|
+
-------------------
|
|
132
|
+
|
|
133
|
+
* Add Python 3.11
|
|
134
|
+
* Add set_param / get_param to algorithms, suggested by Franz Kiraly (#557)
|
|
135
|
+
* Compute shortest paths by matrix-vector multiplications
|
|
136
|
+
* Make tools on topology (cliques, code-decomposition, etc.) as functions
|
|
137
|
+
* Rename parameter membership -> probs for soft classification / clustering
|
|
138
|
+
* Add softmax to classification by diffusion
|
|
139
|
+
|
|
119
140
|
0.30.0 (2023-04-12)
|
|
120
141
|
-------------------
|
|
121
142
|
|
|
@@ -480,5 +501,3 @@ History
|
|
|
480
501
|
------------------
|
|
481
502
|
|
|
482
503
|
* First release on PyPI.
|
|
483
|
-
|
|
484
|
-
|
|
@@ -7,17 +7,17 @@ README.rst
|
|
|
7
7
|
setup.cfg
|
|
8
8
|
setup.py
|
|
9
9
|
./sknetwork/classification/vote.cpp
|
|
10
|
+
./sknetwork/clustering/leiden_core.cpp
|
|
10
11
|
./sknetwork/clustering/louvain_core.cpp
|
|
11
12
|
./sknetwork/hierarchy/paris.cpp
|
|
12
13
|
./sknetwork/linalg/diteration.cpp
|
|
13
14
|
./sknetwork/linalg/push.cpp
|
|
14
15
|
./sknetwork/ranking/betweenness.cpp
|
|
15
|
-
./sknetwork/topology/
|
|
16
|
-
./sknetwork/topology/
|
|
17
|
-
./sknetwork/topology/
|
|
16
|
+
./sknetwork/topology/cliques.cpp
|
|
17
|
+
./sknetwork/topology/core.cpp
|
|
18
|
+
./sknetwork/topology/minheap.cpp
|
|
18
19
|
./sknetwork/topology/triangles.cpp
|
|
19
20
|
./sknetwork/topology/weisfeiler_lehman_core.cpp
|
|
20
|
-
./sknetwork/utils/minheap.cpp
|
|
21
21
|
docs/Makefile
|
|
22
22
|
docs/authors.rst
|
|
23
23
|
docs/conf.py
|
|
@@ -63,7 +63,11 @@ scikit_network.egg-info/not-zip-safe
|
|
|
63
63
|
scikit_network.egg-info/requires.txt
|
|
64
64
|
scikit_network.egg-info/top_level.txt
|
|
65
65
|
sknetwork/__init__.py
|
|
66
|
+
sknetwork/base.py
|
|
67
|
+
sknetwork/log.py
|
|
66
68
|
sknetwork/sknetwork.py
|
|
69
|
+
sknetwork/test_base.py
|
|
70
|
+
sknetwork/test_log.py
|
|
67
71
|
sknetwork/classification/__init__.py
|
|
68
72
|
sknetwork/classification/base.py
|
|
69
73
|
sknetwork/classification/base_rank.py
|
|
@@ -82,6 +86,9 @@ sknetwork/classification/tests/test_pagerank.py
|
|
|
82
86
|
sknetwork/classification/tests/test_propagation.py
|
|
83
87
|
sknetwork/clustering/__init__.py
|
|
84
88
|
sknetwork/clustering/base.py
|
|
89
|
+
sknetwork/clustering/kcenters.py
|
|
90
|
+
sknetwork/clustering/leiden.py
|
|
91
|
+
sknetwork/clustering/leiden_core.pyx
|
|
85
92
|
sknetwork/clustering/louvain.py
|
|
86
93
|
sknetwork/clustering/louvain_core.pyx
|
|
87
94
|
sknetwork/clustering/metrics.py
|
|
@@ -89,17 +96,22 @@ sknetwork/clustering/postprocess.py
|
|
|
89
96
|
sknetwork/clustering/propagation_clustering.py
|
|
90
97
|
sknetwork/clustering/tests/__init__.py
|
|
91
98
|
sknetwork/clustering/tests/test_API.py
|
|
99
|
+
sknetwork/clustering/tests/test_kcenters.py
|
|
100
|
+
sknetwork/clustering/tests/test_leiden.py
|
|
92
101
|
sknetwork/clustering/tests/test_louvain.py
|
|
93
102
|
sknetwork/clustering/tests/test_metrics.py
|
|
94
103
|
sknetwork/clustering/tests/test_postprocess.py
|
|
95
104
|
sknetwork/data/__init__.py
|
|
105
|
+
sknetwork/data/base.py
|
|
96
106
|
sknetwork/data/load.py
|
|
97
107
|
sknetwork/data/models.py
|
|
98
108
|
sknetwork/data/parse.py
|
|
99
109
|
sknetwork/data/test_graphs.py
|
|
110
|
+
sknetwork/data/timeout.py
|
|
100
111
|
sknetwork/data/toy_graphs.py
|
|
101
112
|
sknetwork/data/tests/__init__.py
|
|
102
113
|
sknetwork/data/tests/test_API.py
|
|
114
|
+
sknetwork/data/tests/test_base.py
|
|
103
115
|
sknetwork/data/tests/test_load.py
|
|
104
116
|
sknetwork/data/tests/test_models.py
|
|
105
117
|
sknetwork/data/tests/test_parse.py
|
|
@@ -109,7 +121,6 @@ sknetwork/embedding/__init__.py
|
|
|
109
121
|
sknetwork/embedding/base.py
|
|
110
122
|
sknetwork/embedding/force_atlas.py
|
|
111
123
|
sknetwork/embedding/louvain_embedding.py
|
|
112
|
-
sknetwork/embedding/louvain_hierarchy.py
|
|
113
124
|
sknetwork/embedding/random_projection.py
|
|
114
125
|
sknetwork/embedding/spectral.py
|
|
115
126
|
sknetwork/embedding/spring.py
|
|
@@ -118,7 +129,6 @@ sknetwork/embedding/tests/__init__.py
|
|
|
118
129
|
sknetwork/embedding/tests/test_API.py
|
|
119
130
|
sknetwork/embedding/tests/test_force_atlas.py
|
|
120
131
|
sknetwork/embedding/tests/test_louvain_embedding.py
|
|
121
|
-
sknetwork/embedding/tests/test_louvain_hierarchy.py
|
|
122
132
|
sknetwork/embedding/tests/test_random_projection.py
|
|
123
133
|
sknetwork/embedding/tests/test_spectral.py
|
|
124
134
|
sknetwork/embedding/tests/test_spring.py
|
|
@@ -160,7 +170,7 @@ sknetwork/linalg/basics.py
|
|
|
160
170
|
sknetwork/linalg/diteration.pyx
|
|
161
171
|
sknetwork/linalg/eig_solver.py
|
|
162
172
|
sknetwork/linalg/laplacian.py
|
|
163
|
-
sknetwork/linalg/
|
|
173
|
+
sknetwork/linalg/normalizer.py
|
|
164
174
|
sknetwork/linalg/operators.py
|
|
165
175
|
sknetwork/linalg/polynome.py
|
|
166
176
|
sknetwork/linalg/ppr_solver.py
|
|
@@ -182,18 +192,19 @@ sknetwork/linkpred/nn.py
|
|
|
182
192
|
sknetwork/linkpred/tests/__init__.py
|
|
183
193
|
sknetwork/linkpred/tests/test_nn.py
|
|
184
194
|
sknetwork/path/__init__.py
|
|
185
|
-
sknetwork/path/
|
|
195
|
+
sknetwork/path/dag.py
|
|
196
|
+
sknetwork/path/distances.py
|
|
186
197
|
sknetwork/path/search.py
|
|
187
198
|
sknetwork/path/shortest_path.py
|
|
188
199
|
sknetwork/path/tests/__init__.py
|
|
189
|
-
sknetwork/path/tests/
|
|
200
|
+
sknetwork/path/tests/test_dag.py
|
|
201
|
+
sknetwork/path/tests/test_distances.py
|
|
190
202
|
sknetwork/path/tests/test_search.py
|
|
191
203
|
sknetwork/path/tests/test_shortest_path.py
|
|
192
204
|
sknetwork/ranking/__init__.py
|
|
193
205
|
sknetwork/ranking/base.py
|
|
194
206
|
sknetwork/ranking/betweenness.pyx
|
|
195
207
|
sknetwork/ranking/closeness.py
|
|
196
|
-
sknetwork/ranking/harmonic.py
|
|
197
208
|
sknetwork/ranking/hits.py
|
|
198
209
|
sknetwork/ranking/katz.py
|
|
199
210
|
sknetwork/ranking/pagerank.py
|
|
@@ -212,46 +223,36 @@ sknetwork/regression/tests/__init__.py
|
|
|
212
223
|
sknetwork/regression/tests/test_API.py
|
|
213
224
|
sknetwork/regression/tests/test_diffusion.py
|
|
214
225
|
sknetwork/topology/__init__.py
|
|
215
|
-
sknetwork/topology/
|
|
216
|
-
sknetwork/topology/
|
|
217
|
-
sknetwork/topology/
|
|
218
|
-
sknetwork/topology/
|
|
226
|
+
sknetwork/topology/cliques.pyx
|
|
227
|
+
sknetwork/topology/core.pyx
|
|
228
|
+
sknetwork/topology/cycles.py
|
|
229
|
+
sknetwork/topology/minheap.pxd
|
|
230
|
+
sknetwork/topology/minheap.pyx
|
|
219
231
|
sknetwork/topology/structure.py
|
|
220
232
|
sknetwork/topology/triangles.pyx
|
|
221
233
|
sknetwork/topology/weisfeiler_lehman.py
|
|
222
234
|
sknetwork/topology/weisfeiler_lehman_core.pyx
|
|
223
235
|
sknetwork/topology/tests/__init__.py
|
|
224
236
|
sknetwork/topology/tests/test_cliques.py
|
|
225
|
-
sknetwork/topology/tests/
|
|
226
|
-
sknetwork/topology/tests/
|
|
237
|
+
sknetwork/topology/tests/test_core.py
|
|
238
|
+
sknetwork/topology/tests/test_cycles.py
|
|
227
239
|
sknetwork/topology/tests/test_structure.py
|
|
228
240
|
sknetwork/topology/tests/test_triangles.py
|
|
229
|
-
sknetwork/topology/tests/
|
|
230
|
-
sknetwork/topology/tests/test_wl_kernel.py
|
|
241
|
+
sknetwork/topology/tests/test_wl.py
|
|
231
242
|
sknetwork/utils/__init__.py
|
|
232
|
-
sknetwork/utils/base.py
|
|
233
243
|
sknetwork/utils/check.py
|
|
234
244
|
sknetwork/utils/format.py
|
|
235
245
|
sknetwork/utils/membership.py
|
|
236
|
-
sknetwork/utils/minheap.pxd
|
|
237
|
-
sknetwork/utils/minheap.pyx
|
|
238
246
|
sknetwork/utils/neighbors.py
|
|
239
|
-
sknetwork/utils/simplex.py
|
|
240
247
|
sknetwork/utils/tfidf.py
|
|
241
|
-
sknetwork/utils/timeout.py
|
|
242
248
|
sknetwork/utils/values.py
|
|
243
|
-
sknetwork/utils/verbose.py
|
|
244
249
|
sknetwork/utils/tests/__init__.py
|
|
245
|
-
sknetwork/utils/tests/test_base.py
|
|
246
|
-
sknetwork/utils/tests/test_bunch.py
|
|
247
250
|
sknetwork/utils/tests/test_check.py
|
|
248
251
|
sknetwork/utils/tests/test_format.py
|
|
249
252
|
sknetwork/utils/tests/test_membership.py
|
|
250
253
|
sknetwork/utils/tests/test_neighbors.py
|
|
251
|
-
sknetwork/utils/tests/test_projection_simplex.py
|
|
252
254
|
sknetwork/utils/tests/test_tfidf.py
|
|
253
255
|
sknetwork/utils/tests/test_values.py
|
|
254
|
-
sknetwork/utils/tests/test_verbose.py
|
|
255
256
|
sknetwork/visualization/__init__.py
|
|
256
257
|
sknetwork/visualization/colors.py
|
|
257
258
|
sknetwork/visualization/dendrograms.py
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
+
"""Setup script."""
|
|
3
4
|
|
|
4
|
-
"""The setup script."""
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
from
|
|
8
|
-
import distutils.util
|
|
9
|
-
from distutils.core import setup, Extension
|
|
6
|
+
from setuptools import find_packages, setup, Extension
|
|
7
|
+
from sysconfig import get_platform
|
|
10
8
|
from distutils.command.build_ext import build_ext
|
|
11
9
|
import os
|
|
12
10
|
from glob import glob
|
|
@@ -37,23 +35,23 @@ LINK_OPTIONS = {"other": []}
|
|
|
37
35
|
EXTRA_COMPILE_ARGS = ['-fopenmp']
|
|
38
36
|
EXTRA_LINK_ARGS = ['-fopenmp']
|
|
39
37
|
|
|
40
|
-
# Check whether we're on
|
|
41
|
-
|
|
42
|
-
if
|
|
38
|
+
# Check whether we're on MacOSX >= 10.7
|
|
39
|
+
platform = get_platform()
|
|
40
|
+
if platform.startswith("macosx"):
|
|
43
41
|
EXTRA_COMPILE_ARGS = []
|
|
44
42
|
EXTRA_LINK_ARGS = []
|
|
45
43
|
# EXTRA_COMPILE_ARGS = ['-lomp']
|
|
46
44
|
# EXTRA_LINK_ARGS = ['-lomp']
|
|
47
|
-
version =
|
|
45
|
+
version = platform.split("-")[1].split(".")
|
|
48
46
|
if int(version[0]) > 10 or (int(version[0]) == 10 and int(version[1]) >= 7):
|
|
49
47
|
COMPILE_OPTIONS["other"].append("-stdlib=libc++")
|
|
50
48
|
LINK_OPTIONS["other"].append("-lc++")
|
|
51
|
-
# g++ (used by unix compiler on
|
|
49
|
+
# g++ (used by unix compiler on MacOSX) links to libstdc++ as a default lib.
|
|
52
50
|
# See: https://stackoverflow.com/questions/1653047/avoid-linking-to-libstdc
|
|
53
51
|
LINK_OPTIONS["other"].append("-nodefaultlibs")
|
|
54
52
|
|
|
55
53
|
# Windows does not (yet) support OpenMP
|
|
56
|
-
if
|
|
54
|
+
if platform.startswith("win"):
|
|
57
55
|
EXTRA_COMPILE_ARGS = ['/d2FH4-']
|
|
58
56
|
EXTRA_LINK_ARGS = []
|
|
59
57
|
|
|
@@ -95,6 +93,12 @@ if os.environ.get('SKNETWORK_DISABLE_CYTHONIZE') is None:
|
|
|
95
93
|
else:
|
|
96
94
|
HAVE_CYTHON = False
|
|
97
95
|
|
|
96
|
+
if os.environ.get('WITH_CYTHON_PROFILE') is not None:
|
|
97
|
+
ext_define_macros = [('CYTHON_TRACE_NOGIL', '1')]
|
|
98
|
+
compiler_directives = {'linetrace': True}
|
|
99
|
+
else:
|
|
100
|
+
ext_define_macros = []
|
|
101
|
+
compiler_directives = {}
|
|
98
102
|
|
|
99
103
|
if HAVE_CYTHON:
|
|
100
104
|
from Cython.Build import cythonize
|
|
@@ -110,7 +114,10 @@ if HAVE_CYTHON:
|
|
|
110
114
|
|
|
111
115
|
ext_modules += cythonize(Extension(name=mod_name, sources=[pyx_path], include_dirs=[numpy.get_include()],
|
|
112
116
|
extra_compile_args=EXTRA_COMPILE_ARGS,
|
|
113
|
-
extra_link_args=EXTRA_LINK_ARGS
|
|
117
|
+
extra_link_args=EXTRA_LINK_ARGS,
|
|
118
|
+
define_macros=ext_define_macros),
|
|
119
|
+
annotate=True,
|
|
120
|
+
compiler_directives=compiler_directives)
|
|
114
121
|
else:
|
|
115
122
|
ext_modules = [Extension(modules[index], [c_paths[index]], include_dirs=[numpy.get_include()])
|
|
116
123
|
for index in range(len(modules))]
|
|
@@ -130,7 +137,8 @@ setup(
|
|
|
130
137
|
'Programming Language :: Cython',
|
|
131
138
|
'Programming Language :: Python :: 3.8',
|
|
132
139
|
'Programming Language :: Python :: 3.9',
|
|
133
|
-
'Programming Language :: Python :: 3.10'
|
|
140
|
+
'Programming Language :: Python :: 3.10',
|
|
141
|
+
'Programming Language :: Python :: 3.11'
|
|
134
142
|
],
|
|
135
143
|
description="Graph algorithms",
|
|
136
144
|
install_requires=requirements,
|
|
@@ -145,10 +153,9 @@ setup(
|
|
|
145
153
|
test_suite='tests',
|
|
146
154
|
tests_require=test_requirements,
|
|
147
155
|
url='https://github.com/sknetwork-team/scikit-network',
|
|
148
|
-
version='0.
|
|
156
|
+
version='0.32.0',
|
|
149
157
|
zip_safe=False,
|
|
150
158
|
ext_modules=ext_modules,
|
|
151
159
|
include_dirs=[numpy.get_include()],
|
|
152
160
|
cmdclass={"build_ext": BuildExtSubclass}
|
|
153
161
|
)
|
|
154
|
-
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
Created in June 2019
|
|
5
|
+
@author: Quentin Lutz <qlutz@enst.fr>
|
|
6
|
+
"""
|
|
7
|
+
import inspect
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Algorithm:
|
|
11
|
+
"""Base class for all algorithms.
|
|
12
|
+
"""
|
|
13
|
+
def get_params(self):
|
|
14
|
+
"""Get parameters as dictionary.
|
|
15
|
+
|
|
16
|
+
Returns
|
|
17
|
+
-------
|
|
18
|
+
params : dict
|
|
19
|
+
Parameters of the algorithm.
|
|
20
|
+
"""
|
|
21
|
+
signature = inspect.signature(self.__class__.__init__)
|
|
22
|
+
params_exclude = ['self', 'random_state', 'verbose']
|
|
23
|
+
params = dict()
|
|
24
|
+
for param in signature.parameters.values():
|
|
25
|
+
name = param.name
|
|
26
|
+
if name not in params_exclude:
|
|
27
|
+
try:
|
|
28
|
+
value = self.__dict__[name]
|
|
29
|
+
except KeyError:
|
|
30
|
+
continue
|
|
31
|
+
params[name] = value
|
|
32
|
+
return params
|
|
33
|
+
|
|
34
|
+
def set_params(self, params: dict) -> 'Algorithm':
|
|
35
|
+
"""Set parameters of the algorithm.
|
|
36
|
+
|
|
37
|
+
Parameters
|
|
38
|
+
----------
|
|
39
|
+
params : dict
|
|
40
|
+
Parameters of the algorithm.
|
|
41
|
+
|
|
42
|
+
Returns
|
|
43
|
+
-------
|
|
44
|
+
self : :class:`Algorithm`
|
|
45
|
+
"""
|
|
46
|
+
valid_params = self.get_params()
|
|
47
|
+
if type(params) is not dict:
|
|
48
|
+
raise ValueError('The parameters must be given as a dictionary.')
|
|
49
|
+
for name, value in params.items():
|
|
50
|
+
if name not in valid_params:
|
|
51
|
+
raise ValueError(f'Invalid parameter: {name}.')
|
|
52
|
+
setattr(self, name, value)
|
|
53
|
+
return self
|
|
54
|
+
|
|
55
|
+
def __repr__(self):
|
|
56
|
+
params_string = []
|
|
57
|
+
for name, value in self.get_params().items():
|
|
58
|
+
if type(value) == str:
|
|
59
|
+
value = "'" + value + "'"
|
|
60
|
+
else:
|
|
61
|
+
value = str(value)
|
|
62
|
+
params_string.append(name + '=' + value)
|
|
63
|
+
return self.__class__.__name__ + '(' + ', '.join(params_string) + ')'
|
|
64
|
+
|
|
65
|
+
def fit(self, *args, **kwargs):
|
|
66
|
+
"""Fit algorithm to data."""
|
|
67
|
+
raise NotImplementedError
|