Python-EasyGraph 1.4.6__tar.gz → 1.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. {python_easygraph-1.4.6/Python_EasyGraph.egg-info → python_easygraph-1.5.1}/PKG-INFO +9 -7
  2. {python_easygraph-1.4.6 → python_easygraph-1.5.1/Python_EasyGraph.egg-info}/PKG-INFO +9 -7
  3. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/Python_EasyGraph.egg-info/SOURCES.txt +13 -0
  4. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/Python_EasyGraph.egg-info/requires.txt +1 -1
  5. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/README.md +5 -4
  6. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/cpp_easygraph.cpp +1 -0
  7. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/centrality/centrality.h +9 -1
  8. python_easygraph-1.5.1/cpp_easygraph/functions/centrality/katz_centrality.cpp +120 -0
  9. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/__init__.py +19 -7
  10. python_easygraph-1.5.1/easygraph/datasets/amazon_photo.py +110 -0
  11. python_easygraph-1.5.1/easygraph/datasets/arxiv.py +106 -0
  12. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/citation_graph.py +3 -3
  13. python_easygraph-1.5.1/easygraph/datasets/coauthor.py +118 -0
  14. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/dynamic/email_enron.py +1 -2
  15. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/dynamic/email_eu.py +1 -2
  16. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/dynamic/hospital_lyon.py +4 -3
  17. python_easygraph-1.5.1/easygraph/datasets/facebook_ego.py +109 -0
  18. python_easygraph-1.5.1/easygraph/datasets/flickr.py +129 -0
  19. python_easygraph-1.5.1/easygraph/datasets/github.py +125 -0
  20. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/graph_dataset_base.py +1 -2
  21. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/ppi.py +2 -1
  22. python_easygraph-1.5.1/easygraph/datasets/reddit.py +104 -0
  23. python_easygraph-1.5.1/easygraph/datasets/roadnet.py +107 -0
  24. python_easygraph-1.5.1/easygraph/datasets/twitter_ego.py +65 -0
  25. python_easygraph-1.5.1/easygraph/datasets/web_google.py +118 -0
  26. python_easygraph-1.5.1/easygraph/datasets/wiki_topcats.py +105 -0
  27. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/__init__.py +1 -0
  28. python_easygraph-1.5.1/easygraph/functions/centrality/katz_centrality.py +105 -0
  29. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/hwnn.py +1 -1
  30. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/hwnn_conv.py +1 -1
  31. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/pyproject.toml +1 -1
  32. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/setup.py +4 -3
  33. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/CMakeLists.txt +0 -0
  34. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/LICENSE +0 -0
  35. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/MANIFEST.in +0 -0
  36. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/Python_EasyGraph.egg-info/dependency_links.txt +0 -0
  37. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/Python_EasyGraph.egg-info/top_level.txt +0 -0
  38. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/README.rst +0 -0
  39. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/CMakeLists.txt +0 -0
  40. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/__init__.h +0 -0
  41. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/coo_graph.h +0 -0
  42. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/csr_graph.h +0 -0
  43. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/directed_graph.cpp +0 -0
  44. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/directed_graph.h +0 -0
  45. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/graph.cpp +0 -0
  46. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/graph.h +0 -0
  47. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/linkgraph.h +0 -0
  48. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/operation.cpp +0 -0
  49. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/operation.h +0 -0
  50. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/classes/segment_tree.cpp +0 -0
  51. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/common/common.cpp +0 -0
  52. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/common/common.h +0 -0
  53. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/common/utils.cpp +0 -0
  54. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/common/utils.h +0 -0
  55. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/__init__.h +0 -0
  56. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/basic/__init__.h +0 -0
  57. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/basic/avg_degree.cpp +0 -0
  58. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/basic/avg_degree.h +0 -0
  59. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/basic/cluster.cpp +0 -0
  60. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/basic/cluster.h +0 -0
  61. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/centrality/__init__.h +0 -0
  62. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/centrality/betweenness.cpp +0 -0
  63. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/centrality/closeness.cpp +0 -0
  64. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/__init__.h +0 -0
  65. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/biconnected.cpp +0 -0
  66. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/biconnected.h +0 -0
  67. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/connected.cpp +0 -0
  68. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/connected.h +0 -0
  69. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/strongly_connected.cpp +0 -0
  70. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/components/strongly_connected.h +0 -0
  71. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/cores/__init__.h +0 -0
  72. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/cores/k_cores.cpp +0 -0
  73. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/cores/k_cores.h +0 -0
  74. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/pagerank/__init__.h +0 -0
  75. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/pagerank/pagerank.cpp +0 -0
  76. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/pagerank/pagerank.h +0 -0
  77. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/path/__init__.h +0 -0
  78. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/path/mst.cpp +0 -0
  79. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/path/mst.h +0 -0
  80. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/path/path.cpp +0 -0
  81. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/path/path.h +0 -0
  82. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/structural_holes/__init__.h +0 -0
  83. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/structural_holes/evaluation.cpp +0 -0
  84. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/cpp_easygraph/functions/structural_holes/evaluation.h +0 -0
  85. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/__init__.py +0 -0
  86. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/_global.py +0 -0
  87. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/__init__.py +0 -0
  88. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/base.py +0 -0
  89. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/directed_graph.py +0 -0
  90. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/directed_multigraph.py +0 -0
  91. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/graph.py +0 -0
  92. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/graphviews.py +0 -0
  93. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/hypergraph.py +0 -0
  94. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/multigraph.py +0 -0
  95. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/operation.py +0 -0
  96. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/test_base_graph_class.py +0 -0
  97. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/__init__.py +0 -0
  98. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_base.py +0 -0
  99. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_directed_graph.py +0 -0
  100. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_graph.py +0 -0
  101. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_graphV2.py +0 -0
  102. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_hypergraph.py +0 -0
  103. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_multidigraph.py +0 -0
  104. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_multigraph.py +0 -0
  105. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/classes/tests/test_operation.py +0 -0
  106. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/convert.py +0 -0
  107. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datapipe/__init__.py +0 -0
  108. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datapipe/common.py +0 -0
  109. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datapipe/loader.py +0 -0
  110. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datapipe/normalize.py +0 -0
  111. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/dynamic/__init__.py +0 -0
  112. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/dynamic/load_dataset.py +0 -0
  113. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/get_sample_graph.py +0 -0
  114. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/gnn_benchmark.py +0 -0
  115. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/House_Committees.py +0 -0
  116. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/Yelp.py +0 -0
  117. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/__init__.py +0 -0
  118. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/_global.py +0 -0
  119. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/cat_edge_Cooking.py +0 -0
  120. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/coauthorship.py +0 -0
  121. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/cocitation.py +0 -0
  122. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/contact_primary_school.py +0 -0
  123. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/cooking_200.py +0 -0
  124. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/hypergraph_dataset_base.py +0 -0
  125. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/loadDeepSetDatasets.py +0 -0
  126. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/mathoverflow_answers.py +0 -0
  127. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/senate_committees.py +0 -0
  128. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/trivago_clicks.py +0 -0
  129. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/hypergraph/walmart_trips.py +0 -0
  130. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/karate.py +0 -0
  131. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/datasets/utils.py +0 -0
  132. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/exception.py +0 -0
  133. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/experiments/__init__.py +0 -0
  134. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/experiments/base.py +0 -0
  135. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/experiments/hypergraphs/__init__.py +0 -0
  136. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/experiments/hypergraphs/hypergraph.py +0 -0
  137. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/experiments/vertex_classification.py +0 -0
  138. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/__init__.py +0 -0
  139. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/__init__.py +0 -0
  140. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/avg_degree.py +0 -0
  141. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/cluster.py +0 -0
  142. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/localassort.py +0 -0
  143. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/predecessor_path_based.py +0 -0
  144. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/tests/__init__.py +0 -0
  145. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/tests/test_avg_degree.py +0 -0
  146. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/tests/test_cluster.py +0 -0
  147. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/tests/test_localassort.py +0 -0
  148. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/basic/tests/test_predecessor.py +0 -0
  149. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/betweenness.py +0 -0
  150. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/closeness.py +0 -0
  151. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/degree.py +0 -0
  152. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/ego_betweenness.py +0 -0
  153. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/flowbetweenness.py +0 -0
  154. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/laplacian.py +0 -0
  155. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/pagerank.py +0 -0
  156. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/__init__.py +0 -0
  157. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_betweenness.py +0 -0
  158. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_closeness.py +0 -0
  159. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_degree.py +0 -0
  160. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_egobetweenness.py +0 -0
  161. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_flowbetweenness.py +0 -0
  162. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_laplacian.py +0 -0
  163. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/centrality/tests/test_pagerank.py +0 -0
  164. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/LPA.py +0 -0
  165. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/__init__.py +0 -0
  166. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/ego_graph.py +0 -0
  167. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/louvain.py +0 -0
  168. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/modularity.py +0 -0
  169. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/modularity_max_detection.py +0 -0
  170. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/motif.py +0 -0
  171. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/__init__.py +0 -0
  172. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/test_LPA.py +0 -0
  173. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/test_ego_graph.py +0 -0
  174. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/test_louvian.py +0 -0
  175. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/test_modularity.py +0 -0
  176. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/test_modularity_max_detection.py +0 -0
  177. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/community/tests/test_motif.py +0 -0
  178. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/__init__.py +0 -0
  179. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/biconnected.py +0 -0
  180. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/connected.py +0 -0
  181. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/strongly_connected.py +0 -0
  182. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/tests/__init__.py +0 -0
  183. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/tests/test_biconnected.py +0 -0
  184. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/tests/test_connected.py +0 -0
  185. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/tests/test_strongly_connected.py +0 -0
  186. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/tests/test_weakly_connected.py +0 -0
  187. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/components/weakly_connected.py +0 -0
  188. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/core/__init__.py +0 -0
  189. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/core/k_core.py +0 -0
  190. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/core/tests/__init__.py +0 -0
  191. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/core/tests/test_k_core.py +0 -0
  192. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/__init__.py +0 -0
  193. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/defaults.py +0 -0
  194. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/drawing.py +0 -0
  195. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/geometry.py +0 -0
  196. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/layout.py +0 -0
  197. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/plot.py +0 -0
  198. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/positioning.py +0 -0
  199. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/simulator.py +0 -0
  200. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/tests/__init__.py +0 -0
  201. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/tests/test_drawing.py +0 -0
  202. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/tests/test_geometry.py +0 -0
  203. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/tests/test_plot.py +0 -0
  204. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/tests/test_positioning.py +0 -0
  205. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/drawing/utils.py +0 -0
  206. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/NOBE.py +0 -0
  207. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/__init__.py +0 -0
  208. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/deepwalk.py +0 -0
  209. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/line.py +0 -0
  210. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/net_emb_example_citeseer.py +0 -0
  211. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/node2vec.py +0 -0
  212. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/sdne.py +0 -0
  213. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/tests/__init__.py +0 -0
  214. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/tests/test_deepwalk.py +0 -0
  215. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/tests/test_line.py +0 -0
  216. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/tests/test_nobe.py +0 -0
  217. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/tests/test_node2vec.py +0 -0
  218. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_embedding/tests/test_sdne.py +0 -0
  219. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_generator/RandomNetwork.py +0 -0
  220. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_generator/__init__.py +0 -0
  221. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_generator/classic.py +0 -0
  222. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_generator/tests/__init__.py +0 -0
  223. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_generator/tests/test_Random_Network.py +0 -0
  224. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/graph_generator/tests/test_classic.py +0 -0
  225. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/__init__.py +0 -0
  226. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/assortativity.py +0 -0
  227. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/centrality/__init__.py +0 -0
  228. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/centrality/cycle_ratio.py +0 -0
  229. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/centrality/degree.py +0 -0
  230. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/centrality/hypercoreness.py +0 -0
  231. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/centrality/s_centrality.py +0 -0
  232. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/centrality/vector_centrality.py +0 -0
  233. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/hypergraph_clustering.py +0 -0
  234. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/hypergraph_operation.py +0 -0
  235. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/__init__.py +0 -0
  236. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/hypergraph_classic.py +0 -0
  237. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/lattice.py +0 -0
  238. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/random.py +0 -0
  239. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/simple.py +0 -0
  240. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/tests/__init__.py +0 -0
  241. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/tests/test_classic.py +0 -0
  242. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/tests/test_lattice.py +0 -0
  243. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/tests/test_simple.py +0 -0
  244. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/null_model/uniform.py +0 -0
  245. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/tests/__init__.py +0 -0
  246. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/tests/test_assortativity.py +0 -0
  247. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/tests/test_centrality.py +0 -0
  248. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/tests/test_hypergraph_clustering.py +0 -0
  249. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/hypergraph/tests/test_hypergraph_operation.py +0 -0
  250. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/isolate.py +0 -0
  251. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/__init__.py +0 -0
  252. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/average_shortest_path_length.py +0 -0
  253. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/bridges.py +0 -0
  254. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/diameter.py +0 -0
  255. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/mst.py +0 -0
  256. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/path.py +0 -0
  257. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/tests/__init__.py +0 -0
  258. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/tests/test_average_shortest_path_length.py +0 -0
  259. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/tests/test_bridges.py +0 -0
  260. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/tests/test_diameter.py +0 -0
  261. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/tests/test_mst.py +0 -0
  262. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/path/tests/test_path.py +0 -0
  263. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/AP_Greedy.py +0 -0
  264. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/HAM.py +0 -0
  265. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/HIS.py +0 -0
  266. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/ICC.py +0 -0
  267. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/MaxD.py +0 -0
  268. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/NOBE.py +0 -0
  269. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/SHII_metric.py +0 -0
  270. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/__init__.py +0 -0
  271. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/evaluation.py +0 -0
  272. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/maxBlock.py +0 -0
  273. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/metrics.py +0 -0
  274. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/structural_holes/weakTie.py +0 -0
  275. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/tests/__init__.py +0 -0
  276. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/functions/tests/test_isolate.py +0 -0
  277. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/ml_metrics/__init__.py +0 -0
  278. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/ml_metrics/base.py +0 -0
  279. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/ml_metrics/classification.py +0 -0
  280. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/ml_metrics/hypergraphs/__init__.py +0 -0
  281. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/ml_metrics/hypergraphs/hypergraph.py +0 -0
  282. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/__init__.py +0 -0
  283. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/__init__.py +0 -0
  284. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/dhcf.py +0 -0
  285. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/dhne.py +0 -0
  286. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/hgnn.py +0 -0
  287. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/hgnnp.py +0 -0
  288. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/hnhn.py +0 -0
  289. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/hypergcn.py +0 -0
  290. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/setgnn.py +0 -0
  291. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/model/hypergraphs/unignn.py +0 -0
  292. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/__init__.py +0 -0
  293. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/__init__.py +0 -0
  294. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/common.py +0 -0
  295. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/__init__.py +0 -0
  296. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/dhcf_conv.py +0 -0
  297. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/halfnlh_conv.py +0 -0
  298. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/hgnn_conv.py +0 -0
  299. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/hgnnp_conv.py +0 -0
  300. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/hnhn_conv.py +0 -0
  301. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/hypergcn_conv.py +0 -0
  302. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/hypergraphs/unignn_conv.py +0 -0
  303. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/convs/pma.py +0 -0
  304. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/loss.py +0 -0
  305. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/regularization.py +0 -0
  306. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/tests/__init__.py +0 -0
  307. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/tests/test_gatconv.py +0 -0
  308. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/tests/test_gcnconv.py +0 -0
  309. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/tests/test_graphsageconv.py +0 -0
  310. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/nn/tests/test_regularization.py +0 -0
  311. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/__init__.py +0 -0
  312. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/edgelist.py +0 -0
  313. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/gexf.py +0 -0
  314. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/gml.py +0 -0
  315. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/graphml.py +0 -0
  316. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/graphviz.py +0 -0
  317. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/json_graph/__init__.py +0 -0
  318. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/json_graph/node_link.py +0 -0
  319. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/pajek.py +0 -0
  320. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/pickle.py +0 -0
  321. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/__init__.py +0 -0
  322. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_edgelist.py +0 -0
  323. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_gexf.py +0 -0
  324. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_gml.py +0 -0
  325. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_graphml.py +0 -0
  326. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_graphviz.py +0 -0
  327. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_pajek.py +0 -0
  328. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_pickle.py +0 -0
  329. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/tests/test_ucinet.py +0 -0
  330. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/readwrite/ucinet.py +0 -0
  331. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/tests/__init__.py +0 -0
  332. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/tests/script_test_cpp_easygraph.py +0 -0
  333. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/tests/teddy_test_cpp_easygraph_sanity_check.py +0 -0
  334. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/tests/test_convert.py +0 -0
  335. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/tests/test_cpp_easygraph.py +0 -0
  336. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/__init__.py +0 -0
  337. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/alias.py +0 -0
  338. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/convert_class.py +0 -0
  339. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/convert_to_matrix.py +0 -0
  340. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/decorators.py +0 -0
  341. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/download.py +0 -0
  342. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/exception.py +0 -0
  343. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/index_of_node.py +0 -0
  344. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/logging.py +0 -0
  345. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/mapped_queue.py +0 -0
  346. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/misc.py +0 -0
  347. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/relabel.py +0 -0
  348. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/sparse.py +0 -0
  349. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/easygraph/utils/type_change.py +0 -0
  350. {python_easygraph-1.4.6 → python_easygraph-1.5.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Python-EasyGraph
3
- Version: 1.4.6
3
+ Version: 1.5.1
4
4
  Summary: Easy Graph
5
5
  Home-page: https://github.com/easy-graph/Easy-Graph
6
6
  Author: Fudan DataNET Group
@@ -11,13 +11,14 @@ Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
14
15
  Classifier: License :: OSI Approved :: BSD License
15
16
  Classifier: Operating System :: OS Independent
16
- Requires-Python: >=3.8, <3.14
17
+ Requires-Python: >=3.8, <3.15
17
18
  Description-Content-Type: text/markdown
18
19
  License-File: LICENSE
19
20
  Requires-Dist: numpy>=1.23.1; python_version >= "3.10"
20
- Requires-Dist: numpy>=1.19.5; python_version >= "3.7" and python_version <= "3.13"
21
+ Requires-Dist: numpy>=1.19.5; python_version >= "3.7" and python_version <= "3.14"
21
22
  Requires-Dist: tqdm>=4.49.0
22
23
  Requires-Dist: joblib>=1.2.0
23
24
  Requires-Dist: six>=1.16.0
@@ -100,9 +101,10 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
100
101
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
101
102
 
102
103
  # News
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)!
105
- - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council!
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.
106
+ - [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)]
106
108
  - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
