Python-EasyGraph 1.5.1__tar.gz → 1.5.2__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.
Files changed (353) hide show
  1. {python_easygraph-1.5.1/Python_EasyGraph.egg-info → python_easygraph-1.5.2}/PKG-INFO +34 -22
  2. {python_easygraph-1.5.1 → python_easygraph-1.5.2/Python_EasyGraph.egg-info}/PKG-INFO +34 -22
  3. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/Python_EasyGraph.egg-info/SOURCES.txt +2 -0
  4. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/Python_EasyGraph.egg-info/requires.txt +9 -9
  5. python_easygraph-1.5.2/Python_EasyGraph.egg-info/top_level.txt +2 -0
  6. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/README.md +26 -14
  7. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/common/utils.cpp +3 -3
  8. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/centrality/betweenness.cpp +20 -20
  9. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/centrality/closeness.cpp +10 -10
  10. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/cores/k_cores.cpp +2 -2
  11. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/path/path.cpp +16 -16
  12. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/__init__.py +1 -0
  13. python_easygraph-1.5.2/easygraph/functions/community/localsearch.py +629 -0
  14. python_easygraph-1.5.2/easygraph/functions/community/tests/test_LS.py +48 -0
  15. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/pyproject.toml +7 -1
  16. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/setup.py +10 -12
  17. python_easygraph-1.5.1/Python_EasyGraph.egg-info/top_level.txt +0 -2
  18. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/CMakeLists.txt +0 -0
  19. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/LICENSE +0 -0
  20. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/MANIFEST.in +0 -0
  21. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/Python_EasyGraph.egg-info/dependency_links.txt +0 -0
  22. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/README.rst +0 -0
  23. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/CMakeLists.txt +0 -0
  24. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/__init__.h +0 -0
  25. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/coo_graph.h +0 -0
  26. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/csr_graph.h +0 -0
  27. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/directed_graph.cpp +0 -0
  28. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/directed_graph.h +0 -0
  29. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/graph.cpp +0 -0
  30. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/graph.h +0 -0
  31. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/linkgraph.h +0 -0
  32. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/operation.cpp +0 -0
  33. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/operation.h +0 -0
  34. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/classes/segment_tree.cpp +0 -0
  35. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/common/common.cpp +0 -0
  36. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/common/common.h +0 -0
  37. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/common/utils.h +0 -0
  38. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/cpp_easygraph.cpp +0 -0
  39. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/__init__.h +0 -0
  40. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/basic/__init__.h +0 -0
  41. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/basic/avg_degree.cpp +0 -0
  42. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/basic/avg_degree.h +0 -0
  43. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/basic/cluster.cpp +0 -0
  44. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/basic/cluster.h +0 -0
  45. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/centrality/__init__.h +0 -0
  46. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/centrality/centrality.h +0 -0
  47. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/centrality/katz_centrality.cpp +0 -0
  48. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/__init__.h +0 -0
  49. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/biconnected.cpp +0 -0
  50. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/biconnected.h +0 -0
  51. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/connected.cpp +0 -0
  52. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/connected.h +0 -0
  53. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/strongly_connected.cpp +0 -0
  54. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/components/strongly_connected.h +0 -0
  55. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/cores/__init__.h +0 -0
  56. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/cores/k_cores.h +0 -0
  57. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/pagerank/__init__.h +0 -0
  58. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/pagerank/pagerank.cpp +0 -0
  59. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/pagerank/pagerank.h +0 -0
  60. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/path/__init__.h +0 -0
  61. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/path/mst.cpp +0 -0
  62. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/path/mst.h +0 -0
  63. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/path/path.h +0 -0
  64. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/structural_holes/__init__.h +0 -0
  65. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/structural_holes/evaluation.cpp +0 -0
  66. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/cpp_easygraph/functions/structural_holes/evaluation.h +0 -0
  67. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/__init__.py +0 -0
  68. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/_global.py +0 -0
  69. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/__init__.py +0 -0
  70. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/base.py +0 -0
  71. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/directed_graph.py +0 -0
  72. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/directed_multigraph.py +0 -0
  73. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/graph.py +0 -0
  74. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/graphviews.py +0 -0
  75. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/hypergraph.py +0 -0
  76. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/multigraph.py +0 -0
  77. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/operation.py +0 -0
  78. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/test_base_graph_class.py +0 -0
  79. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/__init__.py +0 -0
  80. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_base.py +0 -0
  81. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_directed_graph.py +0 -0
  82. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_graph.py +0 -0
  83. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_graphV2.py +0 -0
  84. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_hypergraph.py +0 -0
  85. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_multidigraph.py +0 -0
  86. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_multigraph.py +0 -0
  87. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/classes/tests/test_operation.py +0 -0
  88. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/convert.py +0 -0
  89. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datapipe/__init__.py +0 -0
  90. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datapipe/common.py +0 -0
  91. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datapipe/loader.py +0 -0
  92. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datapipe/normalize.py +0 -0
  93. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/__init__.py +0 -0
  94. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/amazon_photo.py +0 -0
  95. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/arxiv.py +0 -0
  96. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/citation_graph.py +0 -0
  97. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/coauthor.py +0 -0
  98. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/dynamic/__init__.py +0 -0
  99. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/dynamic/email_enron.py +0 -0
  100. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/dynamic/email_eu.py +0 -0
  101. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/dynamic/hospital_lyon.py +0 -0
  102. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/dynamic/load_dataset.py +0 -0
  103. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/facebook_ego.py +0 -0
  104. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/flickr.py +0 -0
  105. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/get_sample_graph.py +0 -0
  106. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/github.py +0 -0
  107. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/gnn_benchmark.py +0 -0
  108. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/graph_dataset_base.py +0 -0
  109. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/House_Committees.py +0 -0
  110. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/Yelp.py +0 -0
  111. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/__init__.py +0 -0
  112. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/_global.py +0 -0
  113. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/cat_edge_Cooking.py +0 -0
  114. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/coauthorship.py +0 -0
  115. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/cocitation.py +0 -0
  116. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/contact_primary_school.py +0 -0
  117. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/cooking_200.py +0 -0
  118. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/hypergraph_dataset_base.py +0 -0
  119. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/loadDeepSetDatasets.py +0 -0
  120. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/mathoverflow_answers.py +0 -0
  121. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/senate_committees.py +0 -0
  122. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/trivago_clicks.py +0 -0
  123. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/hypergraph/walmart_trips.py +0 -0
  124. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/karate.py +0 -0
  125. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/ppi.py +0 -0
  126. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/reddit.py +0 -0
  127. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/roadnet.py +0 -0
  128. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/twitter_ego.py +0 -0
  129. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/utils.py +0 -0
  130. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/web_google.py +0 -0
  131. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/datasets/wiki_topcats.py +0 -0
  132. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/exception.py +0 -0
  133. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/experiments/__init__.py +0 -0
  134. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/experiments/base.py +0 -0
  135. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/experiments/hypergraphs/__init__.py +0 -0
  136. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/experiments/hypergraphs/hypergraph.py +0 -0
  137. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/experiments/vertex_classification.py +0 -0
  138. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/__init__.py +0 -0
  139. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/__init__.py +0 -0
  140. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/avg_degree.py +0 -0
  141. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/cluster.py +0 -0
  142. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/localassort.py +0 -0
  143. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/predecessor_path_based.py +0 -0
  144. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/tests/__init__.py +0 -0
  145. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/tests/test_avg_degree.py +0 -0
  146. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/tests/test_cluster.py +0 -0
  147. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/tests/test_localassort.py +0 -0
  148. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/basic/tests/test_predecessor.py +0 -0
  149. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/__init__.py +0 -0
  150. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/betweenness.py +0 -0
  151. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/closeness.py +0 -0
  152. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/degree.py +0 -0
  153. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/ego_betweenness.py +0 -0
  154. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/flowbetweenness.py +0 -0
  155. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/katz_centrality.py +0 -0
  156. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/laplacian.py +0 -0
  157. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/pagerank.py +0 -0
  158. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/__init__.py +0 -0
  159. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_betweenness.py +0 -0
  160. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_closeness.py +0 -0
  161. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_degree.py +0 -0
  162. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_egobetweenness.py +0 -0
  163. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_flowbetweenness.py +0 -0
  164. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_laplacian.py +0 -0
  165. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/centrality/tests/test_pagerank.py +0 -0
  166. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/LPA.py +0 -0
  167. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/ego_graph.py +0 -0
  168. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/louvain.py +0 -0
  169. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/modularity.py +0 -0
  170. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/modularity_max_detection.py +0 -0
  171. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/motif.py +0 -0
  172. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/__init__.py +0 -0
  173. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/test_LPA.py +0 -0
  174. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/test_ego_graph.py +0 -0
  175. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/test_louvian.py +0 -0
  176. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/test_modularity.py +0 -0
  177. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/test_modularity_max_detection.py +0 -0
  178. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/community/tests/test_motif.py +0 -0
  179. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/__init__.py +0 -0
  180. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/biconnected.py +0 -0
  181. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/connected.py +0 -0
  182. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/strongly_connected.py +0 -0
  183. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/tests/__init__.py +0 -0
  184. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/tests/test_biconnected.py +0 -0
  185. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/tests/test_connected.py +0 -0
  186. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/tests/test_strongly_connected.py +0 -0
  187. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/tests/test_weakly_connected.py +0 -0
  188. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/components/weakly_connected.py +0 -0
  189. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/core/__init__.py +0 -0
  190. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/core/k_core.py +0 -0
  191. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/core/tests/__init__.py +0 -0
  192. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/core/tests/test_k_core.py +0 -0
  193. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/__init__.py +0 -0
  194. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/defaults.py +0 -0
  195. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/drawing.py +0 -0
  196. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/geometry.py +0 -0
  197. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/layout.py +0 -0
  198. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/plot.py +0 -0
  199. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/positioning.py +0 -0
  200. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/simulator.py +0 -0
  201. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/tests/__init__.py +0 -0
  202. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/tests/test_drawing.py +0 -0
  203. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/tests/test_geometry.py +0 -0
  204. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/tests/test_plot.py +0 -0
  205. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/tests/test_positioning.py +0 -0
  206. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/drawing/utils.py +0 -0
  207. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/NOBE.py +0 -0
  208. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/__init__.py +0 -0
  209. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/deepwalk.py +0 -0
  210. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/line.py +0 -0
  211. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/net_emb_example_citeseer.py +0 -0
  212. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/node2vec.py +0 -0
  213. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/sdne.py +0 -0
  214. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/tests/__init__.py +0 -0
  215. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/tests/test_deepwalk.py +0 -0
  216. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/tests/test_line.py +0 -0
  217. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/tests/test_nobe.py +0 -0
  218. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/tests/test_node2vec.py +0 -0
  219. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_embedding/tests/test_sdne.py +0 -0
  220. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_generator/RandomNetwork.py +0 -0
  221. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_generator/__init__.py +0 -0
  222. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_generator/classic.py +0 -0
  223. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_generator/tests/__init__.py +0 -0
  224. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_generator/tests/test_Random_Network.py +0 -0
  225. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/graph_generator/tests/test_classic.py +0 -0
  226. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/__init__.py +0 -0
  227. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/assortativity.py +0 -0
  228. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/centrality/__init__.py +0 -0
  229. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/centrality/cycle_ratio.py +0 -0
  230. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/centrality/degree.py +0 -0
  231. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/centrality/hypercoreness.py +0 -0
  232. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/centrality/s_centrality.py +0 -0
  233. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/centrality/vector_centrality.py +0 -0
  234. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/hypergraph_clustering.py +0 -0
  235. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/hypergraph_operation.py +0 -0
  236. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/__init__.py +0 -0
  237. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/hypergraph_classic.py +0 -0
  238. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/lattice.py +0 -0
  239. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/random.py +0 -0
  240. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/simple.py +0 -0
  241. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/tests/__init__.py +0 -0
  242. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/tests/test_classic.py +0 -0
  243. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/tests/test_lattice.py +0 -0
  244. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/tests/test_simple.py +0 -0
  245. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/null_model/uniform.py +0 -0
  246. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/tests/__init__.py +0 -0
  247. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/tests/test_assortativity.py +0 -0
  248. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/tests/test_centrality.py +0 -0
  249. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/tests/test_hypergraph_clustering.py +0 -0
  250. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/hypergraph/tests/test_hypergraph_operation.py +0 -0
  251. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/isolate.py +0 -0
  252. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/__init__.py +0 -0
  253. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/average_shortest_path_length.py +0 -0
  254. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/bridges.py +0 -0
  255. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/diameter.py +0 -0
  256. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/mst.py +0 -0
  257. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/path.py +0 -0
  258. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/tests/__init__.py +0 -0
  259. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/tests/test_average_shortest_path_length.py +0 -0
  260. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/tests/test_bridges.py +0 -0
  261. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/tests/test_diameter.py +0 -0
  262. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/tests/test_mst.py +0 -0
  263. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/path/tests/test_path.py +0 -0
  264. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/AP_Greedy.py +0 -0
  265. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/HAM.py +0 -0
  266. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/HIS.py +0 -0
  267. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/ICC.py +0 -0
  268. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/MaxD.py +0 -0
  269. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/NOBE.py +0 -0
  270. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/SHII_metric.py +0 -0
  271. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/__init__.py +0 -0
  272. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/evaluation.py +0 -0
  273. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/maxBlock.py +0 -0
  274. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/metrics.py +0 -0
  275. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/structural_holes/weakTie.py +0 -0
  276. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/tests/__init__.py +0 -0
  277. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/functions/tests/test_isolate.py +0 -0
  278. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/ml_metrics/__init__.py +0 -0
  279. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/ml_metrics/base.py +0 -0
  280. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/ml_metrics/classification.py +0 -0
  281. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/ml_metrics/hypergraphs/__init__.py +0 -0
  282. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/ml_metrics/hypergraphs/hypergraph.py +0 -0
  283. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/__init__.py +0 -0
  284. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/__init__.py +0 -0
  285. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/dhcf.py +0 -0
  286. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/dhne.py +0 -0
  287. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/hgnn.py +0 -0
  288. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/hgnnp.py +0 -0
  289. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/hnhn.py +0 -0
  290. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/hwnn.py +0 -0
  291. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/hypergcn.py +0 -0
  292. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/setgnn.py +0 -0
  293. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/model/hypergraphs/unignn.py +0 -0
  294. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/__init__.py +0 -0
  295. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/__init__.py +0 -0
  296. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/common.py +0 -0
  297. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/__init__.py +0 -0
  298. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/dhcf_conv.py +0 -0
  299. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/halfnlh_conv.py +0 -0
  300. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/hgnn_conv.py +0 -0
  301. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/hgnnp_conv.py +0 -0
  302. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/hnhn_conv.py +0 -0
  303. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/hwnn_conv.py +0 -0
  304. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/hypergcn_conv.py +0 -0
  305. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/hypergraphs/unignn_conv.py +0 -0
  306. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/convs/pma.py +0 -0
  307. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/loss.py +0 -0
  308. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/regularization.py +0 -0
  309. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/tests/__init__.py +0 -0
  310. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/tests/test_gatconv.py +0 -0
  311. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/tests/test_gcnconv.py +0 -0
  312. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/tests/test_graphsageconv.py +0 -0
  313. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/nn/tests/test_regularization.py +0 -0
  314. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/__init__.py +0 -0
  315. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/edgelist.py +0 -0
  316. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/gexf.py +0 -0
  317. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/gml.py +0 -0
  318. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/graphml.py +0 -0
  319. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/graphviz.py +0 -0
  320. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/json_graph/__init__.py +0 -0
  321. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/json_graph/node_link.py +0 -0
  322. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/pajek.py +0 -0
  323. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/pickle.py +0 -0
  324. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/__init__.py +0 -0
  325. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_edgelist.py +0 -0
  326. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_gexf.py +0 -0
  327. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_gml.py +0 -0
  328. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_graphml.py +0 -0
  329. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_graphviz.py +0 -0
  330. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_pajek.py +0 -0
  331. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_pickle.py +0 -0
  332. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/tests/test_ucinet.py +0 -0
  333. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/readwrite/ucinet.py +0 -0
  334. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/tests/__init__.py +0 -0
  335. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/tests/script_test_cpp_easygraph.py +0 -0
  336. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/tests/teddy_test_cpp_easygraph_sanity_check.py +0 -0
  337. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/tests/test_convert.py +0 -0
  338. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/tests/test_cpp_easygraph.py +0 -0
  339. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/__init__.py +0 -0
  340. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/alias.py +0 -0
  341. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/convert_class.py +0 -0
  342. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/convert_to_matrix.py +0 -0
  343. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/decorators.py +0 -0
  344. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/download.py +0 -0
  345. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/exception.py +0 -0
  346. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/index_of_node.py +0 -0
  347. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/logging.py +0 -0
  348. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/mapped_queue.py +0 -0
  349. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/misc.py +0 -0
  350. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/relabel.py +0 -0
  351. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/sparse.py +0 -0
  352. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/easygraph/utils/type_change.py +0 -0
  353. {python_easygraph-1.5.1 → python_easygraph-1.5.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Python-EasyGraph
3
- Version: 1.5.1
3
+ Version: 1.5.2
4
4
  Summary: Easy Graph
5
5
  Home-page: https://github.com/easy-graph/Easy-Graph
6
6
  Author: Fudan DataNET Group
@@ -17,22 +17,22 @@ Classifier: Operating System :: OS Independent
17
17
  Requires-Python: >=3.8, <3.15
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: numpy>=1.23.1; python_version >= "3.10"
21
- Requires-Dist: numpy>=1.19.5; python_version >= "3.7" and python_version <= "3.14"
20
+ Requires-Dist: numpy>=1.23; python_version < "3.14"
21
+ Requires-Dist: numpy>=2.0; python_version >= "3.14"
22
22
  Requires-Dist: tqdm>=4.49.0
23
23
  Requires-Dist: joblib>=1.2.0
24
24
  Requires-Dist: six>=1.16.0
25
- Requires-Dist: numpy<2.0,>=1.18.5
26
- Requires-Dist: gensim>=4.2.0; python_version >= "3.8"
25
+ Requires-Dist: gensim>=4.3.3; python_version < "3.14"
27
26
  Requires-Dist: progressbar33>=2.4
28
27
  Requires-Dist: scikit-learn<=1.0.2,>=0.24.0; python_version == "3.7"
29
- Requires-Dist: scikit-learn>=0.24.0; python_version >= "3.8"
28
+ Requires-Dist: scikit-learn>=0.24.0; python_version >= "3.8" and python_version < "3.14"
30
29
  Requires-Dist: scipy<=1.7.3,>=1.5.0; python_version == "3.7"
31
- Requires-Dist: scipy>=1.8.0; python_version >= "3.8"
32
- Requires-Dist: statsmodels>=0.12.0; python_version >= "3.7"
30
+ Requires-Dist: scipy>=1.8.0; python_version >= "3.8" and python_version < "3.14"
31
+ Requires-Dist: statsmodels>=0.12.0; python_version >= "3.7" and python_version < "3.14"
33
32
  Requires-Dist: progressbar>=2.5
34
33
  Requires-Dist: nose>=0.10.1
35
34
  Requires-Dist: pandas<=1.1.5,>=1.0.1; python_version <= "3.7"
35
+ Requires-Dist: pandas>=1.1.0; python_version >= "3.8" and python_version < "3.14"
36
36
  Requires-Dist: matplotlib
37
37
  Requires-Dist: requests
38
38
  Requires-Dist: optuna
@@ -100,21 +100,33 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
100
100
 
101
101
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
102
102
 
103
- # News
104
- - [09-29-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 900,000 downloads!
105
- - [07-27-2025] 🎉 We released EasyGraph 1.5! This version integrates the HWNN model and supports 11 representative network datasets.
103
+ # 📢 EasyGraph News
104
+
105
+ ## 📣 Media & Press
106
+ - [08-09-2025] [EasyHypergraph: Fast, Efficient Higher-Order Network Analysis](https://scienmag.com/easyhypergraph-fast-efficient-higher-order-network-analysis/)
107
+ - [01-15-2025] [开放原子大赛OpenRank开源数字生态分析与应用创新大赛全国一等奖 (in Chinese)](https://mp.weixin.qq.com/s/e54JHaP2AAEUN3S8RZ-Y2g)
108
+ - [01-07-2025] [计算机科学技术学院教授陈阳入选“2024中国开源先锋33人” (in Chinese)](https://news.fudan.edu.cn/2025/0107/c2463a143932/page.htm)
109
+ - [12-04-2024] [国际开源基准委员会的"顶级开源证书" (in Chinese)](https://chenyang03.wordpress.com/wp-content/uploads/2025/07/image.png?w=1024)
110
+ - [10-16-2024] [2023年度上海开源创新卓越成果奖 (in Chinese)](https://mp.weixin.qq.com/s/kO6Dpyolf74dlDvKuoLlJA)
111
+ - [11-06-2023] [复旦大学陈阳Patterns:EasyGraph——面向多学科的高性能网络结构分析工具箱|Cell Press论文速递 (in Chinese)](https://mp.weixin.qq.com/s/f2LCyQv1dYuquM_EfGX6Ow?poc_token=HBV092ijI2L534IrD0Jl_fnf3VjhX8UudcPFLH6b)
112
+ - [11-04-2023] [EasyGraph:多功能、跨平台、高效率的跨学科网络分析库 (in Chinese)](https://swarma.org/?p=46252)
113
+
114
+ ## 🚀 Releases & Milestones
115
+ - [10-11-2025] EasyGraph **v1.5.1** released (Python 3.14 supported)
116
+ - 🎉 **[09-29-2025] 900K+ Downloads! Thanks to our amazing community!**
117
+ - [07-27-2025] EasyGraph **v1.5** released (This version integrates the HWNN model and supports 11 representative network datasets)
118
+ - 🎉 **[06-29-2025] 800K+ Downloads!**
119
+ - [11-22-2024] EasyGraph **v1.4.1** released (Python 3.13 supported)
120
+ - [09-20-2024] EasyGraph **v1.4** released (GPU-powered functions for large network analysis)
121
+ - [05-27-2024] EasyGraph **v1.3** released (issues related to hypergraph analysis and visualization resolved)
122
+ - [04-09-2024] EasyGraph **v1.2** released (Python 3.12 supported)
123
+ - [02-05-2024] EasyGraph **v1.1** released (hypergraph analysis and learning for higher-order networks)
124
+ - [08-17-2023] EasyGraph **v1.0** released
125
+ - [07-22-2020] EasyGraph **first public release**
126
+
127
+ ## 📈 Publications
106
128
  - [05-30-2025] 🎉 Our paper "EasyHypergraph: an open-source software for fast and memory-saving analysis and learning of higher-order networks" was accepted by Humanities and Social Sciences Communications (Nature Portfolio)! [[PDF](https://www.nature.com/articles/s41599-025-05180-5)]
107
- - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council! [[Certificate](https://chenyang03.wordpress.com/wp-content/uploads/2025/07/image.png?w=1024)]
108
- - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
109
- - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
110
- - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
111
- - [05-27-2024] We released EasyGraph 1.3! This version has resolved several issues related to hypergraph analysis and visualization.
112
- - [04-09-2024] We released EasyGraph 1.2! This version now fully supports Python 3.12.
113
- - [03-06-2024] 🎉 We received the Shanghai Open Source Innovation Outstanding Achievement Award (Grand Prize)! [News](https://news.fudan.edu.cn/2024/0401/c2463a139799/page.htm)
114
- - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
115
- - [08-17-2023] We released EasyGraph 1.0!
116
129
  - [08-08-2023] 🎉 Our paper "EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis" was accepted by Patterns (Cell Press)! [[PDF](https://www.sciencedirect.com/science/article/pii/S2666389923002180)]
117
- - [07-22-2020] First public release of EasyGraph!
118
130
 
119
131
  # Stargazers
120
132
 
@@ -127,7 +139,7 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
127
139
 
128
140
  ## Supported Versions
129
141
 
130
- ``3.8 <= Python <= 3.13`` is required.
142
+ ``3.8 <= Python <= 3.14`` is required.
131
143
 
132
144
  ## Installation With pip
133
145
  ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Python-EasyGraph
3
- Version: 1.5.1
3
+ Version: 1.5.2
4
4
  Summary: Easy Graph
5
5
  Home-page: https://github.com/easy-graph/Easy-Graph
6
6
  Author: Fudan DataNET Group
@@ -17,22 +17,22 @@ Classifier: Operating System :: OS Independent
17
17
  Requires-Python: >=3.8, <3.15
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: numpy>=1.23.1; python_version >= "3.10"
21
- Requires-Dist: numpy>=1.19.5; python_version >= "3.7" and python_version <= "3.14"
20
+ Requires-Dist: numpy>=1.23; python_version < "3.14"
21
+ Requires-Dist: numpy>=2.0; python_version >= "3.14"
22
22
  Requires-Dist: tqdm>=4.49.0
23
23
  Requires-Dist: joblib>=1.2.0
24
24
  Requires-Dist: six>=1.16.0
25
- Requires-Dist: numpy<2.0,>=1.18.5
26
- Requires-Dist: gensim>=4.2.0; python_version >= "3.8"
25
+ Requires-Dist: gensim>=4.3.3; python_version < "3.14"
27
26
  Requires-Dist: progressbar33>=2.4
28
27
  Requires-Dist: scikit-learn<=1.0.2,>=0.24.0; python_version == "3.7"
29
- Requires-Dist: scikit-learn>=0.24.0; python_version >= "3.8"
28
+ Requires-Dist: scikit-learn>=0.24.0; python_version >= "3.8" and python_version < "3.14"
30
29
  Requires-Dist: scipy<=1.7.3,>=1.5.0; python_version == "3.7"
31
- Requires-Dist: scipy>=1.8.0; python_version >= "3.8"
32
- Requires-Dist: statsmodels>=0.12.0; python_version >= "3.7"
30
+ Requires-Dist: scipy>=1.8.0; python_version >= "3.8" and python_version < "3.14"
31
+ Requires-Dist: statsmodels>=0.12.0; python_version >= "3.7" and python_version < "3.14"
33
32
  Requires-Dist: progressbar>=2.5
34
33
  Requires-Dist: nose>=0.10.1
35
34
  Requires-Dist: pandas<=1.1.5,>=1.0.1; python_version <= "3.7"
35
+ Requires-Dist: pandas>=1.1.0; python_version >= "3.8" and python_version < "3.14"
36
36
  Requires-Dist: matplotlib
37
37
  Requires-Dist: requests
38
38
  Requires-Dist: optuna
@@ -100,21 +100,33 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
100
100
 
101
101
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
102
102
 
103
- # News
104
- - [09-29-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 900,000 downloads!
105
- - [07-27-2025] 🎉 We released EasyGraph 1.5! This version integrates the HWNN model and supports 11 representative network datasets.
103
+ # 📢 EasyGraph News
104
+
105
+ ## 📣 Media & Press
106
+ - [08-09-2025] [EasyHypergraph: Fast, Efficient Higher-Order Network Analysis](https://scienmag.com/easyhypergraph-fast-efficient-higher-order-network-analysis/)
107
+ - [01-15-2025] [开放原子大赛OpenRank开源数字生态分析与应用创新大赛全国一等奖 (in Chinese)](https://mp.weixin.qq.com/s/e54JHaP2AAEUN3S8RZ-Y2g)
108
+ - [01-07-2025] [计算机科学技术学院教授陈阳入选“2024中国开源先锋33人” (in Chinese)](https://news.fudan.edu.cn/2025/0107/c2463a143932/page.htm)
109
+ - [12-04-2024] [国际开源基准委员会的"顶级开源证书" (in Chinese)](https://chenyang03.wordpress.com/wp-content/uploads/2025/07/image.png?w=1024)
110
+ - [10-16-2024] [2023年度上海开源创新卓越成果奖 (in Chinese)](https://mp.weixin.qq.com/s/kO6Dpyolf74dlDvKuoLlJA)
111
+ - [11-06-2023] [复旦大学陈阳Patterns:EasyGraph——面向多学科的高性能网络结构分析工具箱|Cell Press论文速递 (in Chinese)](https://mp.weixin.qq.com/s/f2LCyQv1dYuquM_EfGX6Ow?poc_token=HBV092ijI2L534IrD0Jl_fnf3VjhX8UudcPFLH6b)
112
+ - [11-04-2023] [EasyGraph:多功能、跨平台、高效率的跨学科网络分析库 (in Chinese)](https://swarma.org/?p=46252)
113
+
114
+ ## 🚀 Releases & Milestones
115
+ - [10-11-2025] EasyGraph **v1.5.1** released (Python 3.14 supported)
116
+ - 🎉 **[09-29-2025] 900K+ Downloads! Thanks to our amazing community!**
117
+ - [07-27-2025] EasyGraph **v1.5** released (This version integrates the HWNN model and supports 11 representative network datasets)
118
+ - 🎉 **[06-29-2025] 800K+ Downloads!**
119
+ - [11-22-2024] EasyGraph **v1.4.1** released (Python 3.13 supported)
120
+ - [09-20-2024] EasyGraph **v1.4** released (GPU-powered functions for large network analysis)
121
+ - [05-27-2024] EasyGraph **v1.3** released (issues related to hypergraph analysis and visualization resolved)
122
+ - [04-09-2024] EasyGraph **v1.2** released (Python 3.12 supported)
123
+ - [02-05-2024] EasyGraph **v1.1** released (hypergraph analysis and learning for higher-order networks)
124
+ - [08-17-2023] EasyGraph **v1.0** released
125
+ - [07-22-2020] EasyGraph **first public release**
126
+
127
+ ## 📈 Publications
106
128
  - [05-30-2025] 🎉 Our paper "EasyHypergraph: an open-source software for fast and memory-saving analysis and learning of higher-order networks" was accepted by Humanities and Social Sciences Communications (Nature Portfolio)! [[PDF](https://www.nature.com/articles/s41599-025-05180-5)]
107
- - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council! [[Certificate](https://chenyang03.wordpress.com/wp-content/uploads/2025/07/image.png?w=1024)]
108
- - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
109
- - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
110
- - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
111
- - [05-27-2024] We released EasyGraph 1.3! This version has resolved several issues related to hypergraph analysis and visualization.
112
- - [04-09-2024] We released EasyGraph 1.2! This version now fully supports Python 3.12.
113
- - [03-06-2024] 🎉 We received the Shanghai Open Source Innovation Outstanding Achievement Award (Grand Prize)! [News](https://news.fudan.edu.cn/2024/0401/c2463a139799/page.htm)
114
- - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
115
- - [08-17-2023] We released EasyGraph 1.0!
116
129
  - [08-08-2023] 🎉 Our paper "EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis" was accepted by Patterns (Cell Press)! [[PDF](https://www.sciencedirect.com/science/article/pii/S2666389923002180)]
117
- - [07-22-2020] First public release of EasyGraph!
118
130
 
119
131
  # Stargazers
120
132
 
@@ -127,7 +139,7 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
127
139
 
128
140
  ## Supported Versions
129
141
 
130
- ``3.8 <= Python <= 3.13`` is required.
142
+ ``3.8 <= Python <= 3.14`` is required.
131
143
 
132
144
  ## Installation With pip
133
145
  ```
@@ -162,12 +162,14 @@ easygraph/functions/centrality/tests/test_pagerank.py
162
162
  easygraph/functions/community/LPA.py
163
163
  easygraph/functions/community/__init__.py
164
164
  easygraph/functions/community/ego_graph.py
165
+ easygraph/functions/community/localsearch.py
165
166
  easygraph/functions/community/louvain.py
166
167
  easygraph/functions/community/modularity.py
167
168
  easygraph/functions/community/modularity_max_detection.py
168
169
  easygraph/functions/community/motif.py
169
170
  easygraph/functions/community/tests/__init__.py
170
171
  easygraph/functions/community/tests/test_LPA.py
172
+ easygraph/functions/community/tests/test_LS.py
171
173
  easygraph/functions/community/tests/test_ego_graph.py
172
174
  easygraph/functions/community/tests/test_louvian.py
173
175
  easygraph/functions/community/tests/test_modularity.py
@@ -1,7 +1,6 @@
1
1
  tqdm>=4.49.0
2
2
  joblib>=1.2.0
3
3
  six>=1.16.0
4
- numpy<2.0,>=1.18.5
5
4
  progressbar33>=2.4
6
5
  progressbar>=2.5
7
6
  nose>=0.10.1
@@ -9,6 +8,10 @@ matplotlib
9
8
  requests
10
9
  optuna
11
10
 
11
+ [:python_version < "3.14"]
12
+ numpy>=1.23
13
+ gensim>=4.3.3
14
+
12
15
  [:python_version <= "3.7"]
13
16
  pandas<=1.1.5,>=1.0.1
14
17
 
@@ -16,16 +19,13 @@ pandas<=1.1.5,>=1.0.1
16
19
  scikit-learn<=1.0.2,>=0.24.0
17
20
  scipy<=1.7.3,>=1.5.0
18
21
 
19
- [:python_version >= "3.10"]
20
- numpy>=1.23.1
22
+ [:python_version >= "3.14"]
23
+ numpy>=2.0
21
24
 
22
- [:python_version >= "3.7"]
25
+ [:python_version >= "3.7" and python_version < "3.14"]
23
26
  statsmodels>=0.12.0
24
27
 
25
- [:python_version >= "3.7" and python_version <= "3.14"]
26
- numpy>=1.19.5
27
-
28
- [:python_version >= "3.8"]
29
- gensim>=4.2.0
28
+ [:python_version >= "3.8" and python_version < "3.14"]
30
29
  scikit-learn>=0.24.0
31
30
  scipy>=1.8.0
31
+ pandas>=1.1.0
@@ -0,0 +1,2 @@
1
+ cpp_easygraph
2
+ easygraph
@@ -51,21 +51,33 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
51
51
 
52
52
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
53
53
 
54
- # News
55
- - [09-29-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 900,000 downloads!
56
- - [07-27-2025] 🎉 We released EasyGraph 1.5! This version integrates the HWNN model and supports 11 representative network datasets.
54
+ # 📢 EasyGraph News
55
+
56
+ ## 📣 Media & Press
57
+ - [08-09-2025] [EasyHypergraph: Fast, Efficient Higher-Order Network Analysis](https://scienmag.com/easyhypergraph-fast-efficient-higher-order-network-analysis/)
58
+ - [01-15-2025] [开放原子大赛OpenRank开源数字生态分析与应用创新大赛全国一等奖 (in Chinese)](https://mp.weixin.qq.com/s/e54JHaP2AAEUN3S8RZ-Y2g)
59
+ - [01-07-2025] [计算机科学技术学院教授陈阳入选“2024中国开源先锋33人” (in Chinese)](https://news.fudan.edu.cn/2025/0107/c2463a143932/page.htm)
60
+ - [12-04-2024] [国际开源基准委员会的"顶级开源证书" (in Chinese)](https://chenyang03.wordpress.com/wp-content/uploads/2025/07/image.png?w=1024)
61
+ - [10-16-2024] [2023年度上海开源创新卓越成果奖 (in Chinese)](https://mp.weixin.qq.com/s/kO6Dpyolf74dlDvKuoLlJA)
62
+ - [11-06-2023] [复旦大学陈阳Patterns:EasyGraph——面向多学科的高性能网络结构分析工具箱|Cell Press论文速递 (in Chinese)](https://mp.weixin.qq.com/s/f2LCyQv1dYuquM_EfGX6Ow?poc_token=HBV092ijI2L534IrD0Jl_fnf3VjhX8UudcPFLH6b)
63
+ - [11-04-2023] [EasyGraph:多功能、跨平台、高效率的跨学科网络分析库 (in Chinese)](https://swarma.org/?p=46252)
64
+
65
+ ## 🚀 Releases & Milestones
66
+ - [10-11-2025] EasyGraph **v1.5.1** released (Python 3.14 supported)
67
+ - 🎉 **[09-29-2025] 900K+ Downloads! Thanks to our amazing community!**
68
+ - [07-27-2025] EasyGraph **v1.5** released (This version integrates the HWNN model and supports 11 representative network datasets)
69
+ - 🎉 **[06-29-2025] 800K+ Downloads!**
70
+ - [11-22-2024] EasyGraph **v1.4.1** released (Python 3.13 supported)
71
+ - [09-20-2024] EasyGraph **v1.4** released (GPU-powered functions for large network analysis)
72
+ - [05-27-2024] EasyGraph **v1.3** released (issues related to hypergraph analysis and visualization resolved)
73
+ - [04-09-2024] EasyGraph **v1.2** released (Python 3.12 supported)
74
+ - [02-05-2024] EasyGraph **v1.1** released (hypergraph analysis and learning for higher-order networks)
75
+ - [08-17-2023] EasyGraph **v1.0** released
76
+ - [07-22-2020] EasyGraph **first public release**
77
+
78
+ ## 📈 Publications
57
79
  - [05-30-2025] 🎉 Our paper "EasyHypergraph: an open-source software for fast and memory-saving analysis and learning of higher-order networks" was accepted by Humanities and Social Sciences Communications (Nature Portfolio)! [[PDF](https://www.nature.com/articles/s41599-025-05180-5)]
58
- - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council! [[Certificate](https://chenyang03.wordpress.com/wp-content/uploads/2025/07/image.png?w=1024)]
59
- - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
60
- - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
61
- - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
62
- - [05-27-2024] We released EasyGraph 1.3! This version has resolved several issues related to hypergraph analysis and visualization.
63
- - [04-09-2024] We released EasyGraph 1.2! This version now fully supports Python 3.12.
64
- - [03-06-2024] 🎉 We received the Shanghai Open Source Innovation Outstanding Achievement Award (Grand Prize)! [News](https://news.fudan.edu.cn/2024/0401/c2463a139799/page.htm)
65
- - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
66
- - [08-17-2023] We released EasyGraph 1.0!
67
80
  - [08-08-2023] 🎉 Our paper "EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis" was accepted by Patterns (Cell Press)! [[PDF](https://www.sciencedirect.com/science/article/pii/S2666389923002180)]
68
- - [07-22-2020] First public release of EasyGraph!
69
81
 
70
82
  # Stargazers
71
83
 
@@ -78,7 +90,7 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
78
90
 
79
91
  ## Supported Versions
80
92
 
81
- ``3.8 <= Python <= 3.13`` is required.
93
+ ``3.8 <= Python <= 3.14`` is required.
82
94
 
83
95
  ## Installation With pip
84
96
  ```
@@ -32,7 +32,7 @@ Graph_L graph_to_linkgraph(Graph &G, bool if_directed, std::string weight_key, b
32
32
  const std::vector<graph_edge>& edges = G._get_edges(if_directed);
33
33
  int edges_num = edges.size();
34
34
  Graph_L G_l(node_num, if_directed, is_deg);
35
- for(register int i = 0; i < edges_num; i++){
35
+ for(int i = 0; i < edges_num; i++){
36
36
  graph_edge e = edges[i];
37
37
  edge_attr_dict_factory& edge_attr = e.attr;
38
38
  weight_t edge_weight = edge_attr.find(weight_key) != edge_attr.end() ? edge_attr[weight_key] : 1;
@@ -42,7 +42,7 @@ Graph_L graph_to_linkgraph(Graph &G, bool if_directed, std::string weight_key, b
42
42
  G_l.add_weighted_edge(e.u, e.v, edge_weight);
43
43
  if (!if_directed){
44
44
  G_l.add_weighted_edge(e.v, e.u, edge_weight);
45
- }
45
+ }
46
46
  }
47
47
  return G_l;
48
- }
48
+ }
@@ -25,11 +25,11 @@ void betweenness_dijkstra(const Graph_L& G_l, const int &S, std::vector<double>&
25
25
  std::vector<double> delta(N+1, 0);
26
26
  std::vector<LinkEdge> E_path(edges_num+1);
27
27
  head_path[S] = 0;
28
- dis[S] = 0;
29
- count_path[S] = 1;
28
+ dis[S] = 0;
29
+ count_path[S] = 1;
30
30
  segment_tree_zkw.change(S, 0);
31
31
  int cnt_St = 0;
32
-
32
+
33
33
  while(segment_tree_zkw.t[1] != dis_inf) {
34
34
  int u = segment_tree_zkw.num[1];
35
35
  if(u==0) break;
@@ -37,15 +37,15 @@ void betweenness_dijkstra(const Graph_L& G_l, const int &S, std::vector<double>&
37
37
  if (cutoff >= 0 && dis[u] > cutoff){
38
38
  continue;
39
39
  }
40
- St[cnt_St++] = u;
40
+ St[cnt_St++] = u;
41
41
  for(int p = head[u]; p != -1; p = E[p].next) {
42
42
  int v = E[p].to;
43
43
  if(cutoff >= 0 && (dis[u] + E[p].w) > cutoff){
44
44
  continue;
45
45
  }
46
46
  if (dis[v] > dis[u] + E[p].w) {
47
- dis[v] = dis[u] + E[p].w;
48
- segment_tree_zkw.change(v, dis[v]);
47
+ dis[v] = dis[u] + E[p].w;
48
+ segment_tree_zkw.change(v, dis[v]);
49
49
  count_path[v] = count_path[u];
50
50
  head_path[v] = 0;
51
51
  E_path[++edge_number_path].next = head_path[v];
@@ -57,7 +57,7 @@ void betweenness_dijkstra(const Graph_L& G_l, const int &S, std::vector<double>&
57
57
  E_path[++edge_number_path].next = head_path[v];
58
58
  E_path[edge_number_path].to = u;
59
59
  head_path[v] = edge_number_path;
60
-
60
+
61
61
  }
62
62
  }
63
63
  }
@@ -105,8 +105,8 @@ static double calc_scale(int len_V, int is_directed, int normalized, int endpoin
105
105
 
106
106
 
107
107
 
108
- static py::object invoke_cpp_betweenness_centrality(py::object G, py::object weight,
109
- py::object cutoff, py::object sources,
108
+ static py::object invoke_cpp_betweenness_centrality(py::object G, py::object weight,
109
+ py::object cutoff, py::object sources,
110
110
  py::object normalized, py::object endpoints){
111
111
  Graph& G_ = G.cast<Graph&>();
112
112
  int cutoff_ = -1;
@@ -134,7 +134,7 @@ static py::object invoke_cpp_betweenness_centrality(py::object G, py::object wei
134
134
  if(!sources.is_none()){
135
135
  py::list sources_list = py::list(sources);
136
136
  int sources_list_len = py::len(sources_list);
137
- for(register int i = 0; i < sources_list_len; i++){
137
+ for(int i = 0; i < sources_list_len; i++){
138
138
  if(G_.node_to_id.attr("get")(sources_list[i],py::none()).is_none()){
139
139
  printf("The node should exist in the graph!");
140
140
  return py::none();
@@ -163,7 +163,7 @@ static py::object invoke_cpp_betweenness_centrality(py::object G, py::object wei
163
163
 
164
164
 
165
165
  #ifdef EASYGRAPH_ENABLE_GPU
166
- static py::object invoke_gpu_betweenness_centrality(py::object G, py::object weight,
166
+ static py::object invoke_gpu_betweenness_centrality(py::object G, py::object weight,
167
167
  py::object py_sources, py::object normalized, py::object endpoints) {
168
168
  Graph& G_ = G.cast<Graph&>();
169
169
  if (weight.is_none()) {
@@ -174,12 +174,12 @@ static py::object invoke_gpu_betweenness_centrality(py::object G, py::object wei
174
174
  auto csr_graph = G_.csr_graph;
175
175
  std::vector<int>& E = csr_graph->E;
176
176
  std::vector<int>& V = csr_graph->V;
177
- std::vector<double> *W_p = weight.is_none() ? &(csr_graph->unweighted_W)
177
+ std::vector<double> *W_p = weight.is_none() ? &(csr_graph->unweighted_W)
178
178
  : csr_graph->W_map.find(weight_to_string(weight))->second.get();
179
179
  auto sources = G_.gen_CSR_sources(py_sources);
180
180
  std::vector<double> BC;
181
181
  bool is_directed = G.attr("is_directed")().cast<bool>();
182
- int gpu_r = gpu_easygraph::betweenness_centrality(V, E, *W_p, *sources,
182
+ int gpu_r = gpu_easygraph::betweenness_centrality(V, E, *W_p, *sources,
183
183
  is_directed, normalized.cast<py::bool_>(),
184
184
  endpoints.cast<py::bool_>(), BC);
185
185
 
@@ -196,7 +196,7 @@ static py::object invoke_gpu_betweenness_centrality(py::object G, py::object wei
196
196
  #endif
197
197
 
198
198
 
199
- py::object betweenness_centrality(py::object G, py::object weight, py::object cutoff, py::object sources,
199
+ py::object betweenness_centrality(py::object G, py::object weight, py::object cutoff, py::object sources,
200
200
  py::object normalized, py::object endpoints) {
201
201
  #ifdef EASYGRAPH_ENABLE_GPU
202
202
  return invoke_gpu_betweenness_centrality(G, weight, sources, normalized, endpoints);
@@ -212,7 +212,7 @@ py::object betweenness_centrality(py::object G, py::object weight, py::object cu
212
212
  // std::vector<double> dis(N+1, INFINITY);
213
213
  // std::vector<bool> vis(N+1, false);
214
214
  // std::vector<int> head_path(N+1, 0);
215
-
215
+
216
216
  // const std::vector<int>& head = G_l.head;
217
217
  // const std::vector<LinkEdge>& E = G_l.edges;
218
218
  // int edges_num = E.size();
@@ -220,10 +220,10 @@ py::object betweenness_centrality(py::object G, py::object weight, py::object cu
220
220
  // std::vector<long long> count_path(N+1, 0);
221
221
  // std::vector<double> delta(N+1, 0);
222
222
  // std::vector<LinkEdge> E_path(edges_num+1);
223
-
223
+
224
224
  // head_path[S] = 0;
225
- // dis[S] = 0;
226
- // count_path[S] = 1;
225
+ // dis[S] = 0;
226
+ // count_path[S] = 1;
227
227
  // q.push(compare_node(S, 0));
228
228
  // int cnt_St = 0;
229
229
  // while(!q.empty()) {
@@ -250,14 +250,14 @@ py::object betweenness_centrality(py::object G, py::object weight, py::object cu
250
250
  // E_path[++edge_number_path].next = head_path[v];
251
251
  // E_path[edge_number_path].to = u;
252
252
  // head_path[v] = edge_number_path;
253
-
253
+
254
254
  // }
255
255
  // else if (dis[v] == dis[u] + E[p].w) {
256
256
  // count_path[v] += count_path[u];
257
257
  // E_path[++edge_number_path].next = head_path[v];
258
258
  // E_path[edge_number_path].to = u;
259
259
  // head_path[v] = edge_number_path;
260
-
260
+
261
261
  // }
262
262
  // }
263
263
  // }
@@ -18,7 +18,7 @@ double closeness_dijkstra(const Graph_L& G_l, const int &S, int cutoff, Segment_
18
18
  const std::vector<int>& head = G_l.head;
19
19
  int number_connected = 0;
20
20
  long long sum_dis = 0;
21
- dis[S] = 0;
21
+ dis[S] = 0;
22
22
  segment_tree_zkw.change(S, 0);
23
23
  while(segment_tree_zkw.t[1] != dis_inf) {
24
24
  int u = segment_tree_zkw.num[1];
@@ -26,17 +26,17 @@ double closeness_dijkstra(const Graph_L& G_l, const int &S, int cutoff, Segment_
26
26
  segment_tree_zkw.change(u, dis_inf);
27
27
  if (cutoff >= 0 && dis[u] > cutoff){
28
28
  continue;
29
- }
29
+ }
30
30
  number_connected += 1;
31
31
  sum_dis += dis[u];
32
- for(register int p = head[u]; p != -1; p = E[p].next) {
32
+ for(int p = head[u]; p != -1; p = E[p].next) {
33
33
  int v = E[p].to;
34
34
  if(cutoff >= 0 && (dis[u] + E[p].w) > cutoff){
35
35
  continue;
36
36
  }
37
37
  if (dis[v] > dis[u] + E[p].w) {
38
38
  dis[v] = dis[u] + E[p].w;
39
- segment_tree_zkw.change(v, dis[v]);
39
+ segment_tree_zkw.change(v, dis[v]);
40
40
  }
41
41
  }
42
42
  }
@@ -44,10 +44,10 @@ double closeness_dijkstra(const Graph_L& G_l, const int &S, int cutoff, Segment_
44
44
  return 0.0;
45
45
  else
46
46
  return 1.0 * (number_connected - 1) * (number_connected - 1) / ((N - 1) * sum_dis);
47
-
47
+
48
48
  }
49
49
 
50
- static py::object invoke_cpp_closeness_centrality(py::object G, py::object weight,
50
+ static py::object invoke_cpp_closeness_centrality(py::object G, py::object weight,
51
51
  py::object cutoff, py::object sources) {
52
52
  Graph& G_ = G.cast<Graph&>();
53
53
  int N = G_.node.size();
@@ -63,7 +63,7 @@ static py::object invoke_cpp_closeness_centrality(py::object G, py::object weigh
63
63
  if(!sources.is_none()){
64
64
  py::list sources_list = py::list(sources);
65
65
  int sources_list_len = py::len(sources_list);
66
- for(register int i = 0; i < sources_list_len; i++){
66
+ for(int i = 0; i < sources_list_len; i++){
67
67
  if(G_.node_to_id.attr("get")(sources_list[i],py::none()).is_none()){
68
68
  printf("The node should exist in the graph!");
69
69
  return py::none();
@@ -74,7 +74,7 @@ static py::object invoke_cpp_closeness_centrality(py::object G, py::object weigh
74
74
  }
75
75
  }
76
76
  else{
77
- for(register int i = 1; i <= N; i++){
77
+ for(int i = 1; i <= N; i++){
78
78
  float res = closeness_dijkstra(G_l, i, cutoff_,segment_tree_zkw);
79
79
  CC.push_back(res);
80
80
  }
@@ -96,7 +96,7 @@ static py::object invoke_gpu_closeness_centrality(py::object G, py::object weigh
96
96
  auto csr_graph = G_.csr_graph;
97
97
  std::vector<int>& E = csr_graph->E;
98
98
  std::vector<int>& V = csr_graph->V;
99
- std::vector<double> *W_p = weight.is_none() ? &(csr_graph->unweighted_W)
99
+ std::vector<double> *W_p = weight.is_none() ? &(csr_graph->unweighted_W)
100
100
  : csr_graph->W_map.find(weight_to_string(weight))->second.get();
101
101
  auto sources = G_.gen_CSR_sources(py_sources);
102
102
  std::vector<double> CC;
@@ -120,4 +120,4 @@ py::object closeness_centrality(py::object G, py::object weight, py::object cuto
120
120
  #else
121
121
  return invoke_cpp_closeness_centrality(G, weight, cutoff, sources);
122
122
  #endif
123
- }
123
+ }
@@ -51,7 +51,7 @@ py::object invoke_cpp_core_decomposition(py::object G) {
51
51
  for(int i = 1; i <= N; ++i){
52
52
  int v = vert[i];
53
53
  core[v] = deg[v];
54
- for(register int p = head[v]; p!=-1; p = edges[p].next){
54
+ for(int p = head[v]; p!=-1; p = edges[p].next){
55
55
  int u = edges[p].to;
56
56
  if (deg[u] > deg[v]) {
57
57
  int w = vert[bin[deg[u]]];
@@ -98,4 +98,4 @@ py::object core_decomposition(py::object G) {
98
98
  #else
99
99
  return invoke_cpp_core_decomposition(G);
100
100
  #endif
101
- }
101
+ }
@@ -27,15 +27,15 @@ std::vector<float> _dijkstra(Graph_L &G_l, int source, std::string weight, int t
27
27
  if(u == target){
28
28
  break;
29
29
  }
30
- for(register int p = head[u]; p != -1; p = E[p].next) {
30
+ for(int p = head[u]; p != -1; p = E[p].next) {
31
31
  int v = E[p].to;
32
32
  if (dis[v] > dis[u] + E[p].w) {
33
33
  dis[v] = dis[u] + E[p].w;
34
- segment_tree_zkw.change(v, dis[v]);
35
- }
34
+ segment_tree_zkw.change(v, dis[v]);
35
+ }
36
36
  }
37
37
  }
38
-
38
+
39
39
  return dis;
40
40
 
41
41
  }
@@ -54,14 +54,14 @@ py::object _invoke_cpp_dijkstra_multisource(py::object G,py::object sources, py:
54
54
  else{
55
55
  G_l = G_.linkgraph_structure;
56
56
  }
57
-
57
+
58
58
 
59
59
  int N = G_l.n;
60
60
  py::list sources_list = py::list(sources);
61
61
  int sources_list_len = py::len(sources_list);
62
62
  std::vector<double> sssp;
63
- for(register int i = 0; i < sources_list_len; i++){
64
- if(G_.node_to_id.attr("get")(sources_list[i],py::none()) == py::none()){
63
+ for(int i = 0; i < sources_list_len; i++){
64
+ if(G_.node_to_id.attr("get")(sources_list[i],py::none()).is(py::none())){
65
65
  printf("The node should exist in the graph!");
66
66
  return py::none();
67
67
  }
@@ -88,12 +88,12 @@ py::object _invoke_gpu_dijkstra_multisource(py::object G,py::object py_sources,
88
88
  auto csr_graph = G_.csr_graph;
89
89
  std::vector<int>& E = csr_graph->E;
90
90
  std::vector<int>& V = csr_graph->V;
91
- std::vector<double> *W_p = weight.is_none() ? &(csr_graph->unweighted_W)
91
+ std::vector<double> *W_p = weight.is_none() ? &(csr_graph->unweighted_W)
92
92
  : csr_graph->W_map.find(weight_to_string(weight))->second.get();
93
93
  auto sources = G_.gen_CSR_sources(py_sources);
94
94
  std::vector<double> sssp;
95
- int gpu_r = gpu_easygraph::sssp_dijkstra(V, E, *W_p, *sources,
96
- target.is_none() ? -1 : (int)py::cast<py::int_>(target),
95
+ int gpu_r = gpu_easygraph::sssp_dijkstra(V, E, *W_p, *sources,
96
+ target.is_none() ? -1 : (int)py::cast<py::int_>(target),
97
97
  sssp);
98
98
 
99
99
  if (gpu_r != gpu_easygraph::EG_GPU_SUCC) {
@@ -103,7 +103,7 @@ py::object _invoke_gpu_dijkstra_multisource(py::object G,py::object py_sources,
103
103
 
104
104
  py::array::ShapeContainer ret_shape{(int)sources->size(), (int)V.size() - 1};
105
105
  py::array_t<double> ret(ret_shape, sssp.data());
106
-
106
+
107
107
  return ret;
108
108
  }
109
109
  #endif
@@ -137,14 +137,14 @@ py::object _spfa(py::object G, py::object source, py::object weight) {
137
137
  while (l != r) {
138
138
  if (r != 0 && dis[Q[l]] >= dis[Q[r - 1]])
139
139
  std::swap(Q[l], Q[r - 1]);
140
- int u = Q[l++];
141
- if (l >= N) l -= N;
140
+ int u = Q[l++];
141
+ if (l >= N) l -= N;
142
142
  vis[u] = true;
143
143
 
144
- for(register int p = head[u]; p != -1; p = E[p].next) {
145
- int v=E[p].to;
144
+ for(int p = head[u]; p != -1; p = E[p].next) {
145
+ int v=E[p].to;
146
146
  if (dis[v]>dis[u]+E[p].w) {
147
- dis[v]=dis[u]+E[p].w;
147
+ dis[v]=dis[u]+E[p].w;
148
148
  if (!vis[v]) {
149
149
  vis[v]=true;
150
150
  if (l == 0 || dis[v] >= dis[Q[l]])
@@ -4,3 +4,4 @@ from .LPA import *
4
4
  from .modularity import *
5
5
  from .modularity_max_detection import *
6
6
  from .motif import *
7
+ from .localsearch import *