Python-EasyGraph 1.4.5__tar.gz → 1.5__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 (381) hide show
  1. python_easygraph-1.5/CMakeLists.txt +23 -0
  2. python_easygraph-1.5/MANIFEST.in +3 -0
  3. {python_easygraph-1.4.5 → python_easygraph-1.5}/PKG-INFO +3 -2
  4. {python_easygraph-1.4.5 → python_easygraph-1.5}/Python_EasyGraph.egg-info/PKG-INFO +3 -2
  5. {python_easygraph-1.4.5 → python_easygraph-1.5}/Python_EasyGraph.egg-info/SOURCES.txt +75 -0
  6. python_easygraph-1.5/README.md +169 -0
  7. python_easygraph-1.5/cpp_easygraph/CMakeLists.txt +44 -0
  8. python_easygraph-1.5/cpp_easygraph/classes/__init__.h +5 -0
  9. python_easygraph-1.5/cpp_easygraph/classes/coo_graph.h +13 -0
  10. python_easygraph-1.5/cpp_easygraph/classes/csr_graph.h +13 -0
  11. python_easygraph-1.5/cpp_easygraph/classes/directed_graph.cpp +613 -0
  12. python_easygraph-1.5/cpp_easygraph/classes/directed_graph.h +37 -0
  13. python_easygraph-1.5/cpp_easygraph/classes/graph.cpp +990 -0
  14. python_easygraph-1.5/cpp_easygraph/classes/graph.h +73 -0
  15. python_easygraph-1.5/cpp_easygraph/classes/linkgraph.h +89 -0
  16. python_easygraph-1.5/cpp_easygraph/classes/operation.cpp +16 -0
  17. python_easygraph-1.5/cpp_easygraph/classes/operation.h +5 -0
  18. python_easygraph-1.5/cpp_easygraph/classes/segment_tree.cpp +42 -0
  19. python_easygraph-1.5/cpp_easygraph/common/common.cpp +3 -0
  20. python_easygraph-1.5/cpp_easygraph/common/common.h +37 -0
  21. python_easygraph-1.5/cpp_easygraph/common/utils.cpp +48 -0
  22. python_easygraph-1.5/cpp_easygraph/common/utils.h +9 -0
  23. python_easygraph-1.5/cpp_easygraph/cpp_easygraph.cpp +101 -0
  24. python_easygraph-1.5/cpp_easygraph/functions/__init__.h +9 -0
  25. python_easygraph-1.5/cpp_easygraph/functions/basic/__init__.h +4 -0
  26. python_easygraph-1.5/cpp_easygraph/functions/basic/avg_degree.cpp +9 -0
  27. python_easygraph-1.5/cpp_easygraph/functions/basic/avg_degree.h +5 -0
  28. python_easygraph-1.5/cpp_easygraph/functions/basic/cluster.cpp +298 -0
  29. python_easygraph-1.5/cpp_easygraph/functions/basic/cluster.h +5 -0
  30. python_easygraph-1.5/cpp_easygraph/functions/centrality/__init__.h +1 -0
  31. python_easygraph-1.5/cpp_easygraph/functions/centrality/betweenness.cpp +275 -0
  32. python_easygraph-1.5/cpp_easygraph/functions/centrality/centrality.h +15 -0
  33. python_easygraph-1.5/cpp_easygraph/functions/centrality/closeness.cpp +123 -0
  34. python_easygraph-1.5/cpp_easygraph/functions/centrality/katz_centrality.cpp +120 -0
  35. python_easygraph-1.5/cpp_easygraph/functions/components/__init__.h +5 -0
  36. python_easygraph-1.5/cpp_easygraph/functions/components/biconnected.cpp +109 -0
  37. python_easygraph-1.5/cpp_easygraph/functions/components/biconnected.h +34 -0
  38. python_easygraph-1.5/cpp_easygraph/functions/components/connected.cpp +205 -0
  39. python_easygraph-1.5/cpp_easygraph/functions/components/connected.h +16 -0
  40. python_easygraph-1.5/cpp_easygraph/functions/components/strongly_connected.cpp +90 -0
  41. python_easygraph-1.5/cpp_easygraph/functions/components/strongly_connected.h +6 -0
  42. python_easygraph-1.5/cpp_easygraph/functions/cores/__init__.h +3 -0
  43. python_easygraph-1.5/cpp_easygraph/functions/cores/k_cores.cpp +101 -0
  44. python_easygraph-1.5/cpp_easygraph/functions/cores/k_cores.h +5 -0
  45. python_easygraph-1.5/cpp_easygraph/functions/pagerank/__init__.h +5 -0
  46. python_easygraph-1.5/cpp_easygraph/functions/pagerank/pagerank.cpp +87 -0
  47. python_easygraph-1.5/cpp_easygraph/functions/pagerank/pagerank.h +5 -0
  48. python_easygraph-1.5/cpp_easygraph/functions/path/__init__.h +4 -0
  49. python_easygraph-1.5/cpp_easygraph/functions/path/mst.cpp +169 -0
  50. python_easygraph-1.5/cpp_easygraph/functions/path/mst.h +18 -0
  51. python_easygraph-1.5/cpp_easygraph/functions/path/path.cpp +339 -0
  52. python_easygraph-1.5/cpp_easygraph/functions/path/path.h +10 -0
  53. python_easygraph-1.5/cpp_easygraph/functions/structural_holes/__init__.h +3 -0
  54. python_easygraph-1.5/cpp_easygraph/functions/structural_holes/evaluation.cpp +805 -0
  55. python_easygraph-1.5/cpp_easygraph/functions/structural_holes/evaluation.h +8 -0
  56. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/operation.py +3 -3
  57. python_easygraph-1.5/easygraph/classes/tests/test_base.py +145 -0
  58. python_easygraph-1.5/easygraph/classes/tests/test_directed_graph.py +97 -0
  59. python_easygraph-1.5/easygraph/classes/tests/test_graphV2.py +122 -0
  60. python_easygraph-1.5/easygraph/classes/tests/test_multidigraph.py +114 -0
  61. python_easygraph-1.5/easygraph/classes/tests/test_multigraph.py +149 -0
  62. python_easygraph-1.5/easygraph/classes/tests/test_operation.py +131 -0
  63. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/__init__.py +19 -7
  64. python_easygraph-1.5/easygraph/datasets/amazon_photo.py +110 -0
  65. python_easygraph-1.5/easygraph/datasets/arxiv.py +106 -0
  66. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/citation_graph.py +3 -3
  67. python_easygraph-1.5/easygraph/datasets/coauthor.py +118 -0
  68. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/dynamic/email_enron.py +1 -2
  69. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/dynamic/email_eu.py +1 -2
  70. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/dynamic/hospital_lyon.py +4 -3
  71. python_easygraph-1.5/easygraph/datasets/facebook_ego.py +109 -0
  72. python_easygraph-1.5/easygraph/datasets/flickr.py +129 -0
  73. python_easygraph-1.5/easygraph/datasets/github.py +125 -0
  74. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/graph_dataset_base.py +1 -2
  75. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/ppi.py +2 -1
  76. python_easygraph-1.5/easygraph/datasets/reddit.py +104 -0
  77. python_easygraph-1.5/easygraph/datasets/roadnet.py +107 -0
  78. python_easygraph-1.5/easygraph/datasets/twitter_ego.py +65 -0
  79. python_easygraph-1.5/easygraph/datasets/web_google.py +118 -0
  80. python_easygraph-1.5/easygraph/datasets/wiki_topcats.py +105 -0
  81. python_easygraph-1.5/easygraph/functions/basic/tests/test_avg_degree.py +41 -0
  82. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/tests/test_cluster.py +39 -0
  83. python_easygraph-1.5/easygraph/functions/basic/tests/test_localassort.py +110 -0
  84. python_easygraph-1.5/easygraph/functions/basic/tests/test_predecessor.py +79 -0
  85. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/__init__.py +1 -0
  86. python_easygraph-1.5/easygraph/functions/centrality/katz_centrality.py +105 -0
  87. python_easygraph-1.5/easygraph/functions/centrality/tests/test_betweenness.py +99 -0
  88. python_easygraph-1.5/easygraph/functions/centrality/tests/test_closeness.py +86 -0
  89. python_easygraph-1.5/easygraph/functions/centrality/tests/test_degree.py +78 -0
  90. python_easygraph-1.5/easygraph/functions/centrality/tests/test_egobetweenness.py +73 -0
  91. python_easygraph-1.5/easygraph/functions/centrality/tests/test_flowbetweenness.py +90 -0
  92. python_easygraph-1.5/easygraph/functions/centrality/tests/test_laplacian.py +106 -0
  93. python_easygraph-1.5/easygraph/functions/centrality/tests/test_pagerank.py +90 -0
  94. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/louvain.py +5 -0
  95. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/motif.py +3 -1
  96. python_easygraph-1.5/easygraph/functions/community/tests/test_LPA.py +65 -0
  97. python_easygraph-1.5/easygraph/functions/community/tests/test_ego_graph.py +65 -0
  98. python_easygraph-1.5/easygraph/functions/community/tests/test_louvian.py +65 -0
  99. python_easygraph-1.5/easygraph/functions/community/tests/test_modularity.py +71 -0
  100. python_easygraph-1.5/easygraph/functions/community/tests/test_modularity_max_detection.py +81 -0
  101. python_easygraph-1.5/easygraph/functions/community/tests/test_motif.py +89 -0
  102. python_easygraph-1.5/easygraph/functions/components/tests/test_biconnected.py +92 -0
  103. python_easygraph-1.5/easygraph/functions/components/tests/test_connected.py +112 -0
  104. python_easygraph-1.5/easygraph/functions/components/tests/test_strongly_connected.py +121 -0
  105. python_easygraph-1.5/easygraph/functions/components/tests/test_weakly_connected.py +82 -0
  106. python_easygraph-1.5/easygraph/functions/core/tests/test_k_core.py +101 -0
  107. python_easygraph-1.5/easygraph/functions/drawing/tests/test_geometry.py +78 -0
  108. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/NOBE.py +1 -0
  109. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/line.py +4 -4
  110. python_easygraph-1.5/easygraph/functions/graph_embedding/tests/test_deepwalk.py +101 -0
  111. python_easygraph-1.5/easygraph/functions/graph_embedding/tests/test_line.py +77 -0
  112. python_easygraph-1.5/easygraph/functions/graph_embedding/tests/test_nobe.py +57 -0
  113. python_easygraph-1.5/easygraph/functions/graph_embedding/tests/test_node2vec.py +58 -0
  114. python_easygraph-1.5/easygraph/functions/graph_embedding/tests/test_sdne.py +107 -0
  115. python_easygraph-1.5/easygraph/functions/graph_generator/tests/test_Random_Network.py +63 -0
  116. python_easygraph-1.5/easygraph/functions/graph_generator/tests/test_classic.py +87 -0
  117. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/centrality/s_centrality.py +1 -1
  118. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/centrality/vector_centrality.py +26 -1
  119. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/tests/test_classic.py +37 -0
  120. python_easygraph-1.5/easygraph/functions/hypergraph/null_model/tests/test_lattice.py +49 -0
  121. python_easygraph-1.5/easygraph/functions/hypergraph/null_model/tests/test_simple.py +60 -0
  122. python_easygraph-1.5/easygraph/functions/hypergraph/tests/test_assortativity.py +103 -0
  123. python_easygraph-1.5/easygraph/functions/hypergraph/tests/test_hypergraph_clustering.py +89 -0
  124. python_easygraph-1.5/easygraph/functions/hypergraph/tests/test_hypergraph_operation.py +72 -0
  125. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/average_shortest_path_length.py +1 -1
  126. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/bridges.py +3 -1
  127. python_easygraph-1.5/easygraph/functions/path/tests/test_average_shortest_path_length.py +56 -0
  128. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/tests/test_bridges.py +63 -0
  129. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/tests/test_diameter.py +50 -0
  130. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/tests/test_mst.py +61 -0
  131. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/tests/test_path.py +63 -0
  132. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/HAM.py +8 -0
  133. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/HIS.py +7 -0
  134. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/ICC.py +4 -0
  135. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/NOBE.py +8 -0
  136. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/__init__.py +1 -0
  137. python_easygraph-1.5/easygraph/functions/tests/test_isolate.py +93 -0
  138. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/hwnn.py +2 -1
  139. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/hwnn_conv.py +2 -1
  140. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/tests/test_convert.py +54 -0
  141. {python_easygraph-1.4.5 → python_easygraph-1.5}/setup.py +1 -1
  142. python_easygraph-1.4.5/easygraph/classes/tests/test_multidigraph.py +0 -38
  143. python_easygraph-1.4.5/easygraph/classes/tests/test_multigraph.py +0 -61
  144. python_easygraph-1.4.5/easygraph/classes/tests/test_operation.py +0 -15
  145. python_easygraph-1.4.5/easygraph/functions/basic/tests/test_avg_degree.py +0 -0
  146. python_easygraph-1.4.5/easygraph/functions/basic/tests/test_localassort.py +0 -36
  147. python_easygraph-1.4.5/easygraph/functions/basic/tests/test_predecessor.py +0 -18
  148. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_betweenness.py +0 -26
  149. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_closeness.py +0 -27
  150. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_degree.py +0 -29
  151. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_egobetweenness.py +0 -26
  152. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_flowbetweenness.py +0 -27
  153. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_laplacian.py +0 -27
  154. python_easygraph-1.4.5/easygraph/functions/centrality/tests/test_pagerank.py +0 -35
  155. python_easygraph-1.4.5/easygraph/functions/community/tests/test_motif.py +0 -16
  156. python_easygraph-1.4.5/easygraph/functions/components/tests/test_biconnected.py +0 -34
  157. python_easygraph-1.4.5/easygraph/functions/components/tests/test_connected.py +0 -35
  158. python_easygraph-1.4.5/easygraph/functions/components/tests/test_strongly_connected.py +0 -27
  159. python_easygraph-1.4.5/easygraph/functions/components/tests/test_weakly_connected.py +0 -21
  160. python_easygraph-1.4.5/easygraph/functions/core/tests/test_k_core.py +0 -29
  161. python_easygraph-1.4.5/easygraph/functions/graph_embedding/tests/test_deepwalk.py +0 -21
  162. python_easygraph-1.4.5/easygraph/functions/graph_embedding/tests/test_line.py +0 -13
  163. python_easygraph-1.4.5/easygraph/functions/graph_embedding/tests/test_nobe.py +0 -30
  164. python_easygraph-1.4.5/easygraph/functions/graph_embedding/tests/test_node2vec.py +0 -29
  165. python_easygraph-1.4.5/easygraph/functions/graph_embedding/tests/test_sdne.py +0 -31
  166. python_easygraph-1.4.5/easygraph/functions/graph_generator/tests/test_Random_Network.py +0 -27
  167. python_easygraph-1.4.5/easygraph/functions/graph_generator/tests/test_classic.py +0 -22
  168. python_easygraph-1.4.5/easygraph/functions/hypergraph/tests/test_assortativity.py +0 -41
  169. python_easygraph-1.4.5/easygraph/functions/hypergraph/tests/test_hypergraph_clustering.py +0 -29
  170. python_easygraph-1.4.5/easygraph/functions/hypergraph/tests/test_hypergraph_operation.py +0 -24
  171. python_easygraph-1.4.5/easygraph/functions/path/tests/test_average_shortest_path_length.py +0 -12
  172. python_easygraph-1.4.5/easygraph/functions/tests/test_isolate.py +0 -26
  173. {python_easygraph-1.4.5 → python_easygraph-1.5}/LICENSE +0 -0
  174. {python_easygraph-1.4.5 → python_easygraph-1.5}/Python_EasyGraph.egg-info/dependency_links.txt +0 -0
  175. {python_easygraph-1.4.5 → python_easygraph-1.5}/Python_EasyGraph.egg-info/requires.txt +0 -0
  176. {python_easygraph-1.4.5 → python_easygraph-1.5}/Python_EasyGraph.egg-info/top_level.txt +0 -0
  177. {python_easygraph-1.4.5 → python_easygraph-1.5}/README.rst +0 -0
  178. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/__init__.py +0 -0
  179. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/_global.py +0 -0
  180. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/__init__.py +0 -0
  181. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/base.py +0 -0
  182. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/directed_graph.py +0 -0
  183. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/directed_multigraph.py +0 -0
  184. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/graph.py +0 -0
  185. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/graphviews.py +0 -0
  186. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/hypergraph.py +0 -0
  187. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/multigraph.py +0 -0
  188. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/test_base_graph_class.py +0 -0
  189. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/tests/__init__.py +0 -0
  190. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/tests/test_graph.py +0 -0
  191. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/classes/tests/test_hypergraph.py +0 -0
  192. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/convert.py +0 -0
  193. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datapipe/__init__.py +0 -0
  194. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datapipe/common.py +0 -0
  195. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datapipe/loader.py +0 -0
  196. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datapipe/normalize.py +0 -0
  197. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/dynamic/__init__.py +0 -0
  198. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/dynamic/load_dataset.py +0 -0
  199. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/get_sample_graph.py +0 -0
  200. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/gnn_benchmark.py +0 -0
  201. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/House_Committees.py +0 -0
  202. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/Yelp.py +0 -0
  203. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/__init__.py +0 -0
  204. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/_global.py +0 -0
  205. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/cat_edge_Cooking.py +0 -0
  206. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/coauthorship.py +0 -0
  207. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/cocitation.py +0 -0
  208. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/contact_primary_school.py +0 -0
  209. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/cooking_200.py +0 -0
  210. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/hypergraph_dataset_base.py +0 -0
  211. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/loadDeepSetDatasets.py +0 -0
  212. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/mathoverflow_answers.py +0 -0
  213. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/senate_committees.py +0 -0
  214. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/trivago_clicks.py +0 -0
  215. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/hypergraph/walmart_trips.py +0 -0
  216. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/karate.py +0 -0
  217. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/datasets/utils.py +0 -0
  218. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/exception.py +0 -0
  219. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/experiments/__init__.py +0 -0
  220. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/experiments/base.py +0 -0
  221. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/experiments/hypergraphs/__init__.py +0 -0
  222. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/experiments/hypergraphs/hypergraph.py +0 -0
  223. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/experiments/vertex_classification.py +0 -0
  224. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/__init__.py +0 -0
  225. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/__init__.py +0 -0
  226. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/avg_degree.py +0 -0
  227. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/cluster.py +0 -0
  228. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/localassort.py +0 -0
  229. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/predecessor_path_based.py +0 -0
  230. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/basic/tests/__init__.py +0 -0
  231. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/betweenness.py +0 -0
  232. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/closeness.py +0 -0
  233. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/degree.py +0 -0
  234. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/ego_betweenness.py +0 -0
  235. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/flowbetweenness.py +0 -0
  236. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/laplacian.py +0 -0
  237. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/pagerank.py +0 -0
  238. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/centrality/tests/__init__.py +0 -0
  239. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/LPA.py +0 -0
  240. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/__init__.py +0 -0
  241. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/ego_graph.py +0 -0
  242. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/modularity.py +0 -0
  243. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/modularity_max_detection.py +0 -0
  244. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/community/tests/__init__.py +0 -0
  245. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/components/__init__.py +0 -0
  246. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/components/biconnected.py +0 -0
  247. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/components/connected.py +0 -0
  248. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/components/strongly_connected.py +0 -0
  249. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/components/tests/__init__.py +0 -0
  250. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/components/weakly_connected.py +0 -0
  251. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/core/__init__.py +0 -0
  252. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/core/k_core.py +0 -0
  253. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/core/tests/__init__.py +0 -0
  254. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/__init__.py +0 -0
  255. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/defaults.py +0 -0
  256. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/drawing.py +0 -0
  257. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/geometry.py +0 -0
  258. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/layout.py +0 -0
  259. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/plot.py +0 -0
  260. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/positioning.py +0 -0
  261. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/simulator.py +0 -0
  262. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/tests/__init__.py +0 -0
  263. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/tests/test_drawing.py +0 -0
  264. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/tests/test_plot.py +0 -0
  265. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/tests/test_positioning.py +0 -0
  266. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/drawing/utils.py +0 -0
  267. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/__init__.py +0 -0
  268. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/deepwalk.py +0 -0
  269. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/net_emb_example_citeseer.py +0 -0
  270. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/node2vec.py +0 -0
  271. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/sdne.py +0 -0
  272. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_embedding/tests/__init__.py +0 -0
  273. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_generator/RandomNetwork.py +0 -0
  274. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_generator/__init__.py +0 -0
  275. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_generator/classic.py +0 -0
  276. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/graph_generator/tests/__init__.py +0 -0
  277. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/__init__.py +0 -0
  278. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/assortativity.py +0 -0
  279. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/centrality/__init__.py +0 -0
  280. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/centrality/cycle_ratio.py +0 -0
  281. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/centrality/degree.py +0 -0
  282. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/centrality/hypercoreness.py +0 -0
  283. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/hypergraph_clustering.py +0 -0
  284. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/hypergraph_operation.py +0 -0
  285. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/__init__.py +0 -0
  286. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/hypergraph_classic.py +0 -0
  287. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/lattice.py +0 -0
  288. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/random.py +0 -0
  289. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/simple.py +0 -0
  290. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/tests/__init__.py +0 -0
  291. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/null_model/uniform.py +0 -0
  292. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/tests/__init__.py +0 -0
  293. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/hypergraph/tests/test_centrality.py +0 -0
  294. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/isolate.py +0 -0
  295. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/__init__.py +0 -0
  296. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/diameter.py +0 -0
  297. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/mst.py +0 -0
  298. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/path.py +0 -0
  299. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/path/tests/__init__.py +0 -0
  300. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/AP_Greedy.py +0 -0
  301. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/MaxD.py +0 -0
  302. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/SHII_metric.py +0 -0
  303. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/evaluation.py +0 -0
  304. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/maxBlock.py +0 -0
  305. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/metrics.py +0 -0
  306. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/structural_holes/weakTie.py +0 -0
  307. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/functions/tests/__init__.py +0 -0
  308. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/ml_metrics/__init__.py +0 -0
  309. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/ml_metrics/base.py +0 -0
  310. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/ml_metrics/classification.py +0 -0
  311. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/ml_metrics/hypergraphs/__init__.py +0 -0
  312. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/ml_metrics/hypergraphs/hypergraph.py +0 -0
  313. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/__init__.py +0 -0
  314. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/__init__.py +0 -0
  315. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/dhcf.py +0 -0
  316. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/dhne.py +0 -0
  317. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/hgnn.py +0 -0
  318. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/hgnnp.py +0 -0
  319. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/hnhn.py +0 -0
  320. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/hypergcn.py +0 -0
  321. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/setgnn.py +0 -0
  322. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/model/hypergraphs/unignn.py +0 -0
  323. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/__init__.py +0 -0
  324. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/__init__.py +0 -0
  325. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/common.py +0 -0
  326. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/__init__.py +0 -0
  327. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/dhcf_conv.py +0 -0
  328. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/halfnlh_conv.py +0 -0
  329. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/hgnn_conv.py +0 -0
  330. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/hgnnp_conv.py +0 -0
  331. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/hnhn_conv.py +0 -0
  332. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/hypergcn_conv.py +0 -0
  333. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/hypergraphs/unignn_conv.py +0 -0
  334. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/convs/pma.py +0 -0
  335. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/loss.py +0 -0
  336. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/regularization.py +0 -0
  337. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/tests/__init__.py +0 -0
  338. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/tests/test_gatconv.py +0 -0
  339. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/tests/test_gcnconv.py +0 -0
  340. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/tests/test_graphsageconv.py +0 -0
  341. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/nn/tests/test_regularization.py +0 -0
  342. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/__init__.py +0 -0
  343. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/edgelist.py +0 -0
  344. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/gexf.py +0 -0
  345. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/gml.py +0 -0
  346. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/graphml.py +0 -0
  347. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/graphviz.py +0 -0
  348. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/json_graph/__init__.py +0 -0
  349. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/json_graph/node_link.py +0 -0
  350. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/pajek.py +0 -0
  351. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/pickle.py +0 -0
  352. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/__init__.py +0 -0
  353. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_edgelist.py +0 -0
  354. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_gexf.py +0 -0
  355. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_gml.py +0 -0
  356. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_graphml.py +0 -0
  357. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_graphviz.py +0 -0
  358. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_pajek.py +0 -0
  359. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_pickle.py +0 -0
  360. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/tests/test_ucinet.py +0 -0
  361. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/readwrite/ucinet.py +0 -0
  362. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/tests/__init__.py +0 -0
  363. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/tests/script_test_cpp_easygraph.py +0 -0
  364. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/tests/teddy_test_cpp_easygraph_sanity_check.py +0 -0
  365. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/tests/test_cpp_easygraph.py +0 -0
  366. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/__init__.py +0 -0
  367. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/alias.py +0 -0
  368. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/convert_class.py +0 -0
  369. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/convert_to_matrix.py +0 -0
  370. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/decorators.py +0 -0
  371. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/download.py +0 -0
  372. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/exception.py +0 -0
  373. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/index_of_node.py +0 -0
  374. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/logging.py +0 -0
  375. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/mapped_queue.py +0 -0
  376. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/misc.py +0 -0
  377. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/relabel.py +0 -0
  378. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/sparse.py +0 -0
  379. {python_easygraph-1.4.5 → python_easygraph-1.5}/easygraph/utils/type_change.py +0 -0
  380. {python_easygraph-1.4.5 → python_easygraph-1.5}/pyproject.toml +0 -0
  381. {python_easygraph-1.4.5 → python_easygraph-1.5}/setup.cfg +0 -0