107
109
  - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
108
110
  - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
@@ -111,7 +113,7 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
111
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)
112
114
  - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
113
115
  - [08-17-2023] We released EasyGraph 1.0!
114
- - [08-08-2023] 🎉 Our paper "EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis" was accepted by Patterns (Cell Press)!
116
+ - [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)]
115
117
  - [07-22-2020] First public release of EasyGraph!
116
118
 
117
119
  # Stargazers
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Python-EasyGraph
3
- Version: 1.4.6
3
+ Version: 1.5.1
4
4
  Summary: Easy Graph
5
5
  Home-page: https://github.com/easy-graph/Easy-Graph
6
6
  Author: Fudan DataNET Group
@@ -11,13 +11,14 @@ Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
14
15
  Classifier: License :: OSI Approved :: BSD License
15
16
  Classifier: Operating System :: OS Independent
16
- Requires-Python: >=3.8, <3.14
17
+ Requires-Python: >=3.8, <3.15
17
18
  Description-Content-Type: text/markdown
18
19
  License-File: LICENSE
19
20
  Requires-Dist: numpy>=1.23.1; python_version >= "3.10"
20
- Requires-Dist: numpy>=1.19.5; python_version >= "3.7" and python_version <= "3.13"
21
+ Requires-Dist: numpy>=1.19.5; python_version >= "3.7" and python_version <= "3.14"
21
22
  Requires-Dist: tqdm>=4.49.0
