graphdatascience 1.19__tar.gz → 1.20a1__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.
- {graphdatascience-1.19/src/graphdatascience.egg-info → graphdatascience-1.20a1}/PKG-INFO +3 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/pyproject.toml +9 -6
- graphdatascience-1.20a1/src/graphdatascience/arrow_client/progress_callback.py +5 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v1/gds_arrow_client.py +14 -13
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/gds_arrow_client.py +21 -11
- graphdatascience-1.20a1/src/graphdatascience/datasets/graph_constructor_func.py +16 -0
- {graphdatascience-1.19/src/graphdatascience/graph → graphdatascience-1.20a1/src/graphdatascience/datasets}/nx_loader.py +25 -16
- {graphdatascience-1.19/src/graphdatascience/graph → graphdatascience-1.20a1/src/graphdatascience/datasets}/ogb_loader.py +58 -47
- graphdatascience-1.20a1/src/graphdatascience/datasets/simple_file_loader.py +79 -0
- graphdatascience-1.20a1/src/graphdatascience/graph/nx_loader.py +46 -0
- graphdatascience-1.20a1/src/graphdatascience/graph/ogb_loader.py +76 -0
- graphdatascience-1.20a1/src/graphdatascience/graph/v2/__init__.py +4 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/api/catalog → graphdatascience-1.20a1/src/graphdatascience/graph/v2}/graph_api.py +2 -3
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/cypher/catalog → graphdatascience-1.20a1/src/graphdatascience/graph/v2}/graph_backend_cypher.py +1 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/plugin_v2_endpoints.py +11 -2
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/api/__init__.py +5 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/__init__.py +5 -4
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/catalog_endpoints.py +9 -1
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/api/catalog/dataset_endpoints.py +143 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/graph_sampling_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/node_label_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/node_properties_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/relationships_endpoints.py +3 -3
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/scale_properties_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/__init__.py +2 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/articlerank_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/articulationpoints_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/betweenness_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/bridges_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/celf_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/closeness_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/closeness_harmonic_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/degree_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/eigenvector_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/centrality/pagerank_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/__init__.py +6 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/clique_counting_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/conductance_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/hdbscan_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/k1coloring_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/kcore_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/kmeans_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/labelpropagation_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/leiden_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/local_clustering_coefficient_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/louvain_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/maxkcut_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/modularity_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/modularity_optimization_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/scc_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/sllpa_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/triangle_count_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/community/wcc_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/config_endpoints.py +2 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/model/graphsage_model.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/fastrp_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/graphsage_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/graphsage_predict_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/graphsage_train_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/hashgnn_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/node2vec_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/__init__.py +30 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/all_shortest_path_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/bfs_endpoints.py +1 -3
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/api/pathfinding/dfs_endpoints.py +220 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/dijkstra_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/k_spanning_tree_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/longest_path_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/max_flow_endpoints.py +32 -31
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/prize_steiner_tree_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/single_source_bellman_ford_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/single_source_delta_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/single_source_dijkstra_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/source_target_astar_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/source_target_dijkstra_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/source_target_yens_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/spanning_tree_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/steiner_tree_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/knn_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/knn_filtered_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/node_similarity_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/node_similarity_filtered_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/system_endpoints.py +15 -0
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/catalog/__init__.py +11 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/catalog_arrow_endpoints.py +9 -4
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/graph_backend_arrow.py +1 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/graph_sampling_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/node_label_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/node_properties_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/relationship_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/scale_properties_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/articlerank_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/articulationpoints_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/betweenness_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/bridges_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/celf_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/closeness_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/closeness_harmonic_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/degree_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/eigenvector_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/centrality/pagerank_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/clique_counting_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/conductance_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/hdbscan_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/k1coloring_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/kcore_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/kmeans_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/labelpropagation_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/leiden_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/local_clustering_coefficient_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/louvain_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/maxkcut_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/modularity_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/modularity_optimization_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/scc_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/sllpa_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/triangle_count_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/community/wcc_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/endpoints_helper_base.py +1 -1
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/model/__init__.py +1 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/fastrp_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/graphsage_predict_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/graphsage_train_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/hashgnn_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/node2vec_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/node_property_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/all_shortest_path_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/bfs_arrow_endpoints.py +1 -1
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/pathfinding/dfs_arrow_endpoints.py +148 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/dijkstra_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/k_spanning_tree_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/longest_path_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/max_flow_arrow_endpoints.py +13 -13
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/prize_steiner_tree_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/single_source_bellman_ford_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/single_source_delta_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/single_source_dijkstra_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/source_target_astar_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/source_target_dijkstra_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/source_target_yens_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/spanning_tree_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/steiner_tree_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/relationship_endpoints_helper.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/similarity/knn_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/similarity/knn_filtered_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/similarity/node_similarity_arrow_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/similarity/node_similarity_filtered_arrow_endpoints.py +1 -1
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/cypher/__init__.py +3 -0
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/cypher/catalog/__init__.py +11 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/cypher → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/cypher/catalog}/catalog_cypher_endpoints.py +22 -14
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/catalog/graph_sampling_cypher_endpoints.py +2 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/catalog/node_label_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/catalog/node_properties_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/catalog/relationship_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/catalog/scale_properties_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/articlerank_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/articulationpoints_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/betweenness_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/bridges_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/celf_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/closeness_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/closeness_harmonic_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/degree_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/eigenvector_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/pagerank_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/clique_counting_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/conductance_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/hdbscan_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/k1coloring_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/kcore_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/kmeans_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/labelpropagation_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/leiden_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/local_clustering_coefficient_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/louvain_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/maxkcut_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/modularity_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/modularity_optimization_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/scc_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/sllpa_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/triangle_count_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/wcc_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/estimation_utils.py +1 -1
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/cypher/model/__init__.py +1 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/fastrp_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/graphsage_predict_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/graphsage_train_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/hashgnn_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/node2vec_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/all_shortest_path_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/bfs_cypher_endpoints.py +1 -1
- graphdatascience-1.20a1/src/graphdatascience/procedure_surface/cypher/pathfinding/dfs_cypher_endpoints.py +150 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/dijkstra_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/k_spanning_tree_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/longest_path_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/max_flow_cypher_endpoints.py +21 -21
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/prize_steiner_tree_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/single_source_bellman_ford_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/single_source_delta_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/single_source_dijkstra_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/source_target_astar_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/source_target_dijkstra_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/source_target_yens_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/spanning_tree_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/steiner_tree_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/similarity/knn_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/similarity/knn_filtered_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/similarity/node_similarity_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/similarity/node_similarity_filtered_cypher_endpoints.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/arrow_graph_constructor.py +2 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/gds_arrow_client.py +13 -12
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/aura_api.py +4 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/aura_api_responses.py +7 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/dbms_connection_info.py +1 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/dedicated_sessions.py +18 -4
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/gds_sessions.py +2 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/session_sizes.py +12 -10
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/session_v2_endpoints.py +12 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/version.py +1 -1
- {graphdatascience-1.19 → graphdatascience-1.20a1/src/graphdatascience.egg-info}/PKG-INFO +3 -2
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience.egg-info/SOURCES.txt +17 -4
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience.egg-info/requires.txt +1 -1
- graphdatascience-1.19/src/graphdatascience/procedure_surface/api/__init__.py +0 -3
- graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow/catalog/__init__.py +0 -3
- graphdatascience-1.19/src/graphdatascience/procedure_surface/cypher/__init__.py +0 -7
- {graphdatascience-1.19 → graphdatascience-1.20a1}/LICENSE +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/MANIFEST.in +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/README.md +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/setup.cfg +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/algo/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/algo/algo_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/algo/algo_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/algo/single_mode_algo_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/arrow_authentication.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/arrow_base_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/arrow_client_options_util.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/arrow_endpoint_version.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/arrow_info.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/authenticated_flight_client.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/middleware/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/middleware/auth_middleware.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/middleware/user_agent_middleware.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v1/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v1/data_mapper_utils.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/api_types.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/data_mapper_utils.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/job_client.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/mutation_client.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/arrow_client/v2/remote_write_back_client.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/call_builder.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/call_parameters.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/caller_base.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/error → graphdatascience-1.20a1/src/graphdatascience/datasets}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/endpoints.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/graph → graphdatascience-1.20a1/src/graphdatascience/error}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/client_only_endpoint.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/cypher_warning_handler.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/endpoint_suggester.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/gds_not_installed.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/illegal_attr_checker.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/unable_to_connect.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/error/uncallable_namespace.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/model → graphdatascience-1.20a1/src/graphdatascience/graph}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/base_graph_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_alpha_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_beta_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_create_result.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_cypher_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_entity_ops_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_export_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_object.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_project_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_remote_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_remote_project_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_sample_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph/graph_type_check.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/api/catalog → graphdatascience-1.20a1/src/graphdatascience/graph/v2}/graph_backend.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/graph_data_science.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/ignored_server_endpoints.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/model/v2 → graphdatascience-1.20a1/src/graphdatascience/model}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/graphsage_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/link_prediction_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/model_alpha_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/model_beta_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/model_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/model_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/model_resolver.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/node_classification_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/node_regression_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/pipeline_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/simple_rel_embedding_model.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/pipeline → graphdatascience-1.20a1/src/graphdatascience/model/v2}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/v2/graphsage_model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/v2/model.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/v2/model_api.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/model/v2/model_details.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow → graphdatascience-1.20a1/src/graphdatascience/pipeline}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/classification_training_pipeline.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/lp_pipeline_create_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/lp_training_pipeline.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/nc_pipeline_create_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/nc_training_pipeline.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/nr_pipeline_create_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/nr_training_pipeline.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/pipeline_alpha_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/pipeline_beta_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/pipeline_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/pipeline_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/pipeline/training_pipeline.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/base_result.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/graph_info.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/catalog/scaler_config.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/default_values.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/estimation_result.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/model/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/model/model_catalog_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/node_embedding/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/dag_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/pathfinding/shortest_path_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/knn_results.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/api/similarity/node_similarity_results.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow/centrality → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/catalog/graph_ops_arrow.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow/community → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/centrality}/__init__.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow/node_embedding → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/community}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/config_arrow_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/error_handler.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/model/model_catalog_arrow_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/model_api_arrow.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow/pathfinding → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/node_embedding}/__init__.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/arrow/similarity → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/pathfinding}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/dag_arrow_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/shortest_path_arrow_endpoints.py +0 -0
- {graphdatascience-1.19/src/graphdatascience/procedure_surface/cypher/catalog → graphdatascience-1.20a1/src/graphdatascience/procedure_surface/arrow/similarity}/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/stream_result_mapper.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/system_arrow_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/arrow/table_endpoints_helper.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/catalog/utils.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/centrality/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/community/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/config_cypher_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/model/model_catalog_cypher_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/model_api_cypher.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/dag_cypher_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/shortest_path_cypher_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/similarity/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/cypher/system_cypher_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/utils/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/utils/config_converter.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/procedure_surface/utils/result_utils.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/py.typed +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/arrow_authentication/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/arrow_info/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/arrow_query_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/cypher_graph_constructor.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/db_environment_resolver.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/graph_constructor.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/neo4j_query_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/progress/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/progress/progress_bar.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/progress/progress_provider.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/progress/query_progress_logger.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/progress/query_progress_provider.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/progress/static_progress_provider.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/protocol/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/protocol/project_protocols.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/protocol/status.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/protocol/write_protocols.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/query_mode.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/query_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/session_query_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/standalone_session_query_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/query_runner/termination_flag.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/cora/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/cora/cora_nodes.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/cora/cora_rels.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/cora/serialize_cora.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/imdb_acted_in.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/imdb_actors.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/imdb_directed_in.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/imdb_directors.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/imdb_movies_with_genre.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/imdb_movies_without_genre.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/imdb/serialize_imdb.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/karate/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/karate/karate_club.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/artist_nodes.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/serialize_lastfm.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/user_friend_df_directed.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/user_listen_artist_rels.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/user_nodes.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/resources/lastfm/user_tag_artist_rels.parquet.gzip +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/retry_utils/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/retry_utils/neo4j_retry_helper.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/retry_utils/retry_config.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/retry_utils/retry_utils.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/semantic_version/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/semantic_version/semantic_version.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/server_version/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/server_version/compatible_with.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/server_version/server_version.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/algorithm_category.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/aura_api_token_authentication.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/aura_graph_data_science.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/aurads_sessions.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/cloud_location.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/dbms/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/dbms/protocol_resolver.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/dbms/protocol_version.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/region_suggester.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/session_info.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/session/session_lifecycle_manager.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/system/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/system/config_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/system/system_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/topological_lp/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/topological_lp/topological_lp_alpha_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/topological_lp/topological_lp_alpha_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/topological_lp/topological_lp_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/utils/__init__.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/utils/direct_util_endpoints.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/utils/util_node_property_func_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/utils/util_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience/utils/util_remote_proc_runner.py +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience.egg-info/dependency_links.txt +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience.egg-info/not-zip-safe +0 -0
- {graphdatascience-1.19 → graphdatascience-1.20a1}/src/graphdatascience.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: graphdatascience
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.20a1
|
|
4
4
|
Summary: A Python client for the Neo4j Graph Data Science (GDS) library
|
|
5
5
|
Author-email: Neo4j <team-gds@neo4j.org>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
22
|
Classifier: Topic :: Database
|
|
22
23
|
Classifier: Topic :: Scientific/Engineering
|
|
23
24
|
Classifier: Topic :: Software Development
|
|
@@ -29,7 +30,7 @@ Requires-Dist: multimethod<3.0,>=1.0
|
|
|
29
30
|
Requires-Dist: neo4j<7.0,>=4.4.12
|
|
30
31
|
Requires-Dist: numpy<2.4
|
|
31
32
|
Requires-Dist: pandas<3.0,>=1.0
|
|
32
|
-
Requires-Dist: pyarrow<
|
|
33
|
+
Requires-Dist: pyarrow<24.0,>=18.0
|
|
33
34
|
Requires-Dist: textdistance<5.0,>=4.0
|
|
34
35
|
Requires-Dist: tqdm<5.0,>=4.0
|
|
35
36
|
Requires-Dist: typing-extensions<5.0,>=4.0
|
|
@@ -20,6 +20,7 @@ classifiers = [
|
|
|
20
20
|
"Programming Language :: Python :: 3.11",
|
|
21
21
|
"Programming Language :: Python :: 3.12",
|
|
22
22
|
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Programming Language :: Python :: 3.14",
|
|
23
24
|
"Topic :: Database",
|
|
24
25
|
"Topic :: Scientific/Engineering",
|
|
25
26
|
"Topic :: Software Development",
|
|
@@ -31,7 +32,7 @@ dependencies = [
|
|
|
31
32
|
"neo4j >= 4.4.12, < 7.0",
|
|
32
33
|
"numpy < 2.4",
|
|
33
34
|
"pandas >= 1.0, < 3.0",
|
|
34
|
-
"pyarrow >=
|
|
35
|
+
"pyarrow >= 18.0, < 24.0",
|
|
35
36
|
"textdistance >= 4.0, < 5.0",
|
|
36
37
|
"tqdm >= 4.0, < 5.0",
|
|
37
38
|
"typing-extensions >= 4.0, < 5.0",
|
|
@@ -67,8 +68,8 @@ dev-base = [
|
|
|
67
68
|
"mypy == 1.19.1",
|
|
68
69
|
"pandas-stubs == 2.2.3.241009",
|
|
69
70
|
"tox == 4.34.1",
|
|
70
|
-
"types-setuptools ==
|
|
71
|
-
"enum-tools[sphinx]
|
|
71
|
+
"types-setuptools == 80.9.0.20251223",
|
|
72
|
+
"enum-tools[sphinx]==0.13.0",
|
|
72
73
|
"autodoc_pydantic",
|
|
73
74
|
"types-requests",
|
|
74
75
|
"types-tqdm",
|
|
@@ -86,7 +87,7 @@ test = [
|
|
|
86
87
|
|
|
87
88
|
docs-ci = [
|
|
88
89
|
"sphinx == 7.3.7",
|
|
89
|
-
"enum-tools[sphinx]
|
|
90
|
+
"enum-tools[sphinx]==0.13.0",
|
|
90
91
|
"autodoc_pydantic",
|
|
91
92
|
]
|
|
92
93
|
notebook-base = [
|
|
@@ -95,7 +96,10 @@ notebook-base = [
|
|
|
95
96
|
"nbclient==0.10.4",
|
|
96
97
|
"ipykernel==7.1.0",
|
|
97
98
|
]
|
|
98
|
-
notebook-aura-ci = [
|
|
99
|
+
notebook-aura-ci = [
|
|
100
|
+
{ include-group = "notebook-base" },
|
|
101
|
+
"python-dotenv==1.2.1"
|
|
102
|
+
]
|
|
99
103
|
notebook-ci = [
|
|
100
104
|
{ include-group = "notebook-base" },
|
|
101
105
|
"scipy == 1.14.0",
|
|
@@ -107,7 +111,6 @@ notebook-ci = [
|
|
|
107
111
|
|
|
108
112
|
publish = ["build", "twine"]
|
|
109
113
|
|
|
110
|
-
|
|
111
114
|
[tool.setuptools]
|
|
112
115
|
include-package-data = true
|
|
113
116
|
zip-safe = false
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
from types import TracebackType
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, Iterable, Type
|
|
7
7
|
|
|
8
8
|
import pandas
|
|
9
9
|
import pyarrow
|
|
@@ -17,6 +17,7 @@ from graphdatascience.arrow_client.v1.data_mapper_utils import deserialize_singl
|
|
|
17
17
|
|
|
18
18
|
from ...procedure_surface.arrow.error_handler import handle_flight_error
|
|
19
19
|
from ...semantic_version.semantic_version import SemanticVersion
|
|
20
|
+
from ..progress_callback import ProgressCallback
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class GdsArrowClient:
|
|
@@ -386,7 +387,7 @@ class GdsArrowClient:
|
|
|
386
387
|
graph_name: str,
|
|
387
388
|
node_data: pyarrow.Table | Iterable[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
388
389
|
batch_size: int = 10_000,
|
|
389
|
-
progress_callback:
|
|
390
|
+
progress_callback: ProgressCallback = lambda x: None,
|
|
390
391
|
) -> None:
|
|
391
392
|
"""
|
|
392
393
|
Uploads node data to the server.
|
|
@@ -399,7 +400,7 @@ class GdsArrowClient:
|
|
|
399
400
|
The node data to upload
|
|
400
401
|
batch_size : int
|
|
401
402
|
The number of rows per batch
|
|
402
|
-
progress_callback :
|
|
403
|
+
progress_callback : ProgressCallback
|
|
403
404
|
A callback function that is called with the number of rows uploaded after each batch
|
|
404
405
|
"""
|
|
405
406
|
self._upload_data(graph_name, "node", node_data, batch_size, progress_callback)
|
|
@@ -409,20 +410,20 @@ class GdsArrowClient:
|
|
|
409
410
|
graph_name: str,
|
|
410
411
|
relationship_data: pyarrow.Table | Iterable[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
411
412
|
batch_size: int = 10_000,
|
|
412
|
-
progress_callback:
|
|
413
|
+
progress_callback: ProgressCallback = lambda num_rows: None,
|
|
413
414
|
) -> None:
|
|
414
415
|
"""
|
|
415
416
|
Uploads relationship data to the server.
|
|
416
417
|
|
|
417
418
|
Parameters
|
|
418
419
|
----------
|
|
419
|
-
graph_name
|
|
420
|
+
graph_name
|
|
420
421
|
The name of the import process
|
|
421
|
-
relationship_data
|
|
422
|
+
relationship_data
|
|
422
423
|
The relationship data to upload
|
|
423
|
-
batch_size
|
|
424
|
+
batch_size
|
|
424
425
|
The number of rows per batch
|
|
425
|
-
progress_callback
|
|
426
|
+
progress_callback
|
|
426
427
|
A callback function that is called with the number of rows uploaded after each batch
|
|
427
428
|
"""
|
|
428
429
|
self._upload_data(graph_name, "relationship", relationship_data, batch_size, progress_callback)
|
|
@@ -432,20 +433,20 @@ class GdsArrowClient:
|
|
|
432
433
|
graph_name: str,
|
|
433
434
|
triplet_data: pyarrow.Table | Iterable[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
434
435
|
batch_size: int = 10_000,
|
|
435
|
-
progress_callback:
|
|
436
|
+
progress_callback: ProgressCallback = lambda num_triplets: None,
|
|
436
437
|
) -> None:
|
|
437
438
|
"""
|
|
438
439
|
Uploads triplet data to the server.
|
|
439
440
|
|
|
440
441
|
Parameters
|
|
441
442
|
----------
|
|
442
|
-
graph_name
|
|
443
|
+
graph_name
|
|
443
444
|
The name of the import process
|
|
444
445
|
triplet_data : pyarrow.Table | Iterable[pyarrow.RecordBatch] | DataFrame
|
|
445
446
|
The triplet data to upload
|
|
446
|
-
batch_size
|
|
447
|
+
batch_size
|
|
447
448
|
The number of rows per batch
|
|
448
|
-
progress_callback
|
|
449
|
+
progress_callback
|
|
449
450
|
A callback function that is called with the number of rows uploaded after each batch
|
|
450
451
|
"""
|
|
451
452
|
self._upload_data(graph_name, "triplet", triplet_data, batch_size, progress_callback)
|
|
@@ -484,7 +485,7 @@ class GdsArrowClient:
|
|
|
484
485
|
entity_type: str,
|
|
485
486
|
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
486
487
|
batch_size: int,
|
|
487
|
-
progress_callback:
|
|
488
|
+
progress_callback: ProgressCallback,
|
|
488
489
|
) -> None:
|
|
489
490
|
match data:
|
|
490
491
|
case pyarrow.Table():
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
from types import TracebackType
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, Type
|
|
7
7
|
|
|
8
8
|
import pandas
|
|
9
9
|
import pyarrow
|
|
@@ -15,6 +15,7 @@ from graphdatascience.query_runner.termination_flag import TerminationFlag
|
|
|
15
15
|
|
|
16
16
|
from ...procedure_surface.api.default_values import ALL_TYPES
|
|
17
17
|
from ...procedure_surface.utils.config_converter import ConfigConverter
|
|
18
|
+
from ..progress_callback import ProgressCallback
|
|
18
19
|
from .api_types import JobStatus
|
|
19
20
|
from .job_client import JobClient
|
|
20
21
|
|
|
@@ -326,9 +327,9 @@ class GdsArrowClient:
|
|
|
326
327
|
def upload_nodes(
|
|
327
328
|
self,
|
|
328
329
|
job_id: str,
|
|
329
|
-
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
330
|
+
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame | list[pandas.DataFrame],
|
|
330
331
|
batch_size: int = 10000,
|
|
331
|
-
progress_callback:
|
|
332
|
+
progress_callback: ProgressCallback = lambda num_rows: None,
|
|
332
333
|
termination_flag: TerminationFlag | None = None,
|
|
333
334
|
) -> None:
|
|
334
335
|
"""
|
|
@@ -354,9 +355,9 @@ class GdsArrowClient:
|
|
|
354
355
|
def upload_relationships(
|
|
355
356
|
self,
|
|
356
357
|
job_id: str,
|
|
357
|
-
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
358
|
+
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame | list[pandas.DataFrame],
|
|
358
359
|
batch_size: int = 10000,
|
|
359
|
-
progress_callback:
|
|
360
|
+
progress_callback: ProgressCallback = lambda num_rows: None,
|
|
360
361
|
termination_flag: TerminationFlag | None = None,
|
|
361
362
|
) -> None:
|
|
362
363
|
"""
|
|
@@ -384,7 +385,7 @@ class GdsArrowClient:
|
|
|
384
385
|
job_id: str,
|
|
385
386
|
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
386
387
|
batch_size: int = 10000,
|
|
387
|
-
progress_callback:
|
|
388
|
+
progress_callback: ProgressCallback = lambda num_triplets: None,
|
|
388
389
|
termination_flag: TerminationFlag | None = None,
|
|
389
390
|
) -> None:
|
|
390
391
|
"""
|
|
@@ -475,18 +476,27 @@ class GdsArrowClient:
|
|
|
475
476
|
self,
|
|
476
477
|
endpoint: str,
|
|
477
478
|
job_id: str,
|
|
478
|
-
data: pyarrow.Table | list[pyarrow.RecordBatch] | pandas.DataFrame,
|
|
479
|
+
data: pyarrow.Table | list[pyarrow.RecordBatch] | list[pandas.DataFrame],
|
|
479
480
|
batch_size: int = 10000,
|
|
480
|
-
progress_callback:
|
|
481
|
+
progress_callback: ProgressCallback = lambda num_rows: None,
|
|
481
482
|
termination_flag: TerminationFlag | None = None,
|
|
482
483
|
) -> None:
|
|
484
|
+
if isinstance(data, pandas.DataFrame):
|
|
485
|
+
data = [data]
|
|
486
|
+
|
|
487
|
+
def map_list_entry_to_batches(e: pyarrow.RecordBatch | pandas.DataFrame) -> list[pyarrow.RecordBatch]:
|
|
488
|
+
return [e] if isinstance(e, pyarrow.RecordBatch) else pyarrow.Table.from_pandas(e).to_batches(batch_size)
|
|
489
|
+
|
|
490
|
+
batches: list[pyarrow.RecordBatch] = []
|
|
483
491
|
match data:
|
|
492
|
+
case list():
|
|
493
|
+
for entry in data:
|
|
494
|
+
partial_batches = map_list_entry_to_batches(entry)
|
|
495
|
+
batches.extend(partial_batches)
|
|
484
496
|
case pyarrow.Table():
|
|
485
497
|
batches = data.to_batches(batch_size)
|
|
486
|
-
case pandas.DataFrame():
|
|
487
|
-
batches = pyarrow.Table.from_pandas(data).to_batches(batch_size)
|
|
488
498
|
case _:
|
|
489
|
-
|
|
499
|
+
raise ValueError(f"Unsupported data type: {type(data)}")
|
|
490
500
|
|
|
491
501
|
flight_descriptor = {
|
|
492
502
|
"name": endpoint,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Protocol
|
|
2
|
+
|
|
3
|
+
from pandas import DataFrame
|
|
4
|
+
|
|
5
|
+
from graphdatascience.graph.v2 import GraphV2
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GraphConstructorFunc(Protocol):
|
|
9
|
+
def __call__(
|
|
10
|
+
self,
|
|
11
|
+
graph_name: str,
|
|
12
|
+
nodes: DataFrame | list[DataFrame],
|
|
13
|
+
relationships: DataFrame | list[DataFrame] | None = None,
|
|
14
|
+
concurrency: int | None = None,
|
|
15
|
+
undirected_relationship_types: list[str] | None = None,
|
|
16
|
+
) -> GraphV2: ...
|
|
@@ -4,28 +4,37 @@ from typing import Any
|
|
|
4
4
|
import networkx as nx
|
|
5
5
|
from pandas import DataFrame
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
from graphdatascience.datasets.graph_constructor_func import GraphConstructorFunc
|
|
8
|
+
from graphdatascience.graph.v2 import GraphV2
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class NXLoader:
|
|
12
|
+
def __init__(self, graph_constructor: GraphConstructorFunc) -> None:
|
|
13
|
+
self._construct = graph_constructor
|
|
14
|
+
|
|
15
|
+
def load(self, nx_G: nx.Graph, graph_name: str, concurrency: int | None = None) -> GraphV2:
|
|
16
|
+
"""
|
|
17
|
+
Parameters
|
|
18
|
+
----------
|
|
19
|
+
nx_G
|
|
20
|
+
The networkx graph to load.
|
|
21
|
+
graph_name
|
|
22
|
+
Name of the graph to create.
|
|
23
|
+
concurrency
|
|
24
|
+
Number of concurrent threads to use.
|
|
25
|
+
|
|
26
|
+
Returns
|
|
27
|
+
-------
|
|
28
|
+
GraphV2
|
|
29
|
+
A handle to the graph.
|
|
30
|
+
"""
|
|
19
31
|
nodes, rels = self._parse(nx_G)
|
|
20
32
|
|
|
21
33
|
undirected_rel_types = []
|
|
22
34
|
if not isinstance(nx_G, nx_G.to_directed_class()):
|
|
23
35
|
undirected_rel_types = [df["relationshipType"][0] for df in rels]
|
|
24
36
|
|
|
25
|
-
|
|
26
|
-
constructor.run(nodes, rels)
|
|
27
|
-
|
|
28
|
-
return Graph(graph_name, self._query_runner)
|
|
37
|
+
return self._construct(graph_name, nodes, rels, concurrency, undirected_rel_types)
|
|
29
38
|
|
|
30
39
|
@staticmethod
|
|
31
40
|
def _attr_to_labels_key(labels_attr: Any, node_id: Any, no_node_labels: bool | None) -> tuple[str, ...]:
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import logging
|
|
2
4
|
from abc import ABC, abstractmethod
|
|
3
5
|
from typing import Any, Protocol, TypedDict
|
|
@@ -7,13 +9,8 @@ import numpy as np
|
|
|
7
9
|
import numpy.typing as npt
|
|
8
10
|
import pandas as pd
|
|
9
11
|
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from ..error.uncallable_namespace import UncallableNamespace
|
|
13
|
-
from ..graph.graph_object import Graph
|
|
14
|
-
from ..query_runner.query_runner import QueryRunner
|
|
15
|
-
from ..server_version.compatible_with import compatible_with
|
|
16
|
-
from ..server_version.server_version import ServerVersion
|
|
12
|
+
from graphdatascience.datasets.graph_constructor_func import GraphConstructorFunc
|
|
13
|
+
from graphdatascience.graph.v2 import GraphV2
|
|
17
14
|
|
|
18
15
|
|
|
19
16
|
class _HomogeneousOGBGraphBase(TypedDict):
|
|
@@ -41,7 +38,7 @@ class HomogeneousOGBNDataset(Protocol):
|
|
|
41
38
|
# `labels` here refers to class labels, not node labels in the Neo4j sense
|
|
42
39
|
# The representation is a node_count x 1 shaped matrix
|
|
43
40
|
labels: npt.NDArray[np.int64]
|
|
44
|
-
meta_info:
|
|
41
|
+
meta_info: pd.Series[Any]
|
|
45
42
|
|
|
46
43
|
@abstractmethod
|
|
47
44
|
def get_idx_split(self) -> dict[str, npt.NDArray[np.int64]]:
|
|
@@ -50,7 +47,7 @@ class HomogeneousOGBNDataset(Protocol):
|
|
|
50
47
|
|
|
51
48
|
class HomogeneousOGBLDataset(Protocol):
|
|
52
49
|
graph: HomogeneousOGBGraph
|
|
53
|
-
meta_info:
|
|
50
|
+
meta_info: pd.Series[Any]
|
|
54
51
|
name: str
|
|
55
52
|
|
|
56
53
|
@abstractmethod
|
|
@@ -63,7 +60,7 @@ class HeterogeneousOGBNDataset(Protocol):
|
|
|
63
60
|
# `labels` here refers to class labels, not node labels in the Neo4j sense
|
|
64
61
|
# The representation is a node_count x 1 shaped matrix
|
|
65
62
|
labels: dict[str, npt.NDArray[np.int64]]
|
|
66
|
-
meta_info:
|
|
63
|
+
meta_info: pd.Series[Any]
|
|
67
64
|
|
|
68
65
|
@abstractmethod
|
|
69
66
|
def get_idx_split(self) -> dict[str, dict[str, npt.NDArray[np.int64]]]:
|
|
@@ -72,26 +69,18 @@ class HeterogeneousOGBNDataset(Protocol):
|
|
|
72
69
|
|
|
73
70
|
class HeterogeneousOGBLDataset(Protocol):
|
|
74
71
|
graph: HeterogeneousOGBGraph
|
|
75
|
-
meta_info:
|
|
72
|
+
meta_info: pd.Series[Any]
|
|
76
73
|
|
|
77
74
|
@abstractmethod
|
|
78
75
|
def get_edge_split(self) -> dict[str, dict[str, Any]]:
|
|
79
76
|
pass
|
|
80
77
|
|
|
81
78
|
|
|
82
|
-
class OGBLoader(
|
|
83
|
-
def __init__(self,
|
|
84
|
-
self.
|
|
85
|
-
self._namespace = namespace
|
|
86
|
-
self._server_version = server_version
|
|
79
|
+
class OGBLoader(ABC):
|
|
80
|
+
def __init__(self, graph_constructor: GraphConstructorFunc):
|
|
81
|
+
self._construct = graph_constructor
|
|
87
82
|
self._logger = logging.getLogger()
|
|
88
83
|
|
|
89
|
-
def _load(self, graph_name: str, nodes: list[pd.DataFrame], rels: list[pd.DataFrame], concurrency: int) -> Graph:
|
|
90
|
-
constructor = self._query_runner.create_graph_constructor(graph_name, concurrency, [])
|
|
91
|
-
constructor.run(nodes, rels)
|
|
92
|
-
|
|
93
|
-
return Graph(graph_name, self._query_runner)
|
|
94
|
-
|
|
95
84
|
|
|
96
85
|
class OGBNLoader(OGBLoader):
|
|
97
86
|
def _parse_homogeneous(self, dataset: HomogeneousOGBNDataset) -> tuple[list[pd.DataFrame], list[pd.DataFrame]]:
|
|
@@ -199,15 +188,30 @@ class OGBNLoader(OGBLoader):
|
|
|
199
188
|
|
|
200
189
|
return nodes, rels
|
|
201
190
|
|
|
202
|
-
@client_only_endpoint("gds.graph.ogbn")
|
|
203
|
-
@compatible_with("load", min_inclusive=ServerVersion(2, 1, 0))
|
|
204
191
|
def load(
|
|
205
192
|
self,
|
|
206
193
|
dataset_name: str,
|
|
207
194
|
dataset_root_path: str = "dataset",
|
|
208
195
|
graph_name: str | None = None,
|
|
209
|
-
concurrency: int =
|
|
210
|
-
) ->
|
|
196
|
+
concurrency: int | None = None,
|
|
197
|
+
) -> GraphV2:
|
|
198
|
+
"""
|
|
199
|
+
Parameters
|
|
200
|
+
----------
|
|
201
|
+
dataset_name
|
|
202
|
+
Name of the dataset to load.
|
|
203
|
+
dataset_root_path
|
|
204
|
+
Path to the root directory of the dataset.
|
|
205
|
+
graph_name
|
|
206
|
+
Name of the graph to create.
|
|
207
|
+
concurrency
|
|
208
|
+
Number of concurrent threads to use.
|
|
209
|
+
|
|
210
|
+
Returns
|
|
211
|
+
-------
|
|
212
|
+
GraphV2
|
|
213
|
+
A handle to the graph.
|
|
214
|
+
"""
|
|
211
215
|
try:
|
|
212
216
|
from ogb.nodeproppred import NodePropPredDataset
|
|
213
217
|
except ModuleNotFoundError:
|
|
@@ -226,7 +230,7 @@ class OGBNLoader(OGBLoader):
|
|
|
226
230
|
if not graph_name:
|
|
227
231
|
graph_name = dataset_name
|
|
228
232
|
|
|
229
|
-
return self.
|
|
233
|
+
return self._construct(graph_name, nodes, rels, concurrency=concurrency)
|
|
230
234
|
|
|
231
235
|
|
|
232
236
|
class OGBLLoader(OGBLoader):
|
|
@@ -247,17 +251,7 @@ class OGBLLoader(OGBLoader):
|
|
|
247
251
|
nodes = pd.DataFrame(node_dict)
|
|
248
252
|
|
|
249
253
|
self._logger.info("Preparing relationship data for transfer to server...")
|
|
250
|
-
|
|
251
|
-
source_ids: list[int] = []
|
|
252
|
-
target_ids: list[int] = []
|
|
253
|
-
rel_types: list[str] = []
|
|
254
|
-
split = dataset.get_edge_split()
|
|
255
|
-
|
|
256
|
-
self._load_homogenous_ogbl_relationships(dataset.name, split, source_ids, target_ids, rel_types)
|
|
257
|
-
|
|
258
|
-
relationships = pd.DataFrame(
|
|
259
|
-
{"sourceNodeId": source_ids, "targetNodeId": target_ids, "relationshipType": rel_types}
|
|
260
|
-
)
|
|
254
|
+
relationships = self._load_homogenous_ogbl_relationships(dataset.name, dataset.get_edge_split())
|
|
261
255
|
|
|
262
256
|
return [nodes], [relationships]
|
|
263
257
|
|
|
@@ -326,15 +320,30 @@ class OGBLLoader(OGBLoader):
|
|
|
326
320
|
|
|
327
321
|
return nodes, rels
|
|
328
322
|
|
|
329
|
-
@client_only_endpoint("gds.graph.ogbl")
|
|
330
|
-
@compatible_with("load", min_inclusive=ServerVersion(2, 1, 0))
|
|
331
323
|
def load(
|
|
332
324
|
self,
|
|
333
325
|
dataset_name: str,
|
|
334
326
|
dataset_root_path: str = "dataset",
|
|
335
327
|
graph_name: str | None = None,
|
|
336
|
-
concurrency: int =
|
|
337
|
-
) ->
|
|
328
|
+
concurrency: int | None = None,
|
|
329
|
+
) -> GraphV2:
|
|
330
|
+
"""
|
|
331
|
+
Parameters
|
|
332
|
+
----------
|
|
333
|
+
dataset_name
|
|
334
|
+
Name of the dataset to load.
|
|
335
|
+
dataset_root_path
|
|
336
|
+
Path to the root directory of the dataset.
|
|
337
|
+
graph_name
|
|
338
|
+
Name of the graph to create.
|
|
339
|
+
concurrency
|
|
340
|
+
Number of concurrent threads to use.
|
|
341
|
+
|
|
342
|
+
Returns
|
|
343
|
+
-------
|
|
344
|
+
GraphV2
|
|
345
|
+
A handle to the graph.
|
|
346
|
+
"""
|
|
338
347
|
try:
|
|
339
348
|
from ogb.linkproppred import LinkPropPredDataset
|
|
340
349
|
except ModuleNotFoundError:
|
|
@@ -353,16 +362,16 @@ class OGBLLoader(OGBLoader):
|
|
|
353
362
|
if not graph_name:
|
|
354
363
|
graph_name = dataset_name
|
|
355
364
|
|
|
356
|
-
return self.
|
|
365
|
+
return self._construct(graph_name, nodes, rels, concurrency=concurrency)
|
|
357
366
|
|
|
358
367
|
def _load_homogenous_ogbl_relationships(
|
|
359
368
|
self,
|
|
360
369
|
dataset_name: str,
|
|
361
370
|
split: dict[str, Any],
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
371
|
+
) -> pd.DataFrame:
|
|
372
|
+
source_ids: list[int] = []
|
|
373
|
+
target_ids: list[int] = []
|
|
374
|
+
rel_types: list[str] = []
|
|
366
375
|
if dataset_name == "ogbl-wikikg2":
|
|
367
376
|
for set_type, entity in split.items():
|
|
368
377
|
rel_suffix = f"{set_type.upper()}"
|
|
@@ -387,3 +396,5 @@ class OGBLLoader(OGBLoader):
|
|
|
387
396
|
source_ids.append(source_id)
|
|
388
397
|
target_ids.append(target_id)
|
|
389
398
|
rel_types.append(rel_type)
|
|
399
|
+
|
|
400
|
+
return pd.DataFrame({"sourceNodeId": source_ids, "targetNodeId": target_ids, "relationshipType": rel_types})
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import pathlib
|
|
2
|
+
from typing import NamedTuple
|
|
3
|
+
|
|
4
|
+
from neo4j import __version__ as neo4j_driver_version
|
|
5
|
+
from pandas import DataFrame, read_parquet
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GraphResources(NamedTuple):
|
|
9
|
+
nodes: list[DataFrame]
|
|
10
|
+
rels: list[DataFrame]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SimpleDatasetLoader:
|
|
14
|
+
def __init__(self) -> None:
|
|
15
|
+
self._is_neo4j_4_driver = neo4j_driver_version.startswith("4.")
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def _path(package: str, resource: str) -> pathlib.Path:
|
|
19
|
+
from importlib.resources import files
|
|
20
|
+
|
|
21
|
+
# files() returns a Traversable, but usages require a Path object
|
|
22
|
+
return pathlib.Path(str(files(package) / resource))
|
|
23
|
+
|
|
24
|
+
def cora(self) -> GraphResources:
|
|
25
|
+
file = self._path("graphdatascience.resources.cora", "cora_nodes.parquet.gzip")
|
|
26
|
+
nodes = read_parquet(file)
|
|
27
|
+
|
|
28
|
+
if self._is_neo4j_4_driver:
|
|
29
|
+
# features is read as an ndarray which was not supported in neo4j 4
|
|
30
|
+
nodes["features"] = nodes["features"].apply(lambda x: x.tolist())
|
|
31
|
+
|
|
32
|
+
rels = read_parquet(self._path("graphdatascience.resources.cora", "cora_rels.parquet.gzip"))
|
|
33
|
+
return GraphResources([nodes], [rels])
|
|
34
|
+
|
|
35
|
+
def karate_club(self) -> GraphResources:
|
|
36
|
+
nodes = DataFrame({"nodeId": range(1, 35)})
|
|
37
|
+
nodes["labels"] = "Person"
|
|
38
|
+
|
|
39
|
+
rels = read_parquet(self._path("graphdatascience.resources.karate", "karate_club.parquet.gzip"))
|
|
40
|
+
|
|
41
|
+
return GraphResources([nodes], [rels])
|
|
42
|
+
|
|
43
|
+
def imdb(self) -> GraphResources:
|
|
44
|
+
package = "graphdatascience.resources.imdb"
|
|
45
|
+
nodes = ["movies_with_genre", "movies_without_genre", "actors", "directors"]
|
|
46
|
+
rels = ["acted_in", "directed_in"]
|
|
47
|
+
|
|
48
|
+
node_dfs = []
|
|
49
|
+
for n in nodes:
|
|
50
|
+
resource = self._path(package, f"imdb_{n}.parquet.gzip")
|
|
51
|
+
df = read_parquet(resource)
|
|
52
|
+
if self._is_neo4j_4_driver:
|
|
53
|
+
# features is read as an ndarray which was not supported in neo4j 4
|
|
54
|
+
df["plot_keywords"] = df["plot_keywords"].apply(lambda x: x.tolist())
|
|
55
|
+
node_dfs.append(df)
|
|
56
|
+
|
|
57
|
+
rel_dfs = []
|
|
58
|
+
for r in rels:
|
|
59
|
+
resource = self._path(package, f"imdb_{r}.parquet.gzip")
|
|
60
|
+
rel_dfs.append(read_parquet(resource))
|
|
61
|
+
return GraphResources(node_dfs, rel_dfs)
|
|
62
|
+
|
|
63
|
+
def lastfm(self) -> GraphResources:
|
|
64
|
+
nodes = ["user_nodes", "artist_nodes"]
|
|
65
|
+
rels = ["user_friend_df_directed", "user_listen_artist_rels", "user_tag_artist_rels"]
|
|
66
|
+
|
|
67
|
+
package = "graphdatascience.resources.lastfm"
|
|
68
|
+
|
|
69
|
+
node_dfs = []
|
|
70
|
+
for n in nodes:
|
|
71
|
+
resource = self._path(package, f"{n}.parquet.gzip")
|
|
72
|
+
node_dfs.append(read_parquet(resource))
|
|
73
|
+
|
|
74
|
+
rel_dfs = []
|
|
75
|
+
for r in rels:
|
|
76
|
+
resource = self._path(package, f"{r}.parquet.gzip")
|
|
77
|
+
rel_dfs.append(read_parquet(resource))
|
|
78
|
+
|
|
79
|
+
return GraphResources(node_dfs, rel_dfs)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import networkx as nx
|
|
2
|
+
import pandas as pd
|
|
3
|
+
|
|
4
|
+
from graphdatascience.datasets.nx_loader import NXLoader as NXLoaderV2
|
|
5
|
+
|
|
6
|
+
from ..error.client_only_endpoint import client_only_endpoint
|
|
7
|
+
from ..error.illegal_attr_checker import IllegalAttrChecker
|
|
8
|
+
from ..error.uncallable_namespace import UncallableNamespace
|
|
9
|
+
from ..server_version.compatible_with import compatible_with
|
|
10
|
+
from ..server_version.server_version import ServerVersion
|
|
11
|
+
from .graph_object import Graph
|
|
12
|
+
from .v2 import GraphV2
|
|
13
|
+
from .v2.graph_backend_cypher import get_graph
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class NXLoader(UncallableNamespace, IllegalAttrChecker):
|
|
17
|
+
def _construct_graph(
|
|
18
|
+
self,
|
|
19
|
+
graph_name: str,
|
|
20
|
+
nodes: pd.DataFrame | list[pd.DataFrame],
|
|
21
|
+
relationships: pd.DataFrame | list[pd.DataFrame] | None = None,
|
|
22
|
+
concurrency: int | None = None,
|
|
23
|
+
undirected_relationship_types: list[str] | None = None,
|
|
24
|
+
) -> GraphV2:
|
|
25
|
+
if concurrency is None:
|
|
26
|
+
concurrency = 4
|
|
27
|
+
|
|
28
|
+
constructor = self._query_runner.create_graph_constructor(
|
|
29
|
+
graph_name, concurrency, undirected_relationship_types
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
if isinstance(nodes, pd.DataFrame):
|
|
33
|
+
nodes = [nodes]
|
|
34
|
+
if isinstance(relationships, pd.DataFrame):
|
|
35
|
+
relationships = [relationships]
|
|
36
|
+
if relationships is None:
|
|
37
|
+
relationships = []
|
|
38
|
+
|
|
39
|
+
constructor.run(nodes, relationships)
|
|
40
|
+
return get_graph(graph_name, self._query_runner)
|
|
41
|
+
|
|
42
|
+
@client_only_endpoint("gds.graph.networkx")
|
|
43
|
+
@compatible_with("load", min_inclusive=ServerVersion(2, 1, 0))
|
|
44
|
+
def load(self, nx_G: nx.Graph, graph_name: str, concurrency: int = 4) -> Graph:
|
|
45
|
+
G_V2 = NXLoaderV2(self._construct_graph).load(nx_G, graph_name, concurrency)
|
|
46
|
+
return Graph(G_V2.name(), self._query_runner)
|