@@ -0,0 +1,23 @@
1
+ cmake_minimum_required(VERSION 3.23)
2
+
3
+ project(easygraph)
4
+
5
+ option(EASYGRAPH_ENABLE_GPU "EASYGRAPH_ENABLE_GPU" OFF)
6
+
7
+ add_subdirectory(cpp_easygraph)
8
+
9
+ if (EASYGRAPH_ENABLE_GPU)
10
+
11
+ message("easygraph gpu module is enabled")
12
+
13
+ add_subdirectory(gpu_easygraph)
14
+
15
+ target_include_directories(cpp_easygraph
16
+ PRIVATE gpu_easygraph
17
+ )
18
+
19
+ else()
20
+
21
+ message("easygraph gpu module is disabled")
22
+
23
+ endif()
@@ -0,0 +1,3 @@
1
+ include README.md
2
+ include CMakeLists.txt
3
+ recursive-include cpp_easygraph *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Python-EasyGraph
3
- Version: 1.4.5
3
+ Version: 1.5
4
4
  Summary: Easy Graph
5
5
  Home-page: https://github.com/easy-graph/Easy-Graph
6
6
  Author: Fudan DataNET Group
@@ -100,7 +100,8 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
100
100
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
101
101
 
102
102
  # News
103
- - [03-28-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 700,000 downloads!
103
+ - [06-29-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 800,000 downloads!
104
+ - [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)!
104
105
  - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council!
105
106
  - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
106
107
  - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Python-EasyGraph
3
- Version: 1.4.5
3
+ Version: 1.5
4
4
  Summary: Easy Graph
5
5
  Home-page: https://github.com/easy-graph/Easy-Graph
6
6
  Author: Fudan DataNET Group
@@ -100,7 +100,8 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
100
100
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
101
101
 
102
102
  # News
103
- - [03-28-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 700,000 downloads!
103
+ - [06-29-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 800,000 downloads!
104
+ - [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)!
104
105
  - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council!
105
106
  - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
106
107
  - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
@@ -1,4 +1,7 @@
1
+ CMakeLists.txt
1
2
  LICENSE
3
+ MANIFEST.in
4
+ README.md
2
5
  README.rst
3
6
  pyproject.toml
4
7
  setup.py
@@ -7,6 +10,55 @@ Python_EasyGraph.egg-info/SOURCES.txt
7
10
  Python_EasyGraph.egg-info/dependency_links.txt
8
11
  Python_EasyGraph.egg-info/requires.txt
9
12
  Python_EasyGraph.egg-info/top_level.txt
13
+ cpp_easygraph/CMakeLists.txt
14
+ cpp_easygraph/cpp_easygraph.cpp
15
+ cpp_easygraph/classes/__init__.h
16
+ cpp_easygraph/classes/coo_graph.h
17
+ cpp_easygraph/classes/csr_graph.h
18
+ cpp_easygraph/classes/directed_graph.cpp
19
+ cpp_easygraph/classes/directed_graph.h
20
+ cpp_easygraph/classes/graph.cpp
21
+ cpp_easygraph/classes/graph.h
22
+ cpp_easygraph/classes/linkgraph.h
23
+ cpp_easygraph/classes/operation.cpp
24
+ cpp_easygraph/classes/operation.h
25
+ cpp_easygraph/classes/segment_tree.cpp
26
+ cpp_easygraph/common/common.cpp
27
+ cpp_easygraph/common/common.h
28
+ cpp_easygraph/common/utils.cpp
29
+ cpp_easygraph/common/utils.h
30
+ cpp_easygraph/functions/__init__.h
31
+ cpp_easygraph/functions/basic/__init__.h
32
+ cpp_easygraph/functions/basic/avg_degree.cpp
33
+ cpp_easygraph/functions/basic/avg_degree.h
34
+ cpp_easygraph/functions/basic/cluster.cpp
35
+ cpp_easygraph/functions/basic/cluster.h
36
+ cpp_easygraph/functions/centrality/__init__.h
37
+ cpp_easygraph/functions/centrality/betweenness.cpp
38
+ cpp_easygraph/functions/centrality/centrality.h
39
+ cpp_easygraph/functions/centrality/closeness.cpp
40
+ cpp_easygraph/functions/centrality/katz_centrality.cpp
41
+ cpp_easygraph/functions/components/__init__.h
42
+ cpp_easygraph/functions/components/biconnected.cpp
43
+ cpp_easygraph/functions/components/biconnected.h
44
+ cpp_easygraph/functions/components/connected.cpp
45
+ cpp_easygraph/functions/components/connected.h
46
+ cpp_easygraph/functions/components/strongly_connected.cpp
47
+ cpp_easygraph/functions/components/strongly_connected.h
48
+ cpp_easygraph/functions/cores/__init__.h
49
+ cpp_easygraph/functions/cores/k_cores.cpp
50
+ cpp_easygraph/functions/cores/k_cores.h
51
+ cpp_easygraph/functions/pagerank/__init__.h
52
+ cpp_easygraph/functions/pagerank/pagerank.cpp
53
+ cpp_easygraph/functions/pagerank/pagerank.h
54
+ cpp_easygraph/functions/path/__init__.h
55
+ cpp_easygraph/functions/path/mst.cpp
56
+ cpp_easygraph/functions/path/mst.h
57
+ cpp_easygraph/functions/path/path.cpp
58
+ cpp_easygraph/functions/path/path.h
59
+ cpp_easygraph/functions/structural_holes/__init__.h
60
+ cpp_easygraph/functions/structural_holes/evaluation.cpp
61
+ cpp_easygraph/functions/structural_holes/evaluation.h
10
62
  easygraph/__init__.py
11
63
  easygraph/_global.py
12
64
  easygraph/convert.py
@@ -22,7 +74,10 @@ easygraph/classes/multigraph.py
22
74
  easygraph/classes/operation.py
23
75
  easygraph/classes/test_base_graph_class.py
24
76
  easygraph/classes/tests/__init__.py
77
+ easygraph/classes/tests/test_base.py
78
+ easygraph/classes/tests/test_directed_graph.py
25
79
  easygraph/classes/tests/test_graph.py
80
+ easygraph/classes/tests/test_graphV2.py
26
81
  easygraph/classes/tests/test_hypergraph.py
27
82
  easygraph/classes/tests/test_multidigraph.py
28
83
  easygraph/classes/tests/test_multigraph.py
@@ -32,13 +87,24 @@ easygraph/datapipe/common.py
32
87
  easygraph/datapipe/loader.py
33
88
  easygraph/datapipe/normalize.py
34
89
  easygraph/datasets/__init__.py
90
+ easygraph/datasets/amazon_photo.py
91
+ easygraph/datasets/arxiv.py
35
92
  easygraph/datasets/citation_graph.py
93
+ easygraph/datasets/coauthor.py
94
+ easygraph/datasets/facebook_ego.py
95
+ easygraph/datasets/flickr.py
36
96
  easygraph/datasets/get_sample_graph.py
97
+ easygraph/datasets/github.py
37
98
  easygraph/datasets/gnn_benchmark.py
38
99
  easygraph/datasets/graph_dataset_base.py
39
100
  easygraph/datasets/karate.py
40
101
  easygraph/datasets/ppi.py
102
+ easygraph/datasets/reddit.py
103
+ easygraph/datasets/roadnet.py
104
+ easygraph/datasets/twitter_ego.py
41
105
  easygraph/datasets/utils.py
106
+ easygraph/datasets/web_google.py
107
+ easygraph/datasets/wiki_topcats.py
42
108
  easygraph/datasets/dynamic/__init__.py
43
109
  easygraph/datasets/dynamic/email_enron.py
44
110
  easygraph/datasets/dynamic/email_eu.py
@@ -82,6 +148,7 @@ easygraph/functions/centrality/closeness.py
82
148
  easygraph/functions/centrality/degree.py
83
149
  easygraph/functions/centrality/ego_betweenness.py
84
150
  easygraph/functions/centrality/flowbetweenness.py
151
+ easygraph/functions/centrality/katz_centrality.py
85
152
  easygraph/functions/centrality/laplacian.py
86
153
  easygraph/functions/centrality/pagerank.py
87
154
  easygraph/functions/centrality/tests/__init__.py
@@ -100,6 +167,11 @@ easygraph/functions/community/modularity.py
100
167
  easygraph/functions/community/modularity_max_detection.py
101
168
  easygraph/functions/community/motif.py
102
169
  easygraph/functions/community/tests/__init__.py
170
+ easygraph/functions/community/tests/test_LPA.py
171
+ easygraph/functions/community/tests/test_ego_graph.py
172
+ easygraph/functions/community/tests/test_louvian.py
173
+ easygraph/functions/community/tests/test_modularity.py
174
+ easygraph/functions/community/tests/test_modularity_max_detection.py
103
175
  easygraph/functions/community/tests/test_motif.py
104
176
  easygraph/functions/components/__init__.py
105
177
  easygraph/functions/components/biconnected.py
@@ -126,6 +198,7 @@ easygraph/functions/drawing/simulator.py
126
198
  easygraph/functions/drawing/utils.py
127
199
  easygraph/functions/drawing/tests/__init__.py
128
200
  easygraph/functions/drawing/tests/test_drawing.py
201
+ easygraph/functions/drawing/tests/test_geometry.py
129
202
  easygraph/functions/drawing/tests/test_plot.py
130
203
  easygraph/functions/drawing/tests/test_positioning.py
131
204
  easygraph/functions/graph_embedding/NOBE.py
@@ -165,6 +238,8 @@ easygraph/functions/hypergraph/null_model/simple.py
165
238
  easygraph/functions/hypergraph/null_model/uniform.py
166
239
  easygraph/functions/hypergraph/null_model/tests/__init__.py
167
240
  easygraph/functions/hypergraph/null_model/tests/test_classic.py
241
+ easygraph/functions/hypergraph/null_model/tests/test_lattice.py
242
+ easygraph/functions/hypergraph/null_model/tests/test_simple.py
168
243
  easygraph/functions/hypergraph/tests/__init__.py
169
244
  easygraph/functions/hypergraph/tests/test_assortativity.py
170
245
  easygraph/functions/hypergraph/tests/test_centrality.py
@@ -0,0 +1,169 @@
1
+ EasyGraph
2
+ ==================
3
+
4
+ Copyright (C) <2020-2025> by [DataNET Group, Fudan University](https://fudan-datanet.mysxl.cn/)
5
+
6
+ ___________________________________________________________________________
7
+
8
+ [![PyPI Version][pypi-image]][pypi-url]
9
+ [![Python][python-image]][python-url]
10
+ [![License][license-image]][license-url]
11
+ [![Downloads][downloads-image]][downloads-url]
12
+
13
+ [pypi-image]: https://img.shields.io/pypi/v/Python-EasyGraph.svg?label=PyPI
14
+ [pypi-url]: https://pypi.org/project/Python-EasyGraph/
15
+ [python-image]: https://img.shields.io/pypi/pyversions/Python-EasyGraph.svg?label=Python
16
+ [python-url]: https://pypi.org/project/Python-EasyGraph/
17
+ [license-image]: https://img.shields.io/pypi/l/Python-EasyGraph?label=License
18
+ [license-url]: https://github.com/easy-graph/Easy-Graph/blob/master/LICENSE
19
+ [downloads-image]: https://static.pepy.tech/personalized-badge/python-easygraph?period=total&units=international_system&left_color=brightgreen&right_color=yellowgreen&left_text=Downloads
20
+ [downloads-url]: https://pypi.org/project/Python-EasyGraph/
21
+
22
+ - **Documentation:** https://easy-graph.github.io/
23
+ - **Source Code:** https://github.com/easy-graph/Easy-Graph
24
+ - **Issue Tracker:** https://github.com/easy-graph/Easy-Graph/issues
25
+ - **PyPI Homepage:** https://pypi.org/project/Python-EasyGraph/
26
+ - **Youtube channel:** https://www.youtube.com/@python-easygraph
27
+
28
+ # Introduction
29
+ The framework of EasyGraph is composed of four components: **EasyGraph (Core)**, **EasyHypergraph**, **EGGPU**, and **EasyGNN**.
30
+ ![Framework of EasyGraph.](EG_framework.png)
31
+
32
+ **EasyGraph** is an open-source network analysis library primarily written in Python. It supports both undirected and directed networks and accommodates various network data formats. EasyGraph includes a comprehensive suite of network analysis algorithms such as community detection, structural hole spanner detection, network embedding, and motif detection. Additionally, it optimizes performance by implementing key components in C++ and utilizing multiprocessing.
33
+
34
+ <!-- # New Features in Version 1.3
35
+ - **Support for more hypergraph metrics and algorithms.** Such as [hypercoreness](https://www.nature.com/articles/s41467-023-41887-2), [vector-centrality](https://www.sciencedirect.com/science/article/pii/S0960077922006075), [s-centrality](https://epjds.epj.org/articles/epjdata/abs/2020/01/13688_2020_Article_231/13688_2020_Article_231.html), and so on.
36
+ - **Support for more hypergraph datasets.** Static hypergraph datasets and dynamic datasets can be both loaded by calling the corresponding dataset name.
37
+ - **Support for more flexible dynamic hypergraph visualization.** Users can define dynamic hypergraphs and visualize the structure of the hypergraph at each timestamp.
38
+ - **Support for more efficient hypergraph computation and hypergraph learning.** Adoption of suitable storage structure and caching strategy for different metrics/hypergraph neural networks.
39
+ -->
40
+ 👉 For more details, please refer to our [documentation](https://easy-graph.github.io/) page.
41
+
42
+
43
+ ---
44
+ **EasyHypergraph** is a comprehensive, computation-effective, and storage-saving hypergraph computation tool designed not only for in-depth hypergraph analysis but also for the growing field of hypergraph learning.
45
+ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergraph is developed as an integrated module within the EasyGraph framework, maintaining full compatibility with its core architecture.
46
+
47
+ 👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/hypergraph.html) page.
48
+
49
+ ---
50
+ **EGGPU** is a high-performance GPU-accelerated network analysis library that supports essential functions such as betweenness centrality, k-core centrality, and single-source shortest path,as well as structural hole metrics like constraint. Built on top of the EasyGraph library, EGGPU features an efficient system architecture and native CUDA implementation, while providing a user-friendly Python API and significant speedups for large-scale network analysis.
51
+
52
+ 👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
53
+
54
+ # News
55
+ - [06-29-2025] 🎉 Thanks to our amazing community! EasyGraph has reached 800,000 downloads!
56
+ - [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)!
57
+ - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council!
58
+ - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
59
+ - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
60
+ - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
61
+ - [05-27-2024] We released EasyGraph 1.3! This version has resolved several issues related to hypergraph analysis and visualization.
62
+ - [04-09-2024] We released EasyGraph 1.2! This version now fully supports Python 3.12.
63
+ - [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)
64
+ - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
65
+ - [08-17-2023] We released EasyGraph 1.0!
66
+ - [08-08-2023] 🎉 Our paper "EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis" was accepted by Patterns (Cell Press)!
67
+ - [07-22-2020] First public release of EasyGraph!
68
+
69
+ # Stargazers
70
+
71
+ [![Stars][star-image]][star-url]
72
+
73
+ [star-image]:https://reporoster.com/stars/easy-graph/Easy-Graph
74
+ [star-url]: https://github.com/easy-graph/Easy-Graph/stargazers
75
+
76
+ # Install
77
+
78
+ ## Supported Versions
79
+
80
+ ``3.8 <= Python <= 3.13`` is required.
81
+
82
+ ## Installation With pip
83
+ ```
84
+ $ pip install --upgrade Python-EasyGraph
85
+ ```
86
+ The conda package is no longer updated or maintained.
87
+
88
+ If you've previously installed EasyGraph with conda, please uninstall it with ``conda`` and reinstall with ``pip``.
89
+
90
+ ## Build From Source
91
+ If prebuilt EasyGraph wheels are not supported for your platform (OS / CPU arch, check [here](https://pypi.org/simple/python-easygraph/)), or you want to have GPU-based functions enabled, you can build it locally.
92
+
93
+ ### Prerequisites
94
+ - CMake >= 3.23
95
+ - A compiler that fully supports C++11
96
+ - CUDA Toolkit 11.8 or later would be preferred (If need GPUs enabled)
97
+
98
+ ### Installation
99
+ #### On Linux
100
+ ```
101
+ git clone --recursive https://github.com/easy-graph/Easy-Graph
102
+ export EASYGRAPH_ENABLE_GPU="TRUE" # for users who want to enable GPUs
103
+ pip install ./Easy-Graph
104
+ ```
105
+
106
+ #### On Windows
107
+ ```
108
+ % For Windows users who want to enable GPU-based functions, %
109
+ % you must execute the commands below in cmd but not PowerShell. %
110
+ git clone --recursive https://github.com/easy-graph/Easy-Graph
111
+ set EASYGRAPH_ENABLE_GPU=TRUE % for users who want to enable GPUs %
112
+ pip install ./Easy-Graph
113
+ ```
114
+
115
+ #### On macOS
116
+ ```
117
+ # Since macOS doesn't support CUDA, we can't have GPUs enabled on macOS
118
+ git clone --recursive https://github.com/easy-graph/Easy-Graph
119
+ pip install ./Easy-Graph
120
+ ```
121
+
122
+ ## Hint
123
+
124
+ EasyGraph uses 1.12.1 <= [PyTorch](https://pytorch.org/get-started/locally/) < 2.0 for machine learning functions.
125
+ Note that this does not prevent your from running non-machine learning functions normally, if there is no PyTorch in your environment.
126
+ But you will receive some warnings which remind you some unavailable modules when they depend on it.
127
+
128
+ # Simple Example
129
+
130
+ This example demonstrates the general usage of methods in EasyGraph.
131
+ ```python
132
+ >>> import easygraph as eg
133
+ >>> G = eg.Graph()
134
+ >>> G.add_edges([(1,2), (2,3), (1,3), (3,4), (4,5), (3,5), (5,6)])
135
+ >>> eg.pagerank(G)
136
+ {1: 0.14272233049003707, 2: 0.14272233049003694, 3: 0.2685427766200994, 4: 0.14336430577918527, 5: 0.21634929087322705, 6: 0.0862989657474143}
137
+ ```
138
+ This is a simple example for the detection of [structural hole spanners](https://en.wikipedia.org/wiki/Structural_holes)
139
+ using the [HIS](https://keg.cs.tsinghua.edu.cn/jietang/publications/WWW13-Lou&Tang-Structural-Hole-Information-Diffusion.pdf) algorithm.
140
+
141
+ ```python
142
+ >>> import easygraph as eg
143
+ >>> G = eg.Graph()
144
+ >>> G.add_edges([(1,2), (2,3), (1,3), (3,4), (4,5), (3,5), (5,6)])
145
+ >>> _, _, H = eg.get_structural_holes_HIS(G, C=[frozenset([1,2,3]), frozenset([4,5,6])])
146
+ >>> H # The structural hole score of each node. Note that node `4` is regarded as the most possible structural hole spanner.
147
+ {1: {0: 0.703948974609375},
148
+ 2: {0: 0.703948974609375},
149
+ 3: {0: 1.2799804687499998},
150
+ 4: {0: 1.519976806640625},
151
+ 5: {0: 1.519976806640625},
152
+ 6: {0: 0.83595703125}
153
+ }
154
+ ```
155
+ # Citation
156
+
157
+ If you use EasyGraph in a scientific publication, we kindly request that you cite the following paper:
158
+ ```
159
+ @article{gao2023easygraph,
160
+ title={{EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis}},
161
+ author={Min Gao and Zheng Li and Ruichen Li and Chenhao Cui and Xinyuan Chen and Bodian Ye and Yupeng Li and Weiwei Gu and Qingyuan Gong and Xin Wang and Yang Chen},
162
+ year={2023},
163
+ journal={Patterns},
164
+ volume={4},
165
+ number={10},
166
+ pages={100839},
167
+ }
168
+ ```
169
+ 📢 If you notice anything unexpected, please open an issue and let us know. If you have any questions or require a specific feature, feel free to discuss them with us. We are motivated to constantly make EasyGraph even better and let more developers benefit!
@@ -0,0 +1,44 @@
1
+ cmake_minimum_required(VERSION 3.23)
2
+ project(cpp_easygraph)
3
+ set(CMAKE_CXX_STANDARD 11)
4
+
5
+ file(GLOB SOURCES
6
+ classes/*.cpp
7
+ common/*.cpp
8
+ functions/*/*.cpp
9
+ cpp_easygraph.cpp
10
+ )
11
+
12
+ add_subdirectory(pybind11)
13
+
14
+ option(EASYGRAPH_ENABLE_GPU "EASYGRAPH_ENABLE_GPU" OFF)
15
+
16
+ if (EASYGRAPH_ENABLE_GPU)
17
+
18
+ pybind11_add_module(cpp_easygraph
19
+ ${SOURCES}
20
+ $<TARGET_OBJECTS:gpu_easygraph>
21
+ )
22
+
23
+ set_property(TARGET cpp_easygraph PROPERTY CUDA_ARCHITECTURES all)
24
+
25
+ target_compile_definitions(cpp_easygraph
26
+ PRIVATE EASYGRAPH_ENABLE_GPU
27
+ )
28
+
29
+ target_link_libraries(cpp_easygraph
30
+ PRIVATE cudart_static
31
+ )
32
+
33
+ else()
34
+
35
+ pybind11_add_module(cpp_easygraph
36
+ ${SOURCES}
37
+ )
38
+
39
+ endif()
40
+
41
+ set_target_properties(cpp_easygraph PROPERTIES
42
+ LINK_SEARCH_START_STATIC ON
43
+ LINK_SEARCH_END_STATIC ON
44
+ )
@@ -0,0 +1,5 @@
1
+ #pragma once
2
+
3
+ #include "graph.h"
4
+ #include "directed_graph.h"
5
+ #include "operation.h"
@@ -0,0 +1,13 @@
1
+ #pragma once
2
+
3
+ #include "../common/common.h"
4
+
5
+ struct COOGraph {
6
+ std::vector<int> row;
7
+ std::vector<int> col;
8
+ std::vector<double> unweighted_W;
9
+ std::unordered_map<std::string, std::shared_ptr<std::vector<double>>> W_map;
10
+
11
+ std::vector<node_t> nodes;
12
+ std::unordered_map<node_t, int> node2idx;
13
+ };
@@ -0,0 +1,13 @@
1
+ #pragma once
2
+
3
+ #include "../common/common.h"
4
+
5
+ struct CSRGraph {
6
+ std::vector<int> V;
7
+ std::vector<int> E;
8
+ std::vector<double> unweighted_W;
9
+ std::unordered_map<std::string, std::shared_ptr<std::vector<double>>> W_map;
10
+
11
+ std::vector<node_t> nodes;
12
+ std::unordered_map<node_t, int> node2idx;
13
+ };