22
23
  Requires-Dist: joblib>=1.2.0
23
24
  Requires-Dist: six>=1.16.0
@@ -100,9 +101,10 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
100
101
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
101
102
 
102
103
  # News
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)!
105
- - [12-04-2024] 🎉 We received the "Top Open Source Certificate" by International Open Benchmark Council!
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.
106
+ - [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)]
106
108
  - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
107
109
  - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
108
110
  - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
@@ -111,7 +113,7 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
111
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)
112
114
  - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
113
115
  - [08-17-2023] We released EasyGraph 1.0!
114
- - [08-08-2023] 🎉 Our paper "EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis" was accepted by Patterns (Cell Press)!
116
+ - [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)]
115
117
  - [07-22-2020] First public release of EasyGraph!
116
118
 
117
119
  # Stargazers
@@ -37,6 +37,7 @@ cpp_easygraph/functions/centrality/__init__.h
37
37
  cpp_easygraph/functions/centrality/betweenness.cpp
38
38
  cpp_easygraph/functions/centrality/centrality.h
39
39
  cpp_easygraph/functions/centrality/closeness.cpp
40
+ cpp_easygraph/functions/centrality/katz_centrality.cpp
40
41
  cpp_easygraph/functions/components/__init__.h
41
42
  cpp_easygraph/functions/components/biconnected.cpp
