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