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.

Files changed (303) hide show
  1. {scikit-network-0.30.0 → scikit-network-0.32.0}/AUTHORS.rst +3 -0
  2. {scikit-network-0.30.0 → scikit-network-0.32.0}/HISTORY.rst +21 -0
  3. {scikit-network-0.30.0 → scikit-network-0.32.0}/PKG-INFO +23 -4
  4. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/clustering.rst +11 -0
  5. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/embedding.rst +0 -4
  6. scikit-network-0.32.0/docs/reference/path.rst +21 -0
  7. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/ranking.rst +0 -4
  8. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/topology.rst +18 -7
  9. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/visualization.rst +2 -2
  10. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/clustering/index.rst +2 -1
  11. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/embedding/index.rst +0 -1
  12. {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/PKG-INFO +23 -4
  13. {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/SOURCES.txt +29 -28
  14. {scikit-network-0.30.0 → scikit-network-0.32.0}/setup.cfg +1 -1
  15. {scikit-network-0.30.0 → scikit-network-0.32.0}/setup.py +22 -15
  16. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/__init__.py +1 -1
  17. scikit-network-0.32.0/sknetwork/base.py +67 -0
  18. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/base.py +24 -24
  19. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/base_rank.py +17 -25
  20. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/diffusion.py +35 -35
  21. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/knn.py +24 -21
  22. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/metrics.py +1 -1
  23. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/pagerank.py +10 -10
  24. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/propagation.py +23 -20
  25. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_diffusion.py +13 -3
  26. scikit-network-0.30.0/sknetwork/clustering/louvain_core.cpp → scikit-network-0.32.0/sknetwork/classification/vote.cpp +19509 -19512
  27. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/vote.pyx +1 -3
  28. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/__init__.py +3 -1
  29. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/base.py +36 -40
  30. scikit-network-0.32.0/sknetwork/clustering/kcenters.py +253 -0
  31. scikit-network-0.32.0/sknetwork/clustering/leiden.py +241 -0
  32. scikit-network-0.32.0/sknetwork/clustering/leiden_core.cpp +31531 -0
  33. scikit-network-0.32.0/sknetwork/clustering/leiden_core.pyx +124 -0
  34. scikit-network-0.32.0/sknetwork/clustering/louvain.py +286 -0
  35. scikit-network-0.32.0/sknetwork/clustering/louvain_core.cpp +31176 -0
  36. scikit-network-0.32.0/sknetwork/clustering/louvain_core.pyx +124 -0
  37. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/postprocess.py +2 -2
  38. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/propagation_clustering.py +15 -19
  39. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_API.py +8 -4
  40. scikit-network-0.32.0/sknetwork/clustering/tests/test_kcenters.py +92 -0
  41. scikit-network-0.32.0/sknetwork/clustering/tests/test_leiden.py +34 -0
  42. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_louvain.py +3 -4
  43. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/__init__.py +2 -1
  44. scikit-network-0.32.0/sknetwork/data/base.py +28 -0
  45. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/load.py +38 -37
  46. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/models.py +18 -18
  47. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/parse.py +54 -33
  48. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/test_graphs.py +2 -2
  49. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_API.py +1 -1
  50. scikit-network-0.32.0/sknetwork/data/tests/test_base.py +14 -0
  51. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_load.py +1 -1
  52. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_parse.py +9 -12
  53. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_test_graphs.py +1 -2
  54. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/toy_graphs.py +18 -18
  55. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/__init__.py +0 -1
  56. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/base.py +21 -20
  57. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/force_atlas.py +3 -2
  58. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/louvain_embedding.py +2 -2
  59. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/random_projection.py +5 -3
  60. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/spectral.py +0 -73
  61. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_API.py +4 -28
  62. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_louvain_embedding.py +4 -9
  63. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_random_projection.py +2 -2
  64. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_spectral.py +5 -8
  65. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_svd.py +1 -1
  66. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/base.py +4 -4
  67. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/base_layer.py +3 -3
  68. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/gnn_classifier.py +45 -89
  69. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/layer.py +1 -1
  70. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/loss.py +1 -1
  71. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/optimizer.py +4 -3
  72. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_base_layer.py +4 -4
  73. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_gnn_classifier.py +12 -35
  74. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/utils.py +8 -8
  75. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/base.py +29 -2
  76. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/louvain_hierarchy.py +45 -41
  77. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/paris.cpp +27334 -22853
  78. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/paris.pyx +7 -9
  79. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/postprocess.py +16 -16
  80. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_API.py +1 -1
  81. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_algos.py +5 -0
  82. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_metrics.py +1 -1
  83. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/__init__.py +1 -1
  84. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/diteration.cpp +13910 -9926
  85. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/diteration.pyx +0 -2
  86. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/eig_solver.py +1 -1
  87. scikit-network-0.30.0/sknetwork/linalg/normalization.py → scikit-network-0.32.0/sknetwork/linalg/normalizer.py +18 -15
  88. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/operators.py +1 -1
  89. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/ppr_solver.py +1 -1
  90. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/push.cpp +23016 -18873
  91. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/push.pyx +0 -2
  92. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/svd_solver.py +1 -1
  93. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_normalization.py +3 -7
  94. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_operators.py +4 -8
  95. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_ppr.py +1 -1
  96. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/base.py +13 -2
  97. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/nn.py +6 -6
  98. scikit-network-0.32.0/sknetwork/log.py +19 -0
  99. scikit-network-0.32.0/sknetwork/path/__init__.py +5 -0
  100. scikit-network-0.32.0/sknetwork/path/dag.py +54 -0
  101. scikit-network-0.32.0/sknetwork/path/distances.py +98 -0
  102. scikit-network-0.32.0/sknetwork/path/search.py +31 -0
  103. scikit-network-0.32.0/sknetwork/path/shortest_path.py +61 -0
  104. scikit-network-0.32.0/sknetwork/path/tests/test_dag.py +37 -0
  105. scikit-network-0.32.0/sknetwork/path/tests/test_distances.py +62 -0
  106. scikit-network-0.32.0/sknetwork/path/tests/test_search.py +40 -0
  107. scikit-network-0.32.0/sknetwork/path/tests/test_shortest_path.py +40 -0
  108. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/__init__.py +0 -1
  109. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/base.py +13 -8
  110. scikit-network-0.32.0/sknetwork/ranking/betweenness.cpp +9668 -0
  111. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/betweenness.pyx +0 -2
  112. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/closeness.py +7 -10
  113. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/pagerank.py +14 -14
  114. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/postprocess.py +12 -3
  115. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_API.py +2 -4
  116. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_betweenness.py +3 -3
  117. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_closeness.py +3 -7
  118. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_pagerank.py +11 -5
  119. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_postprocess.py +5 -0
  120. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/base.py +19 -2
  121. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/diffusion.py +24 -10
  122. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/tests/test_diffusion.py +8 -0
  123. scikit-network-0.32.0/sknetwork/test_base.py +35 -0
  124. scikit-network-0.32.0/sknetwork/test_log.py +15 -0
  125. scikit-network-0.32.0/sknetwork/topology/__init__.py +8 -0
  126. scikit-network-0.30.0/sknetwork/topology/kcliques.cpp → scikit-network-0.32.0/sknetwork/topology/cliques.cpp +22939 -19839
  127. scikit-network-0.32.0/sknetwork/topology/cliques.pyx +149 -0
  128. scikit-network-0.30.0/sknetwork/topology/kcore.cpp → scikit-network-0.32.0/sknetwork/topology/core.cpp +21786 -18957
  129. scikit-network-0.32.0/sknetwork/topology/core.pyx +90 -0
  130. scikit-network-0.32.0/sknetwork/topology/cycles.py +243 -0
  131. {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/topology}/minheap.cpp +19425 -15377
  132. {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/topology}/minheap.pxd +1 -3
  133. {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/topology}/minheap.pyx +1 -3
  134. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/structure.py +3 -43
  135. scikit-network-0.32.0/sknetwork/topology/tests/test_cliques.py +28 -0
  136. scikit-network-0.32.0/sknetwork/topology/tests/test_core.py +19 -0
  137. scikit-network-0.32.0/sknetwork/topology/tests/test_cycles.py +65 -0
  138. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/tests/test_structure.py +2 -16
  139. scikit-network-0.32.0/sknetwork/topology/tests/test_triangles.py +38 -0
  140. scikit-network-0.32.0/sknetwork/topology/tests/test_wl.py +72 -0
  141. scikit-network-0.32.0/sknetwork/topology/triangles.cpp +8856 -0
  142. scikit-network-0.32.0/sknetwork/topology/triangles.pyx +151 -0
  143. scikit-network-0.32.0/sknetwork/topology/weisfeiler_lehman.py +133 -0
  144. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/weisfeiler_lehman_core.cpp +14780 -10711
  145. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/weisfeiler_lehman_core.pyx +0 -2
  146. scikit-network-0.32.0/sknetwork/utils/__init__.py +7 -0
  147. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/check.py +2 -2
  148. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/format.py +5 -3
  149. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/membership.py +2 -2
  150. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_check.py +3 -3
  151. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_format.py +3 -1
  152. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/values.py +1 -1
  153. scikit-network-0.32.0/sknetwork/visualization/__init__.py +4 -0
  154. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/dendrograms.py +55 -7
  155. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/graphs.py +292 -72
  156. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/tests/test_dendrograms.py +9 -9
  157. scikit-network-0.32.0/sknetwork/visualization/tests/test_graphs.py +176 -0
  158. scikit-network-0.30.0/docs/reference/path.rst +0 -49
  159. scikit-network-0.30.0/sknetwork/classification/vote.cpp +0 -23449
  160. scikit-network-0.30.0/sknetwork/clustering/louvain.py +0 -255
  161. scikit-network-0.30.0/sknetwork/clustering/louvain_core.pyx +0 -134
  162. scikit-network-0.30.0/sknetwork/embedding/louvain_hierarchy.py +0 -142
  163. scikit-network-0.30.0/sknetwork/embedding/tests/test_louvain_hierarchy.py +0 -19
  164. scikit-network-0.30.0/sknetwork/path/__init__.py +0 -4
  165. scikit-network-0.30.0/sknetwork/path/metrics.py +0 -148
  166. scikit-network-0.30.0/sknetwork/path/search.py +0 -65
  167. scikit-network-0.30.0/sknetwork/path/shortest_path.py +0 -186
  168. scikit-network-0.30.0/sknetwork/path/tests/test_metrics.py +0 -29
  169. scikit-network-0.30.0/sknetwork/path/tests/test_search.py +0 -25
  170. scikit-network-0.30.0/sknetwork/path/tests/test_shortest_path.py +0 -45
  171. scikit-network-0.30.0/sknetwork/ranking/betweenness.cpp +0 -7012
  172. scikit-network-0.30.0/sknetwork/ranking/harmonic.py +0 -82
  173. scikit-network-0.30.0/sknetwork/topology/__init__.py +0 -9
  174. scikit-network-0.30.0/sknetwork/topology/dag.py +0 -74
  175. scikit-network-0.30.0/sknetwork/topology/dag_core.cpp +0 -23353
  176. scikit-network-0.30.0/sknetwork/topology/dag_core.pyx +0 -38
  177. scikit-network-0.30.0/sknetwork/topology/kcliques.pyx +0 -193
  178. scikit-network-0.30.0/sknetwork/topology/kcore.pyx +0 -120
  179. scikit-network-0.30.0/sknetwork/topology/tests/test_cliques.py +0 -28
  180. scikit-network-0.30.0/sknetwork/topology/tests/test_cores.py +0 -21
  181. scikit-network-0.30.0/sknetwork/topology/tests/test_dag.py +0 -26
  182. scikit-network-0.30.0/sknetwork/topology/tests/test_triangles.py +0 -42
  183. scikit-network-0.30.0/sknetwork/topology/tests/test_wl_coloring.py +0 -49
  184. scikit-network-0.30.0/sknetwork/topology/tests/test_wl_kernel.py +0 -31
  185. scikit-network-0.30.0/sknetwork/topology/triangles.cpp +0 -6532
  186. scikit-network-0.30.0/sknetwork/topology/triangles.pyx +0 -166
  187. scikit-network-0.30.0/sknetwork/topology/weisfeiler_lehman.py +0 -163
  188. scikit-network-0.30.0/sknetwork/utils/__init__.py +0 -37
  189. scikit-network-0.30.0/sknetwork/utils/base.py +0 -35
  190. scikit-network-0.30.0/sknetwork/utils/simplex.py +0 -140
  191. scikit-network-0.30.0/sknetwork/utils/tests/test_base.py +0 -28
  192. scikit-network-0.30.0/sknetwork/utils/tests/test_bunch.py +0 -16
  193. scikit-network-0.30.0/sknetwork/utils/tests/test_projection_simplex.py +0 -33
  194. scikit-network-0.30.0/sknetwork/utils/tests/test_verbose.py +0 -15
  195. scikit-network-0.30.0/sknetwork/utils/verbose.py +0 -37
  196. scikit-network-0.30.0/sknetwork/visualization/__init__.py +0 -4
  197. scikit-network-0.30.0/sknetwork/visualization/tests/test_graphs.py +0 -167
  198. {scikit-network-0.30.0 → scikit-network-0.32.0}/CONTRIBUTING.rst +0 -0
  199. {scikit-network-0.30.0 → scikit-network-0.32.0}/LICENSE +0 -0
  200. {scikit-network-0.30.0 → scikit-network-0.32.0}/MANIFEST.in +0 -0
  201. {scikit-network-0.30.0 → scikit-network-0.32.0}/README.rst +0 -0
  202. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/Makefile +0 -0
  203. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/authors.rst +0 -0
  204. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/conf.py +0 -0
  205. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/contributing.rst +0 -0
  206. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/first_steps.rst +0 -0
  207. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/genindex.rst +0 -0
  208. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/glossary.rst +0 -0
  209. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/history.rst +0 -0
  210. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/index.rst +0 -0
  211. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/make.bat +0 -0
  212. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/readme.rst +0 -0
  213. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/classification.rst +0 -0
  214. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/data.rst +0 -0
  215. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/gnn.rst +0 -0
  216. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/hierarchy.rst +0 -0
  217. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/linalg.rst +7 -7
  218. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/linkpred.rst +0 -0
  219. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/regression.rst +0 -0
  220. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/reference/utils.rst +0 -0
  221. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/classification/index.rst +0 -0
  222. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/data/index.rst +0 -0
  223. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/gnn/index.rst +0 -0
  224. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/hierarchy/index.rst +0 -0
  225. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/linkpred/index.rst +0 -0
  226. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/overview/index.rst +0 -0
  227. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/path/index.rst +0 -0
  228. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/ranking/index.rst +0 -0
  229. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/regression/index.rst +0 -0
  230. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/topology/index.rst +0 -0
  231. {scikit-network-0.30.0 → scikit-network-0.32.0}/docs/tutorials/visualization/index.rst +0 -0
  232. {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/dependency_links.txt +0 -0
  233. {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/not-zip-safe +0 -0
  234. {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/requires.txt +0 -0
  235. {scikit-network-0.30.0 → scikit-network-0.32.0}/scikit_network.egg-info/top_level.txt +0 -0
  236. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/__init__.py +0 -0
  237. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/__init__.py +0 -0
  238. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_API.py +0 -0
  239. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_knn.py +0 -0
  240. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_metrics.py +0 -0
  241. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_pagerank.py +0 -0
  242. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/classification/tests/test_propagation.py +0 -0
  243. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/metrics.py +0 -0
  244. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/__init__.py +0 -0
  245. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_metrics.py +0 -0
  246. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/clustering/tests/test_postprocess.py +0 -0
  247. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/__init__.py +0 -0
  248. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_models.py +0 -0
  249. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/data/tests/test_toy_graphs.py +0 -0
  250. {scikit-network-0.30.0/sknetwork/utils → scikit-network-0.32.0/sknetwork/data}/timeout.py +0 -0
  251. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/spring.py +0 -0
  252. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/svd.py +0 -0
  253. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/__init__.py +0 -0
  254. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_force_atlas.py +0 -0
  255. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/embedding/tests/test_spring.py +0 -0
  256. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/__init__.py +0 -0
  257. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/activation.py +0 -0
  258. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/base_activation.py +0 -0
  259. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/neighbor_sampler.py +0 -0
  260. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/__init__.py +0 -0
  261. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_activation.py +0 -0
  262. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_base.py +0 -0
  263. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_layers.py +0 -0
  264. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_loss.py +0 -0
  265. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_neigh_sampler.py +0 -0
  266. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_optimizer.py +0 -0
  267. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/gnn/tests/test_utils.py +0 -0
  268. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/__init__.py +0 -0
  269. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/metrics.py +0 -0
  270. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/__init__.py +0 -0
  271. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/hierarchy/tests/test_postprocess.py +0 -0
  272. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/basics.py +0 -0
  273. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/laplacian.py +0 -0
  274. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/polynome.py +0 -0
  275. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/sparse_lowrank.py +0 -0
  276. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/__init__.py +0 -0
  277. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_eig.py +0 -0
  278. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_laplacian.py +0 -0
  279. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_polynome.py +0 -0
  280. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_sparse_lowrank.py +0 -0
  281. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linalg/tests/test_svd.py +0 -0
  282. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/__init__.py +0 -0
  283. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/tests/__init__.py +0 -0
  284. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/linkpred/tests/test_nn.py +0 -0
  285. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/path/tests/__init__.py +0 -0
  286. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/hits.py +0 -0
  287. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/katz.py +0 -0
  288. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/__init__.py +0 -0
  289. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/ranking/tests/test_hits.py +0 -0
  290. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/__init__.py +0 -0
  291. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/tests/__init__.py +0 -0
  292. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/regression/tests/test_API.py +0 -0
  293. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/sknetwork.py +0 -0
  294. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/topology/tests/__init__.py +0 -0
  295. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/neighbors.py +0 -0
  296. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/__init__.py +0 -0
  297. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_membership.py +0 -0
  298. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_neighbors.py +0 -0
  299. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_tfidf.py +0 -0
  300. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tests/test_values.py +0 -0
  301. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/utils/tfidf.py +0 -0
  302. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/colors.py +0 -0
  303. {scikit-network-0.30.0 → scikit-network-0.32.0}/sknetwork/visualization/tests/__init__.py +0 -0
@@ -39,3 +39,6 @@ Contributors
39
39
  * Flávio Juvenal
40
40
  * Wenzhuo Zhao
41
41
  * Henry Carscadden
42
+ * Yiwen Peng
43
+ * Ahmed Zaiou
44
+ * Laurène David
@@ -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.30.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
@@ -37,10 +37,6 @@ Louvain
37
37
 
38
38
  .. autoclass:: sknetwork.embedding.LouvainEmbedding
39
39
 
40
- Hierarchical Louvain
41
- --------------------
42
-
43
- .. autoclass:: sknetwork.embedding.LouvainNE
44
40
 
45
41
  Force Atlas
46
42
  -----------
@@ -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
- Algorithms for the analysis of graph topology.
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
- .. autoclass:: sknetwork.topology.DAG
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.CoreDecomposition
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.Triangles
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.WeisfeilerLehman
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.svg_bigraph
13
+ .. autofunction:: sknetwork.visualization.graphs.visualize_bigraph
14
14
 
15
15
  Dendrograms
16
16
  -----------
17
17
 
18
- .. autofunction:: sknetwork.visualization.dendrograms.svg_dendrogram
18
+ .. autofunction:: sknetwork.visualization.dendrograms.visualize_dendrogram
@@ -7,5 +7,6 @@ Clustering
7
7
  .. toctree::
8
8
 
9
9
  louvain
10
+ leiden
11
+ kcenters
10
12
  propagation
11
-
@@ -10,7 +10,6 @@ Embedding
10
10
  pca
11
11
  random_projection
12
12
  louvain_embedding
13
- louvain_hierarchy
14
13
  spring
15
14
  forceatlas
16
15
 
@@ -1,13 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scikit-network
3
- Version: 0.30.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/dag_core.cpp
16
- ./sknetwork/topology/kcliques.cpp
17
- ./sknetwork/topology/kcore.cpp
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/normalization.py
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/metrics.py
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/test_metrics.py
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/dag.py
216
- sknetwork/topology/dag_core.pyx
217
- sknetwork/topology/kcliques.pyx
218
- sknetwork/topology/kcore.pyx
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/test_cores.py
226
- sknetwork/topology/tests/test_dag.py
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/test_wl_coloring.py
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,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 0.30.0
2
+ current_version = 0.32.0
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -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 setuptools import find_packages
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 OSX >= 10.10
41
- name = distutils.util.get_platform()
42
- if name.startswith("macosx"):
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 = name.split("-")[1].split(".")
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 mac) links to libstdc++ as a default lib.
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 name.startswith("win"):
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), annotate=True)
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.30.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
-
@@ -4,7 +4,7 @@
4
4
 
5
5
  __author__ = """scikit-network team"""
6
6
  __email__ = "thomas.bonald@telecom-paris.fr"
7
- __version__ = '0.30.0'
7
+ __version__ = '0.32.0'
8
8
 
9
9
  import sknetwork.topology
10
10
  import sknetwork.path
@@ -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