42
43
  cpp_easygraph/functions/components/biconnected.h
@@ -86,13 +87,24 @@ easygraph/datapipe/common.py
86
87
  easygraph/datapipe/loader.py
87
88
  easygraph/datapipe/normalize.py
88
89
  easygraph/datasets/__init__.py
90
+ easygraph/datasets/amazon_photo.py
91
+ easygraph/datasets/arxiv.py
89
92
  easygraph/datasets/citation_graph.py
93
+ easygraph/datasets/coauthor.py
94
+ easygraph/datasets/facebook_ego.py
95
+ easygraph/datasets/flickr.py
90
96
  easygraph/datasets/get_sample_graph.py
97
+ easygraph/datasets/github.py
91
98
  easygraph/datasets/gnn_benchmark.py
92
99
  easygraph/datasets/graph_dataset_base.py
93
100
  easygraph/datasets/karate.py
94
101
  easygraph/datasets/ppi.py
102
+ easygraph/datasets/reddit.py
103
+ easygraph/datasets/roadnet.py
104
+ easygraph/datasets/twitter_ego.py
95
105
  easygraph/datasets/utils.py
106
+ easygraph/datasets/web_google.py
107
+ easygraph/datasets/wiki_topcats.py
96
108
  easygraph/datasets/dynamic/__init__.py
97
109
  easygraph/datasets/dynamic/email_enron.py
98
110
  easygraph/datasets/dynamic/email_eu.py
@@ -136,6 +148,7 @@ easygraph/functions/centrality/closeness.py
136
148
  easygraph/functions/centrality/degree.py
137
149
  easygraph/functions/centrality/ego_betweenness.py
138
150
  easygraph/functions/centrality/flowbetweenness.py
151
+ easygraph/functions/centrality/katz_centrality.py
139
152
  easygraph/functions/centrality/laplacian.py
140
153
  easygraph/functions/centrality/pagerank.py
141
154
  easygraph/functions/centrality/tests/__init__.py
@@ -22,7 +22,7 @@ numpy>=1.23.1
22
22
  [:python_version >= "3.7"]
23
23
  statsmodels>=0.12.0
24
24
 
25
- [:python_version >= "3.7" and python_version <= "3.13"]
25
+ [:python_version >= "3.7" and python_version <= "3.14"]
26
26
  numpy>=1.19.5
27
27
 
28
28
  [:python_version >= "3.8"]
@@ -52,9 +52,10 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
52
52
  👉 For more details, please refer to its [documentation](https://easy-graph.github.io/docs/eggpu.html) page.
53
53
 
54
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!
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.
57
+ - [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)]
58
59
  - [11-22-2024] We released EasyGraph 1.4.1! This version now fully supports Python 3.13.
59
60
  - [09-27-2024] 🎉 EasyGraph has reached 500,000 downloads!
60
61
  - [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.
@@ -63,7 +64,7 @@ It bridges the gap between EasyGraph and higher-order relationships. EasyHypergr
63
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)
64
65
  - [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.
65
66
  - [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
+ - [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)]
67
68
  - [07-22-2020] First public release of EasyGraph!
68
69
 
69
70
  # Stargazers
@@ -77,6 +77,7 @@ PYBIND11_MODULE(cpp_easygraph, m) {
77
77
 
78
78
  m.def("cpp_closeness_centrality", &closeness_centrality, py::arg("G"), py::arg("weight") = "weight", py::arg("cutoff") = py::none(), py::arg("sources") = py::none());
79
79
  m.def("cpp_betweenness_centrality", &betweenness_centrality, py::arg("G"), py::arg("weight") = "weight", py::arg("cutoff") = py::none(),py::arg("sources") = py::none(), py::arg("normalized") = py::bool_(true), py::arg("endpoints") = py::bool_(false));
80
+ m.def("cpp_katz_centrality", &cpp_katz_centrality, py::arg("G"), py::arg("alpha") = 0.1, py::arg("beta") = 1.0, py::arg("max_iter") = 1000, py::arg("tol") = 1e-6, py::arg("normalized") = true);
80
81
  m.def("cpp_k_core", &core_decomposition, py::arg("G"));
81
82
  m.def("cpp_density", &density, py::arg("G"));
82
83
  m.def("cpp_constraint", &constraint, py::arg("G"), py::arg("nodes") = py::none(), py::arg("weight") = py::none(), py::arg("n_workers") = py::none());
@@ -4,4 +4,12 @@
4
4
 
5
5
  py::object closeness_centrality(py::object G, py::object weight, py::object cutoff, py::object sources);
6
6
  py::object betweenness_centrality(py::object G, py::object weight, py::object cutoff, py::object sources,
7
- py::object normalized, py::object endpoints);
7
+ py::object normalized, py::object endpoints);
8
+ py::object cpp_katz_centrality(
9
+ py::object G,
10
+ py::object py_alpha,
11
+ py::object py_beta,
12
+ py::object py_max_iter,
13
+ py::object py_tol,
14
+ py::object py_normalized
15
+ );
@@ -0,0 +1,120 @@
1
+ #include <cmath>
2
+ #include <vector>
3
+ #include <pybind11/pybind11.h>
4
+ #include <pybind11/stl.h>
5
+ #include "centrality.h"
6
+ #include "../../classes/graph.h"
7
+
8
+ namespace py = pybind11;
9
+
10
+ py::object cpp_katz_centrality(
11
+ py::object G,
12
+ py::object py_alpha,
13
+ py::object py_beta,
14
+ py::object py_max_iter,
15
+ py::object py_tol,
16
+ py::object py_normalized
17
+ ) {
18
+ try {
19
+ Graph& graph = G.cast<Graph&>();
20
+ auto csr = graph.gen_CSR();
21
+ int n = csr->nodes.size();
22
+
23
+ if (n == 0) {
24
+ return py::dict();
25
+ }
26
+
27
+ // Initialize vectors
28
+ std::vector<double> x0(n, 1.0);
29
+ std::vector<double> x1(n);
30
+ std::vector<double>* x_prev = &x0;
31
+ std::vector<double>* x_next = &x1;
32
+
33
+ // Process beta parameter
34
+ std::vector<double> b(n);
35
+ if (py::isinstance<py::float_>(py_beta) || py::isinstance<py::int_>(py_beta)) {
36
+ double beta_val = py_beta.cast<double>();
37
+ for (int i = 0; i < n; i++) {
38
+ b[i] = beta_val;
39
+ }
40
+ } else if (py::isinstance<py::dict>(py_beta)) {
41
+ py::dict beta_dict = py_beta.cast<py::dict>();
42
+ for (int i = 0; i < n; i++) {
43
+ node_t internal_id = csr->nodes[i];
44
+ py::object node_obj = graph.id_to_node[py::cast(internal_id)];
45
+ if (beta_dict.contains(node_obj)) {
46
+ b[i] = beta_dict[node_obj].cast<double>();
47
+ } else {
48
+ b[i] = 1.0;
49
+ }
50
+ }
51
+ } else {
52
+ throw py::type_error("beta must be a float or a dict");
53
+ }
54
+
55
+ // Extract parameters
56
+ double alpha = py_alpha.cast<double>();
57
+ int max_iter = py_max_iter.cast<int>();
58
+ double tol = py_tol.cast<double>();
59
+ bool normalized = py_normalized.cast<bool>();
60
+
61
+ // Iterative updates
62
+ int iter = 0;
63
+ for (; iter < max_iter; iter++) {
64
+ for (int i = 0; i < n; i++) {
65
+ double sum = 0.0;
66
+ int start = csr->V[i];
67
+ int end = csr->V[i + 1];
68
+ for (int jj = start; jj < end; jj++) {
69
+ int j = csr->E[jj];
70
+ sum += (*x_prev)[j];
71
+ }
72
+ (*x_next)[i] = alpha * sum + b[i];
73
+ }
74
+
75
+ // Check convergence
76
+ double change = 0.0;
77
+ for (int i = 0; i < n; i++) {
78
+ change += std::abs((*x_next)[i] - (*x_prev)[i]);
79
+ }
80
+
81
+ if (change < tol) {
82
+ break;
83
+ }
84
+
85
+ std::swap(x_prev, x_next);
86
+ }
87
+
88
+ // Handle convergence failure
89
+ if (iter == max_iter) {
90
+ throw std::runtime_error("Katz centrality failed to converge in " + std::to_string(max_iter) + " iterations");
91
+ }
92
+
93
+ // Normalization
94
+ std::vector<double>& x_final = *x_next;
95
+ if (normalized) {
96
+ double norm = 0.0;
97
+ for (double val : x_final) {
98
+ norm += val * val;
99
+ }
100
+ norm = std::sqrt(norm);
101
+ if (norm > 0) {
102
+ for (int i = 0; i < n; i++) {
103
+ x_final[i] /= norm;
104
+ }
105
+ }
106
+ }
107
+
108
+ // Prepare results
109
+ py::dict result;
110
+ for (int i = 0; i < n; i++) {
111
+ node_t internal_id = csr->nodes[i];
112
+ py::object node_obj = graph.id_to_node[py::cast(internal_id)];
113
+ result[node_obj] = x_final[i];
114
+ }
115
+
116
+ return result;
117
+ } catch (const std::exception& e) {
118
+ throw std::runtime_error(e.what());
119
+ }
120
+ }
@@ -1,3 +1,4 @@
1
+ # risky imports
1
2
  try:
2
3
  from easygraph.datasets.get_sample_graph import *
3
4
  from easygraph.datasets.gnn_benchmark import *
@@ -8,16 +9,27 @@ try:
8
9
  from easygraph.datasets.karate import KarateClubDataset
9
10
  from easygraph.datasets.mathoverflow_answers import mathoverflow_answers
10
11
 
11
- from .citation_graph import CitationGraphDataset
12
- from .citation_graph import CiteseerGraphDataset
13
- from .citation_graph import CoraBinary
14
- from .citation_graph import CoraGraphDataset
15
- from .citation_graph import PubmedGraphDataset
16
12
  from .ppi import LegacyPPIDataset
17
13
  from .ppi import PPIDataset
18
-
19
- except:
14
+ except Exception as e:
20
15
  print(
21
16
  " Please install Pytorch before use graph-related datasets and"
22
17
  " hypergraph-related datasets."
23
18
  )
19
+
20
+ from .amazon_photo import AmazonPhotoDataset
21
+ from .arxiv import ArxivHEPTHDataset
22
+ from .citation_graph import CitationGraphDataset
23
+ from .citation_graph import CiteseerGraphDataset
24
+ from .citation_graph import CoraBinary
25
+ from .citation_graph import CoraGraphDataset
26
+ from .citation_graph import PubmedGraphDataset
27
+ from .coauthor import CoauthorCSDataset
28
+ from .facebook_ego import FacebookEgoNetDataset
29
+ from .flickr import FlickrDataset
30
+ from .github import GitHubUsersDataset
31
+ from .reddit import RedditDataset
32
+ from .roadnet import RoadNetCADataset
33
+ from .twitter_ego import TwitterEgoDataset
34
+ from .web_google import WebGoogleDataset
35
+ from .wiki_topcats import WikiTopCatsDataset
@@ -0,0 +1,110 @@
1
+ import os
2
+
3
+ import easygraph as eg
4
+ import numpy as np
5
+ import scipy.sparse as sp
6
+
7
+ from easygraph.classes.graph import Graph
8
+
9
+ from .graph_dataset_base import EasyGraphBuiltinDataset
10
+ from .utils import data_type_dict
11
+ from .utils import download
12
+ from .utils import extract_archive
13
+ from .utils import tensor
14
+
15
+
16
+ class AmazonPhotoDataset(EasyGraphBuiltinDataset):
17
+ r"""Amazon Electronics Photo co-purchase graph dataset.
18
+
19
+ Nodes represent products, and edges link products frequently co-purchased.
20
+ Node features are bag-of-words of product reviews. The task is to classify
21
+ the product category.
22
+
23
+ Statistics:
24
+
25
+ - Nodes: 7,650
26
+ - Edges: 119,081
27
+ - Number of Classes: 8
28
+ - Features: 745
29
+
30
+ Parameters
31
+ ----------
32
+ raw_dir : str, optional
33
+ Raw file directory to download/contains the input data directory. Default: None
34
+ force_reload : bool, optional
35
+ Whether to reload the dataset. Default: False
36
+ verbose : bool, optional
37
+ Whether to print out progress information. Default: True
38
+ transform : callable, optional
39
+ A transform that takes in a :class:`~easygraph.Graph` object and returns
40
+ a transformed version. The :class:`~easygraph.Graph` object will be
41
+ transformed before every access.
42
+
43
+ Examples
44
+ --------
45
+ >>> from easygraph.datasets import AmazonPhotoDataset
46
+ >>> dataset = AmazonPhotoDataset()
47
+ >>> g = dataset[0]
48
+ >>> print(g.number_of_nodes())
49
+ >>> print(g.number_of_edges())
50
+ >>> print(g.nodes[0]['feat'].shape)
51
+ >>> print(g.nodes[0]['label'])
52
+ >>> print(dataset.num_classes)
53
+ """
54
+
55
+ def __init__(self, raw_dir=None, force_reload=False, verbose=True, transform=None):
56
+ name = "amazon_photo"
57
+ url = "https://data.dgl.ai/dataset/amazon_co_buy_photo.zip"
58
+ super(AmazonPhotoDataset, self).__init__(
59
+ name=name,
60
+ url=url,
61
+ raw_dir=raw_dir,
62
+ force_reload=force_reload,
63
+ verbose=verbose,
64
+ transform=transform,
65
+ )
66
+
67
+ def process(self):
68
+ path = os.path.join(self.raw_path, "amazon_co_buy_photo.npz")
69
+ data = np.load(path)
70
+
71
+ adj = sp.csr_matrix(
72
+ (data["adj_data"], data["adj_indices"], data["adj_indptr"]),
73
+ shape=data["adj_shape"],
74
+ )
75
+
76
+ features = sp.csr_matrix(
77
+ (data["attr_data"], data["attr_indices"], data["attr_indptr"]),
78
+ shape=data["attr_shape"],
79
+ ).todense()
80
+
81
+ labels = data["labels"]
82
+
83
+ g = eg.Graph()
84
+ g.add_edges_from(list(zip(*adj.nonzero())))
85
+
86
+ for i in range(features.shape[0]):
87
+ g.add_node(i, feat=np.array(features[i]).squeeze(), label=int(labels[i]))
88
+
89
+ self._g = g
90
+ self._num_classes = len(np.unique(labels))
91
+
92
+ if self.verbose:
93
+ print("Finished loading AmazonPhoto dataset.")
94
+ print(f" NumNodes: {g.number_of_nodes()}")
95
+ print(f" NumEdges: {g.number_of_edges()}")
96
+ print(f" NumFeats: {features.shape[1]}")
97
+ print(f" NumClasses: {self._num_classes}")
98
+
99
+ def __getitem__(self, idx):
100
+ assert idx == 0, "AmazonPhotoDataset only contains one graph"
101
+ if self._g is None:
102
+ raise ValueError("Graph has not been loaded or processed correctly.")
103
+ return self._g if self._transform is None else self._transform(self._g)
104
+
105
+ def __len__(self):
106
+ return 1
107
+
108
+ @property
109
+ def num_classes(self):
110
+ return self._num_classes
@@ -0,0 +1,106 @@
1
+ """Arxiv HEP-TH Citation Network
2
+
3
+ This dataset represents the citation network of preprints from the High Energy Physics - Theory (HEP-TH) category on arXiv, covering the period from January 1993 to April 2003.
4
+
5
+ Each node corresponds to a paper, and a directed edge from paper A to paper B indicates that A cites B.
6
+
7
+ No features or labels are included in this dataset.
8
+
9
+ Statistics:
10
+ - Nodes: 27,770
11
+ - Edges: 352,807
12
+ - Features: None
13
+ - Labels: None
14
+
15
+ Reference:
16
+ J. Leskovec, J. Kleinberg and C. Faloutsos, "Graphs over Time: Densification Laws, Shrinking Diameters and Possible Explanations,"
17
+ in KDD 2005. Dataset: https://snap.stanford.edu/data/cit-HepTh.html
18
+ """
19
+
20
+ import gzip
21
+ import os
22
+ import shutil
23
+
24
+ import easygraph as eg
25
+
26
+ from easygraph.classes.graph import Graph
27
+
28
+ from .graph_dataset_base import EasyGraphBuiltinDataset
29
+ from .utils import download
30
+
31
+
32
+ class ArxivHEPTHDataset(EasyGraphBuiltinDataset):
33
+ r"""Arxiv HEP-TH citation network dataset.
34
+
35
+ Parameters
36
+ ----------
37
+ raw_dir : str, optional
38
+ Directory to store the raw downloaded files. Default: None
39
+ force_reload : bool, optional
40
+ Whether to re-download and process the dataset. Default: False
41
+ verbose : bool, optional
42
+ Whether to print detailed processing logs. Default: True
43
+ transform : callable, optional
44
+ Optional transform to apply on the graph.
45
+
46
+ Examples
47
+ --------
48
+ >>> from easygraph.datasets import ArxivHEPTHDataset
49
+ >>> dataset = ArxivHEPTHDataset()
50
+ >>> g = dataset[0]
51
+ >>> print("Nodes:", g.number_of_nodes())
52
+ >>> print("Edges:", g.number_of_edges())
53
+ """
54
+
55
+ def __init__(self, raw_dir=None, force_reload=False, verbose=True, transform=None):
56
+ name = "cit-HepTh"
57
+ url = "https://snap.stanford.edu/data/cit-HepTh.txt.gz"
58
+ super(ArxivHEPTHDataset, self).__init__(
59
+ name=name,
60
+ url=url,
61
+ raw_dir=raw_dir,
62
+ force_reload=force_reload,
63
+ verbose=verbose,
64
+ transform=transform,
65
+ )
66
+
67
+ def download(self):
68
+ r"""Download and decompress the .txt.gz file."""
69
+ compressed_path = os.path.join(self.raw_dir, self.name + ".txt.gz")
70
+ extracted_path = os.path.join(self.raw_path, self.name + ".txt")
71
+
72
+ download(self.url, path=compressed_path)
73
+
74
+ if not os.path.exists(self.raw_path):
75
+ os.makedirs(self.raw_path)
76
+
77
+ with gzip.open(compressed_path, "rb") as f_in:
78
+ with open(extracted_path, "wb") as f_out:
79
+ shutil.copyfileobj(f_in, f_out)
80
+
81
+ def process(self):
82
+ graph = eg.DiGraph() # Citation network is directed
83
+ edge_list_path = os.path.join(self.raw_path, self.name + ".txt")
84
+
85
+ with open(edge_list_path, "r") as f:
86
+ for line in f:
87
+ if line.startswith("#") or line.strip() == "":
88
+ continue
89
+ u, v = map(int, line.strip().split())
90
+ graph.add_edge(u, v)
91
+
92
+ self._g = graph
93
+ self._num_nodes = graph.number_of_nodes()
94
+ self._num_edges = graph.number_of_edges()
95
+
96
+ if self.verbose:
97
+ print("Finished loading Arxiv HEP-TH dataset.")
98
+ print(f" NumNodes: {self._num_nodes}")
99
+ print(f" NumEdges: {self._num_edges}")
100
+
101
+ def __getitem__(self, idx):
102
+ assert idx == 0, "ArxivHEPTHDataset only contains one graph"
103
+ return self._g if self._transform is None else self._transform(self._g)
104
+
105
+ def __len__(self):
106
+ return 1
@@ -1,6 +1,5 @@
1
- """Cora, citeseer, pubmed dataset.
1
+ """Cora, citeseer, pubmed dataset."""
2
2
 
3
- """
4
3
  from __future__ import absolute_import
5
4
 
6
5
  import os
@@ -53,9 +52,10 @@ class CitationGraphDataset(EasyGraphBuiltinDataset):
53
52
  reorder : bool
54
53
  Whether to reorder the graph using :func:`~eg.reorder_graph`. Default: False.
55
54
  """
55
+
56
56
  _urls = {
57
57
  "cora_v2": "dataset/cora_v2.zip",
58
- "citeseer": "dataset/citeSeer.zip",
58
+ "citeseer": "dataset/citeseer.zip",
59
59
  "pubmed": "dataset/pubmed.zip",
60
60
  }
61
61