graphdatascience 1.17__tar.gz → 1.18a1__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.17/graphdatascience.egg-info → graphdatascience-1.18a1}/PKG-INFO +5 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/algo/algo_proc_runner.py +5 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/authenticated_flight_client.py +27 -21
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/middleware/auth_middleware.py +3 -3
- graphdatascience-1.18a1/graphdatascience/arrow_client/v2/api_types.py +49 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/v2/data_mapper_utils.py +4 -4
- graphdatascience-1.18a1/graphdatascience/arrow_client/v2/job_client.py +94 -0
- graphdatascience-1.18a1/graphdatascience/arrow_client/v2/mutation_client.py +52 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/v2/remote_write_back_client.py +11 -7
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/call_parameters.py +2 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/cypher_warning_handler.py +11 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/base_graph_proc_runner.py +18 -17
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_alpha_proc_runner.py +3 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_beta_proc_runner.py +2 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_create_result.py +5 -5
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_cypher_runner.py +4 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_entity_ops_runner.py +16 -14
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_export_runner.py +7 -5
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_object.py +6 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_project_runner.py +1 -1
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_remote_project_runner.py +4 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_sample_runner.py +3 -1
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/nx_loader.py +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/ogb_loader.py +8 -8
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph_data_science.py +39 -37
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/graphsage_model.py +4 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/model_beta_proc_runner.py +6 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/model_proc_runner.py +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/node_classification_model.py +4 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/simple_rel_embedding_model.py +6 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/v2/model.py +1 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/v2/model_api.py +1 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/classification_training_pipeline.py +5 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/lp_pipeline_create_runner.py +3 -1
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/lp_training_pipeline.py +3 -1
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/nc_training_pipeline.py +6 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/nr_pipeline_create_runner.py +4 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/nr_training_pipeline.py +8 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/pipeline_beta_proc_runner.py +6 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/pipeline_proc_runner.py +6 -4
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/training_pipeline.py +12 -10
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/catalog}/catalog_endpoints.py +41 -41
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/graph_api.py +6 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/graph_backend.py +1 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/graph_info.py +9 -7
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/catalog/graph_sampling_endpoints.py +187 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/node_label_endpoints.py +25 -25
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/node_properties_endpoints.py +55 -63
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/relationships_endpoints.py +50 -50
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality/articlerank_endpoints.py +345 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality}/articulationpoints_endpoints.py +77 -76
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality/betweenness_endpoints.py +303 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality/celf_endpoints.py +313 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality}/closeness_endpoints.py +94 -91
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality}/closeness_harmonic_endpoints.py +85 -81
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality/degree_endpoints.py +299 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality}/eigenvector_endpoints.py +137 -132
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality/pagerank_endpoints.py +347 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/clique_counting_endpoints.py +239 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/hdbscan_endpoints.py +333 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community}/k1coloring_endpoints.py +93 -94
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community}/kcore_endpoints.py +73 -74
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/kmeans_endpoints.py +391 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/labelpropagation_endpoints.py +337 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/leiden_endpoints.py +401 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/local_clustering_coefficient_endpoints.py +279 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community}/louvain_endpoints.py +146 -147
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/maxkcut_endpoints.py +226 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/modularity_optimization_endpoints.py +356 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community}/scc_endpoints.py +79 -80
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/sllpa_endpoints.py +343 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community/triangle_count_endpoints.py +375 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community}/wcc_endpoints.py +113 -114
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/model/graphsage_model.py +67 -69
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding}/fastrp_endpoints.py +138 -139
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding/graphsage_endpoints.py +209 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding}/graphsage_predict_endpoints.py +71 -71
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding/graphsage_train_endpoints.py +152 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding}/hashgnn_endpoints.py +92 -93
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding/node2vec_endpoints.py +385 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity/knn_endpoints.py +386 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity/knn_filtered_endpoints.py +435 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity/knn_results.py +44 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity/node_similarity_endpoints.py +381 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity/node_similarity_filtered_endpoints.py +405 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity/node_similarity_results.py +35 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/catalog/graph_backend_arrow.py +1 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/catalog/graph_ops_arrow.py +2 -4
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/catalog}/graph_sampling_arrow_endpoints.py +36 -29
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/catalog/node_label_arrow_endpoints.py +33 -18
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/catalog/node_properties_arrow_endpoints.py +35 -32
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/catalog/relationship_arrow_endpoints.py +44 -32
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/catalog_arrow_endpoints.py +51 -38
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/articlerank_arrow_endpoints.py +84 -79
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/articulationpoints_arrow_endpoints.py +54 -45
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/betweenness_arrow_endpoints.py +69 -64
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/celf_arrow_endpoints.py +74 -60
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/closeness_arrow_endpoints.py +59 -50
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/closeness_harmonic_arrow_endpoints.py +54 -45
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/degree_arrow_endpoints.py +69 -55
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/eigenvector_arrow_endpoints.py +79 -74
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/pagerank_arrow_endpoints.py +89 -75
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/clique_counting_arrow_endpoints.py +157 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/hdbscan_arrow_endpoints.py +210 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community}/k1coloring_arrow_endpoints.py +66 -57
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community}/kcore_arrow_endpoints.py +61 -47
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/kmeans_arrow_endpoints.py +248 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/labelpropagation_arrow_endpoints.py +216 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/leiden_arrow_endpoints.py +253 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/local_clustering_coefficient_arrow_endpoints.py +194 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community}/louvain_arrow_endpoints.py +96 -82
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/maxkcut_arrow_endpoints.py +127 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/modularity_optimization_arrow_endpoints.py +230 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community}/scc_arrow_endpoints.py +64 -50
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/sllpa_arrow_endpoints.py +189 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community/triangle_count_arrow_endpoints.py +181 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community}/wcc_arrow_endpoints.py +81 -67
- graphdatascience-1.17/graphdatascience/procedure_surface/arrow/node_property_endpoints.py → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/endpoints_helper_base.py +64 -33
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/arrow/model_api_arrow.py +2 -2
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_embedding}/fastrp_arrow_endpoints.py +89 -80
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_embedding}/graphsage_predict_arrow_endpoints.py +52 -45
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_embedding/graphsage_train_arrow_endpoints.py +167 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_embedding}/hashgnn_arrow_endpoints.py +71 -62
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_embedding}/node2vec_arrow_endpoints.py +114 -101
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_property_endpoints.py +33 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/relationship_endpoints_helper.py +43 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/similarity/knn_arrow_endpoints.py +282 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/similarity/knn_filtered_arrow_endpoints.py +298 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/similarity/node_similarity_arrow_endpoints.py +289 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/similarity/node_similarity_filtered_arrow_endpoints.py +297 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/stream_result_mapper.py +7 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/catalog/graph_backend_cypher.py +1 -3
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/catalog}/graph_sampling_cypher_endpoints.py +39 -31
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/catalog/node_label_cypher_endpoints.py +16 -14
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/catalog/node_properties_cypher_endpoints.py +26 -29
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/catalog/relationship_cypher_endpoints.py +30 -30
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/catalog_cypher_endpoints.py +37 -36
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/articlerank_cypher_endpoints.py +80 -75
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/articulationpoints_cypher_endpoints.py +46 -45
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/betweenness_cypher_endpoints.py +65 -60
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/celf_cypher_endpoints.py +66 -60
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/closeness_cypher_endpoints.py +55 -50
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/closeness_harmonic_cypher_endpoints.py +52 -45
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/degree_cypher_endpoints.py +65 -55
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/eigenvector_cypher_endpoints.py +75 -70
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/pagerank_cypher_endpoints.py +85 -75
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/clique_counting_cypher_endpoints.py +170 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/hdbscan_cypher_endpoints.py +225 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community}/k1coloring_cypher_endpoints.py +62 -57
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community}/kcore_cypher_endpoints.py +56 -45
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/kmeans_cypher_endpoints.py +262 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/labelpropagation_cypher_endpoints.py +229 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/leiden_cypher_endpoints.py +267 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/local_clustering_coefficient_cypher_endpoints.py +190 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community}/louvain_cypher_endpoints.py +91 -81
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/maxkcut_cypher_endpoints.py +127 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/modularity_optimization_cypher_endpoints.py +243 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community}/scc_cypher_endpoints.py +59 -48
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/sllpa_cypher_endpoints.py +207 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community/triangle_count_cypher_endpoints.py +179 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community}/wcc_cypher_endpoints.py +76 -65
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/estimation_utils.py +7 -7
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/cypher/model_api_cypher.py +2 -2
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/node_embedding}/fastrp_cypher_endpoints.py +85 -80
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/node_embedding}/graphsage_predict_cypher_endpoints.py +47 -42
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/node_embedding/graphsage_train_cypher_endpoints.py +157 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/node_embedding}/hashgnn_cypher_endpoints.py +65 -62
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/node_embedding}/node2vec_cypher_endpoints.py +107 -100
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/similarity/knn_cypher_endpoints.py +274 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/similarity/knn_filtered_cypher_endpoints.py +290 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/similarity/node_similarity_cypher_endpoints.py +272 -0
- graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/similarity/node_similarity_filtered_cypher_endpoints.py +286 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/utils/config_converter.py +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/arrow_graph_constructor.py +2 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/arrow_query_runner.py +20 -20
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/cypher_graph_constructor.py +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/gds_arrow_client.py +77 -80
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/neo4j_query_runner.py +68 -43
- graphdatascience-1.18a1/graphdatascience/query_runner/progress/progress_bar.py +70 -0
- graphdatascience-1.18a1/graphdatascience/query_runner/progress/progress_provider.py +23 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/progress/query_progress_logger.py +23 -54
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/progress/query_progress_provider.py +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/progress/static_progress_provider.py +1 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/protocol/project_protocols.py +9 -9
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/protocol/write_protocols.py +38 -14
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/query_runner.py +16 -16
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/session_query_runner.py +23 -21
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/standalone_session_query_runner.py +16 -16
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/termination_flag.py +2 -3
- graphdatascience-1.18a1/graphdatascience/resources/cora/__init__.py +0 -0
- graphdatascience-1.18a1/graphdatascience/resources/imdb/__init__.py +0 -0
- graphdatascience-1.18a1/graphdatascience/resources/karate/__init__.py +0 -0
- graphdatascience-1.18a1/graphdatascience/resources/lastfm/__init__.py +0 -0
- graphdatascience-1.18a1/graphdatascience/retry_utils/__init__.py +0 -0
- graphdatascience-1.18a1/graphdatascience/retry_utils/neo4j_retry_helper.py +12 -0
- graphdatascience-1.18a1/graphdatascience/semantic_version/__init__.py +0 -0
- graphdatascience-1.18a1/graphdatascience/server_version/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/server_version/compatible_with.py +2 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/aura_api.py +12 -12
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/aura_api_responses.py +7 -7
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/aura_graph_data_science.py +15 -12
- graphdatascience-1.18a1/graphdatascience/session/aurads_sessions.py +0 -0
- graphdatascience-1.18a1/graphdatascience/session/dbms/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/dbms/protocol_resolver.py +1 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/dbms_connection_info.py +5 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/dedicated_sessions.py +18 -18
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/gds_sessions.py +18 -18
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/region_suggester.py +2 -2
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/session_info.py +10 -11
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/session_sizes.py +1 -2
- graphdatascience-1.18a1/graphdatascience/session/session_v2_endpoints.py +228 -0
- graphdatascience-1.18a1/graphdatascience/system/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/system/config_endpoints.py +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/system/system_endpoints.py +12 -10
- graphdatascience-1.18a1/graphdatascience/topological_lp/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/topological_lp/topological_lp_alpha_runner.py +2 -2
- graphdatascience-1.18a1/graphdatascience/utils/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/version.py +1 -1
- {graphdatascience-1.17 → graphdatascience-1.18a1/graphdatascience.egg-info}/PKG-INFO +5 -6
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience.egg-info/SOURCES.txt +123 -61
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience.egg-info/requires.txt +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/requirements/base/base.txt +3 -3
- {graphdatascience-1.17 → graphdatascience-1.18a1}/setup.py +1 -2
- graphdatascience-1.17/graphdatascience/arrow_client/v2/api_types.py +0 -17
- graphdatascience-1.17/graphdatascience/arrow_client/v2/job_client.py +0 -58
- graphdatascience-1.17/graphdatascience/arrow_client/v2/mutation_client.py +0 -18
- graphdatascience-1.17/graphdatascience/procedure_surface/api/articlerank_endpoints.py +0 -338
- graphdatascience-1.17/graphdatascience/procedure_surface/api/betweenness_endpoints.py +0 -293
- graphdatascience-1.17/graphdatascience/procedure_surface/api/celf_endpoints.py +0 -318
- graphdatascience-1.17/graphdatascience/procedure_surface/api/degree_endpoints.py +0 -311
- graphdatascience-1.17/graphdatascience/procedure_surface/api/graph_sampling_endpoints.py +0 -181
- graphdatascience-1.17/graphdatascience/procedure_surface/api/graphsage_train_endpoints.py +0 -118
- graphdatascience-1.17/graphdatascience/procedure_surface/api/node2vec_endpoints.py +0 -386
- graphdatascience-1.17/graphdatascience/procedure_surface/api/pagerank_endpoints.py +0 -343
- graphdatascience-1.17/graphdatascience/procedure_surface/arrow/graphsage_train_arrow_endpoints.py +0 -90
- graphdatascience-1.17/graphdatascience/procedure_surface/cypher/graphsage_train_cypher_endpoints.py +0 -90
- graphdatascience-1.17/graphdatascience/query_runner/progress/progress_provider.py +0 -18
- graphdatascience-1.17/graphdatascience/session/session_v2_endpoints.py +0 -115
- {graphdatascience-1.17 → graphdatascience-1.18a1}/LICENSE +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/MANIFEST.in +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/README.md +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/algo/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/algo/algo_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/algo/single_mode_algo_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/arrow_authentication.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/arrow_base_model.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/arrow_info.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/middleware/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/middleware/user_agent_middleware.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/arrow_client/v2/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/call_builder.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/caller_base.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/client_only_endpoint.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/endpoint_suggester.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/gds_not_installed.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/illegal_attr_checker.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/unable_to_connect.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/uncallable_namespace.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_proc_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_remote_proc_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_type_check.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/ignored_server_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/link_prediction_model.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/model.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/model_alpha_proc_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/model_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/model_resolver.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/node_regression_model.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/pipeline_model.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/v2/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/v2/graphsage_model.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/model/v2/model_details.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/nc_pipeline_create_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/pipeline_alpha_proc_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/pipeline/pipeline_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/base_result.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/catalog/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/api/model → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/centrality}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/community}/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/api/estimation_result.py +0 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/arrow/catalog → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/model}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/node_embedding}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/cypher/catalog → graphdatascience-1.18a1/graphdatascience/procedure_surface/api/similarity}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/procedure_surface/utils → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/query_runner → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/catalog}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/query_runner/progress → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/centrality}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/query_runner/protocol → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/community}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/resources → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/node_embedding}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/resources/cora → graphdatascience-1.18a1/graphdatascience/procedure_surface/arrow/similarity}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/resources/imdb → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/resources/karate → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/catalog}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/resources/lastfm → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/centrality}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/retry_utils → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/community}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/semantic_version → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/node_embedding}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/server_version → graphdatascience-1.18a1/graphdatascience/procedure_surface/cypher/similarity}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/session/dbms → graphdatascience-1.18a1/graphdatascience/procedure_surface/utils}/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/procedure_surface/utils/result_utils.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/py.typed +0 -0
- {graphdatascience-1.17/graphdatascience/system → graphdatascience-1.18a1/graphdatascience/query_runner}/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/arrow_authentication/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/arrow_endpoint_version.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/arrow_info/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/graph_constructor.py +0 -0
- {graphdatascience-1.17/graphdatascience/topological_lp → graphdatascience-1.18a1/graphdatascience/query_runner/progress}/__init__.py +0 -0
- {graphdatascience-1.17/graphdatascience/utils → graphdatascience-1.18a1/graphdatascience/query_runner/protocol}/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/protocol/status.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/query_runner/query_mode.py +0 -0
- /graphdatascience-1.17/graphdatascience/session/aurads_sessions.py → /graphdatascience-1.18a1/graphdatascience/resources/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/cora/cora_nodes.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/cora/cora_rels.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/cora/serialize_cora.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/imdb_acted_in.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/imdb_actors.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/imdb_directed_in.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/imdb_directors.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/imdb_movies_with_genre.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/imdb_movies_without_genre.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/imdb/serialize_imdb.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/karate/karate_club.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/lastfm/artist_nodes.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/lastfm/serialize_lastfm.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/lastfm/user_friend_df_directed.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/lastfm/user_listen_artist_rels.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/lastfm/user_nodes.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/resources/lastfm/user_tag_artist_rels.parquet.gzip +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/retry_utils/retry_config.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/retry_utils/retry_utils.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/semantic_version/semantic_version.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/server_version/server_version.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/__init__.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/algorithm_category.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/aura_api_token_authentication.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/cloud_location.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/session/dbms/protocol_version.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/topological_lp/topological_lp_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/utils/direct_util_endpoints.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/utils/util_node_property_func_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/utils/util_proc_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/utils/util_remote_proc_runner.py +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience.egg-info/dependency_links.txt +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience.egg-info/not-zip-safe +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience.egg-info/top_level.txt +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/pyproject.toml +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/requirements/base/networkx.txt +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/requirements/base/ogb.txt +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/requirements/base/rust-ext.txt +0 -0
- {graphdatascience-1.17 → graphdatascience-1.18a1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: graphdatascience
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.18a1
|
|
4
4
|
Summary: A Python client for the Neo4j Graph Data Science (GDS) library
|
|
5
5
|
Home-page: https://neo4j.com/product/graph-data-science/
|
|
6
6
|
Author: Neo4j
|
|
@@ -16,7 +16,6 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
18
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -25,14 +24,14 @@ Classifier: Topic :: Database
|
|
|
25
24
|
Classifier: Topic :: Scientific/Engineering
|
|
26
25
|
Classifier: Topic :: Software Development
|
|
27
26
|
Classifier: Typing :: Typed
|
|
28
|
-
Requires-Python: >=3.
|
|
27
|
+
Requires-Python: >=3.10
|
|
29
28
|
Description-Content-Type: text/markdown
|
|
30
29
|
License-File: LICENSE
|
|
31
30
|
Requires-Dist: multimethod<3.0,>=1.0
|
|
32
|
-
Requires-Dist: neo4j<
|
|
33
|
-
Requires-Dist: numpy<2.
|
|
31
|
+
Requires-Dist: neo4j<7.0,>=4.4.12
|
|
32
|
+
Requires-Dist: numpy<2.4
|
|
34
33
|
Requires-Dist: pandas<3.0,>=1.0
|
|
35
|
-
Requires-Dist: pyarrow<
|
|
34
|
+
Requires-Dist: pyarrow<22.0,>=17.0
|
|
36
35
|
Requires-Dist: textdistance<5.0,>=4.0
|
|
37
36
|
Requires-Dist: tqdm<5.0,>=4.0
|
|
38
37
|
Requires-Dist: typing-extensions<5.0,>=4.0
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
from abc import ABC
|
|
2
4
|
from typing import Any
|
|
3
5
|
|
|
@@ -19,7 +21,7 @@ class AlgoProcRunner(IllegalAttrChecker, ABC):
|
|
|
19
21
|
return self._query_runner.call_procedure(endpoint=self._namespace, params=params, logging=with_logging)
|
|
20
22
|
|
|
21
23
|
@graph_type_check
|
|
22
|
-
def estimate(self, G: Graph, **config: Any) ->
|
|
24
|
+
def estimate(self, G: Graph, **config: Any) -> Series[Any]:
|
|
23
25
|
self._namespace += "." + "estimate"
|
|
24
26
|
return self._run_procedure(G, config, with_logging=False).squeeze() # type: ignore
|
|
25
27
|
|
|
@@ -30,13 +32,13 @@ class StreamModeRunner(AlgoProcRunner):
|
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
class StandardModeRunner(AlgoProcRunner):
|
|
33
|
-
def __call__(self, G: Graph, **config: Any) ->
|
|
35
|
+
def __call__(self, G: Graph, **config: Any) -> Series[Any]:
|
|
34
36
|
return self._run_procedure(G, config).squeeze() # type: ignore
|
|
35
37
|
|
|
36
38
|
|
|
37
39
|
class GraphSageRunner(AlgoProcRunner):
|
|
38
40
|
@graph_type_check
|
|
39
|
-
def __call__(self, G: Graph, **config: Any) -> tuple[GraphSageModel,
|
|
41
|
+
def __call__(self, G: Graph, **config: Any) -> tuple[GraphSageModel, Series[Any]]:
|
|
40
42
|
result = self._run_procedure(G, config).squeeze()
|
|
41
43
|
model_name = result["modelInfo"]["modelName"]
|
|
42
44
|
|
|
@@ -3,12 +3,13 @@ from __future__ import annotations
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
from dataclasses import dataclass
|
|
6
|
-
from typing import Any, Iterator
|
|
6
|
+
from typing import Any, Iterator
|
|
7
7
|
|
|
8
8
|
from pyarrow import __version__ as arrow_version
|
|
9
9
|
from pyarrow import flight
|
|
10
10
|
from pyarrow._flight import (
|
|
11
11
|
Action,
|
|
12
|
+
ActionType,
|
|
12
13
|
FlightInternalError,
|
|
13
14
|
FlightStreamReader,
|
|
14
15
|
FlightTimedOutError,
|
|
@@ -32,12 +33,12 @@ class AuthenticatedArrowClient:
|
|
|
32
33
|
@staticmethod
|
|
33
34
|
def create(
|
|
34
35
|
arrow_info: ArrowInfo,
|
|
35
|
-
auth:
|
|
36
|
+
auth: ArrowAuthentication | None = None,
|
|
36
37
|
encrypted: bool = False,
|
|
37
|
-
arrow_client_options:
|
|
38
|
-
connection_string_override:
|
|
39
|
-
retry_config:
|
|
40
|
-
advertised_listen_address:
|
|
38
|
+
arrow_client_options: dict[str, Any] | None = None,
|
|
39
|
+
connection_string_override: str | None = None,
|
|
40
|
+
retry_config: RetryConfig | None = None,
|
|
41
|
+
advertised_listen_address: tuple[str, int] | None = None,
|
|
41
42
|
) -> AuthenticatedArrowClient:
|
|
42
43
|
connection_string: str
|
|
43
44
|
if connection_string_override is not None:
|
|
@@ -73,11 +74,11 @@ class AuthenticatedArrowClient:
|
|
|
73
74
|
host: str,
|
|
74
75
|
retry_config: RetryConfig,
|
|
75
76
|
port: int = 8491,
|
|
76
|
-
auth:
|
|
77
|
+
auth: ArrowAuthentication | None = None,
|
|
77
78
|
encrypted: bool = False,
|
|
78
|
-
arrow_client_options:
|
|
79
|
-
user_agent:
|
|
80
|
-
advertised_listen_address:
|
|
79
|
+
arrow_client_options: dict[str, Any] | None = None,
|
|
80
|
+
user_agent: str | None = None,
|
|
81
|
+
advertised_listen_address: tuple[str, int] | None = None,
|
|
81
82
|
):
|
|
82
83
|
"""Creates a new GdsArrowClient instance.
|
|
83
84
|
|
|
@@ -87,17 +88,17 @@ class AuthenticatedArrowClient:
|
|
|
87
88
|
The host address of the GDS Arrow server
|
|
88
89
|
port: int
|
|
89
90
|
The host port of the GDS Arrow server (default is 8491)
|
|
90
|
-
auth:
|
|
91
|
+
auth: ArrowAuthentication | None
|
|
91
92
|
An implementation of ArrowAuthentication providing a pair to be used for basic authentication
|
|
92
93
|
encrypted: bool
|
|
93
94
|
A flag that indicates whether the connection should be encrypted (default is False)
|
|
94
|
-
arrow_client_options:
|
|
95
|
+
arrow_client_options: dict[str, Any] | None
|
|
95
96
|
Additional options to be passed to the Arrow Flight client.
|
|
96
|
-
user_agent:
|
|
97
|
+
user_agent: str | None
|
|
97
98
|
The user agent string to use for the connection. (default is `neo4j-graphdatascience-v[VERSION] pyarrow-v[PYARROW_VERSION])
|
|
98
|
-
retry_config:
|
|
99
|
+
retry_config: RetryConfig | None
|
|
99
100
|
The retry configuration to use for the Arrow requests send by the client.
|
|
100
|
-
advertised_listen_address:
|
|
101
|
+
advertised_listen_address: tuple[str, int] | None
|
|
101
102
|
The advertised listen address of the GDS Arrow server. This will be used by remote projection and writeback operations.
|
|
102
103
|
"""
|
|
103
104
|
self._host = host
|
|
@@ -142,13 +143,13 @@ class AuthenticatedArrowClient:
|
|
|
142
143
|
h, p = self.advertised_listen_address
|
|
143
144
|
return ConnectionInfo(h, p, self._encrypted)
|
|
144
145
|
|
|
145
|
-
def request_token(self) ->
|
|
146
|
+
def request_token(self) -> str | None:
|
|
146
147
|
"""
|
|
147
148
|
Requests a token from the server and returns it.
|
|
148
149
|
|
|
149
150
|
Returns
|
|
150
151
|
-------
|
|
151
|
-
|
|
152
|
+
str | None
|
|
152
153
|
a token from the server and returns it.
|
|
153
154
|
"""
|
|
154
155
|
|
|
@@ -174,12 +175,12 @@ class AuthenticatedArrowClient:
|
|
|
174
175
|
def get_stream(self, ticket: Ticket) -> FlightStreamReader:
|
|
175
176
|
return self._flight_client.do_get(ticket)
|
|
176
177
|
|
|
177
|
-
def do_action(self, endpoint: str, payload:
|
|
178
|
+
def do_action(self, endpoint: str, payload: bytes | dict[str, Any]) -> Iterator[Result]:
|
|
178
179
|
payload_bytes = payload if isinstance(payload, bytes) else json.dumps(payload).encode("utf-8")
|
|
179
180
|
|
|
180
181
|
return self._flight_client.do_action(Action(endpoint, payload_bytes)) # type: ignore
|
|
181
182
|
|
|
182
|
-
def do_action_with_retry(self, endpoint: str, payload:
|
|
183
|
+
def do_action_with_retry(self, endpoint: str, payload: bytes | dict[str, Any]) -> list[Result]:
|
|
183
184
|
@retry(
|
|
184
185
|
reraise=True,
|
|
185
186
|
before=before_log("Send action", self._logger, logging.DEBUG),
|
|
@@ -187,11 +188,16 @@ class AuthenticatedArrowClient:
|
|
|
187
188
|
stop=self._retry_config.stop,
|
|
188
189
|
wait=self._retry_config.wait,
|
|
189
190
|
)
|
|
190
|
-
def run_with_retry() ->
|
|
191
|
-
|
|
191
|
+
def run_with_retry() -> list[Result]:
|
|
192
|
+
# the Flight response error code is only checked on iterator consumption
|
|
193
|
+
# we eagerly collect iterator here to trigger retry in case of an error
|
|
194
|
+
return list(self.do_action(endpoint, payload))
|
|
192
195
|
|
|
193
196
|
return run_with_retry()
|
|
194
197
|
|
|
198
|
+
def list_actions(self) -> set[ActionType]:
|
|
199
|
+
return self._flight_client.list_actions() # type: ignore
|
|
200
|
+
|
|
195
201
|
def _instantiate_flight_client(self) -> flight.FlightClient:
|
|
196
202
|
location = (
|
|
197
203
|
flight.Location.for_grpc_tls(self._host, self._port)
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import base64
|
|
4
4
|
import time
|
|
5
|
-
from typing import Any
|
|
5
|
+
from typing import Any
|
|
6
6
|
|
|
7
7
|
from pyarrow._flight import ClientMiddleware, ClientMiddlewareFactory
|
|
8
8
|
|
|
@@ -22,10 +22,10 @@ class AuthMiddleware(ClientMiddleware): # type: ignore
|
|
|
22
22
|
def __init__(self, auth: ArrowAuthentication, *args: Any, **kwargs: Any) -> None:
|
|
23
23
|
super().__init__(*args, **kwargs)
|
|
24
24
|
self._auth = auth
|
|
25
|
-
self._token:
|
|
25
|
+
self._token: str | None = None
|
|
26
26
|
self._token_timestamp = 0
|
|
27
27
|
|
|
28
|
-
def token(self) ->
|
|
28
|
+
def token(self) -> str | None:
|
|
29
29
|
# check whether the token is older than 10 minutes. If so, reset it.
|
|
30
30
|
if self._token and int(time.time()) - self._token_timestamp > 600:
|
|
31
31
|
self._token = None
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from graphdatascience.arrow_client.arrow_base_model import ArrowBaseModel
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class JobIdConfig(ArrowBaseModel):
|
|
5
|
+
job_id: str
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
UNKNOWN_PROGRESS = -1
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class JobStatus(ArrowBaseModel):
|
|
12
|
+
job_id: str
|
|
13
|
+
status: str
|
|
14
|
+
progress: float
|
|
15
|
+
description: str
|
|
16
|
+
|
|
17
|
+
def progress_known(self) -> bool:
|
|
18
|
+
if self.progress == UNKNOWN_PROGRESS:
|
|
19
|
+
return False
|
|
20
|
+
return True
|
|
21
|
+
|
|
22
|
+
def progress_percent(self) -> float | None:
|
|
23
|
+
if self.progress_known():
|
|
24
|
+
return self.progress * 100
|
|
25
|
+
return None
|
|
26
|
+
|
|
27
|
+
def base_task(self) -> str:
|
|
28
|
+
return self.description.split("::")[0].strip()
|
|
29
|
+
|
|
30
|
+
def sub_tasks(self) -> str | None:
|
|
31
|
+
task_split = self.description.split("::", maxsplit=1)
|
|
32
|
+
if len(task_split) > 1:
|
|
33
|
+
return task_split[1].strip()
|
|
34
|
+
return None
|
|
35
|
+
|
|
36
|
+
def aborted(self) -> bool:
|
|
37
|
+
return self.status == "Aborted"
|
|
38
|
+
|
|
39
|
+
def succeeded(self) -> bool:
|
|
40
|
+
return self.status == "Done"
|
|
41
|
+
|
|
42
|
+
def running(self) -> bool:
|
|
43
|
+
return self.status == "Running"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class MutateResult(ArrowBaseModel):
|
|
47
|
+
mutate_millis: int
|
|
48
|
+
node_properties_written: int
|
|
49
|
+
relationships_written: int
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import json
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
4
|
from pyarrow._flight import Result
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
def deserialize_single(input_stream:
|
|
7
|
+
def deserialize_single(input_stream: list[Result]) -> dict[str, Any]:
|
|
8
8
|
rows = deserialize(input_stream)
|
|
9
9
|
if len(rows) != 1:
|
|
10
10
|
raise ValueError(f"Expected exactly one result, got {len(rows)}")
|
|
@@ -12,8 +12,8 @@ def deserialize_single(input_stream: Iterator[Result]) -> dict[str, Any]:
|
|
|
12
12
|
return rows[0]
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
def deserialize(input_stream:
|
|
15
|
+
def deserialize(input_stream: list[Result]) -> list[dict[str, Any]]:
|
|
16
16
|
def deserialize_row(row: Result): # type:ignore
|
|
17
17
|
return json.loads(row.body.to_pybytes().decode())
|
|
18
18
|
|
|
19
|
-
return [deserialize_row(row) for row in
|
|
19
|
+
return [deserialize_row(row) for row in input_stream]
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
from pandas import ArrowDtype, DataFrame
|
|
5
|
+
from pyarrow._flight import Ticket
|
|
6
|
+
from tenacity import Retrying, retry_if_result, wait_exponential
|
|
7
|
+
|
|
8
|
+
from graphdatascience.arrow_client.authenticated_flight_client import AuthenticatedArrowClient
|
|
9
|
+
from graphdatascience.arrow_client.v2.api_types import JobIdConfig, JobStatus
|
|
10
|
+
from graphdatascience.arrow_client.v2.data_mapper_utils import deserialize_single
|
|
11
|
+
from graphdatascience.query_runner.progress.progress_bar import TqdmProgressBar
|
|
12
|
+
from graphdatascience.query_runner.termination_flag import TerminationFlag
|
|
13
|
+
|
|
14
|
+
JOB_STATUS_ENDPOINT = "v2/jobs.status"
|
|
15
|
+
RESULTS_SUMMARY_ENDPOINT = "v2/results.summary"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class JobClient:
|
|
19
|
+
def __init__(self, progress_bar_options: dict[str, Any] | None = None):
|
|
20
|
+
self._progress_bar_options = progress_bar_options or {}
|
|
21
|
+
|
|
22
|
+
@staticmethod
|
|
23
|
+
def run_job_and_wait(
|
|
24
|
+
client: AuthenticatedArrowClient, endpoint: str, config: dict[str, Any], show_progress: bool
|
|
25
|
+
) -> str:
|
|
26
|
+
job_id = JobClient.run_job(client, endpoint, config)
|
|
27
|
+
JobClient().wait_for_job(client, job_id, show_progress=show_progress)
|
|
28
|
+
return job_id
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def run_job(client: AuthenticatedArrowClient, endpoint: str, config: dict[str, Any]) -> str:
|
|
32
|
+
res = client.do_action_with_retry(endpoint, config)
|
|
33
|
+
|
|
34
|
+
single = deserialize_single(res)
|
|
35
|
+
return JobIdConfig(**single).job_id
|
|
36
|
+
|
|
37
|
+
def wait_for_job(
|
|
38
|
+
self,
|
|
39
|
+
client: AuthenticatedArrowClient,
|
|
40
|
+
job_id: str,
|
|
41
|
+
show_progress: bool,
|
|
42
|
+
termination_flag: TerminationFlag | None = None,
|
|
43
|
+
) -> None:
|
|
44
|
+
progress_bar: TqdmProgressBar | None = None
|
|
45
|
+
|
|
46
|
+
if termination_flag is None:
|
|
47
|
+
termination_flag = TerminationFlag.create()
|
|
48
|
+
|
|
49
|
+
for attempt in Retrying(retry=retry_if_result(lambda _: True), wait=wait_exponential(min=0.1, max=5)):
|
|
50
|
+
with attempt:
|
|
51
|
+
termination_flag.assert_running()
|
|
52
|
+
|
|
53
|
+
arrow_res = client.do_action_with_retry(JOB_STATUS_ENDPOINT, JobIdConfig(jobId=job_id).dump_camel())
|
|
54
|
+
job_status = JobStatus(**deserialize_single(arrow_res))
|
|
55
|
+
|
|
56
|
+
if job_status.succeeded() or job_status.aborted():
|
|
57
|
+
if progress_bar:
|
|
58
|
+
progress_bar.finish(success=job_status.succeeded())
|
|
59
|
+
return
|
|
60
|
+
|
|
61
|
+
if show_progress:
|
|
62
|
+
if progress_bar is None:
|
|
63
|
+
base_task = job_status.base_task()
|
|
64
|
+
if base_task:
|
|
65
|
+
progress_bar = TqdmProgressBar(
|
|
66
|
+
task_name=base_task,
|
|
67
|
+
relative_progress=job_status.progress_percent(),
|
|
68
|
+
bar_options=self._progress_bar_options,
|
|
69
|
+
)
|
|
70
|
+
if progress_bar:
|
|
71
|
+
progress_bar.update(job_status.status, job_status.progress_percent(), job_status.sub_tasks())
|
|
72
|
+
|
|
73
|
+
@staticmethod
|
|
74
|
+
def get_summary(client: AuthenticatedArrowClient, job_id: str) -> dict[str, Any]:
|
|
75
|
+
res = client.do_action_with_retry(RESULTS_SUMMARY_ENDPOINT, JobIdConfig(jobId=job_id).dump_camel())
|
|
76
|
+
return deserialize_single(res)
|
|
77
|
+
|
|
78
|
+
@staticmethod
|
|
79
|
+
def stream_results(client: AuthenticatedArrowClient, graph_name: str, job_id: str) -> DataFrame:
|
|
80
|
+
payload = {
|
|
81
|
+
"graphName": graph_name,
|
|
82
|
+
"jobId": job_id,
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
res = client.do_action_with_retry("v2/results.stream", payload)
|
|
86
|
+
export_job_id = JobIdConfig(**deserialize_single(res)).job_id
|
|
87
|
+
|
|
88
|
+
stream_payload = {"version": "v2", "name": export_job_id, "body": {}}
|
|
89
|
+
|
|
90
|
+
ticket = Ticket(json.dumps(stream_payload).encode("utf-8"))
|
|
91
|
+
|
|
92
|
+
get = client.get_stream(ticket)
|
|
93
|
+
arrow_table = get.read_all()
|
|
94
|
+
return arrow_table.to_pandas(types_mapper=ArrowDtype) # type: ignore
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import math
|
|
2
|
+
import time
|
|
3
|
+
|
|
4
|
+
from graphdatascience.arrow_client.authenticated_flight_client import AuthenticatedArrowClient
|
|
5
|
+
from graphdatascience.arrow_client.v2.api_types import MutateResult
|
|
6
|
+
from graphdatascience.arrow_client.v2.data_mapper_utils import deserialize_single
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class MutationClient:
|
|
10
|
+
MUTATE_ENDPOINT = "v2/results.mutate"
|
|
11
|
+
|
|
12
|
+
@staticmethod
|
|
13
|
+
def mutate_node_property(client: AuthenticatedArrowClient, job_id: str, mutate_property: str) -> MutateResult:
|
|
14
|
+
return MutationClient._mutate(
|
|
15
|
+
client=client,
|
|
16
|
+
job_id=job_id,
|
|
17
|
+
mutate_property=mutate_property,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@staticmethod
|
|
21
|
+
def mutate_relationship_property(
|
|
22
|
+
client: AuthenticatedArrowClient,
|
|
23
|
+
job_id: str,
|
|
24
|
+
mutate_relationship_type: str,
|
|
25
|
+
mutate_property: str | None,
|
|
26
|
+
) -> MutateResult:
|
|
27
|
+
return MutationClient._mutate(
|
|
28
|
+
client=client,
|
|
29
|
+
job_id=job_id,
|
|
30
|
+
mutate_property=mutate_property,
|
|
31
|
+
mutate_relationship_type=mutate_relationship_type,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
@staticmethod
|
|
35
|
+
def _mutate(
|
|
36
|
+
client: AuthenticatedArrowClient,
|
|
37
|
+
job_id: str,
|
|
38
|
+
mutate_property: str | None = None,
|
|
39
|
+
mutate_relationship_type: str | None = None,
|
|
40
|
+
) -> MutateResult:
|
|
41
|
+
mutate_config = {
|
|
42
|
+
"jobId": job_id,
|
|
43
|
+
}
|
|
44
|
+
if mutate_relationship_type:
|
|
45
|
+
mutate_config["mutateRelationshipType"] = mutate_relationship_type
|
|
46
|
+
if mutate_property:
|
|
47
|
+
mutate_config["mutateProperty"] = mutate_property
|
|
48
|
+
|
|
49
|
+
start_time = time.time()
|
|
50
|
+
mutate_arrow_res = client.do_action_with_retry(MutationClient.MUTATE_ENDPOINT, mutate_config)
|
|
51
|
+
mutate_millis = math.ceil((time.time() - start_time) * 1000)
|
|
52
|
+
return MutateResult(mutateMillis=mutate_millis, **deserialize_single(mutate_arrow_res))
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import time
|
|
4
|
-
from typing import Any
|
|
4
|
+
from typing import Any
|
|
5
5
|
|
|
6
6
|
from graphdatascience import QueryRunner
|
|
7
7
|
from graphdatascience.arrow_client.authenticated_flight_client import AuthenticatedArrowClient
|
|
8
8
|
from graphdatascience.call_parameters import CallParameters
|
|
9
9
|
from graphdatascience.procedure_surface.api.base_result import BaseResult
|
|
10
10
|
from graphdatascience.query_runner.protocol.write_protocols import WriteProtocol
|
|
11
|
-
from graphdatascience.query_runner.termination_flag import
|
|
11
|
+
from graphdatascience.query_runner.termination_flag import TerminationFlag
|
|
12
12
|
from graphdatascience.session.dbms.protocol_resolver import ProtocolVersionResolver
|
|
13
13
|
|
|
14
14
|
|
|
@@ -20,14 +20,14 @@ class RemoteWriteBackClient:
|
|
|
20
20
|
protocol_version = ProtocolVersionResolver(query_runner).resolve()
|
|
21
21
|
self._write_protocol = WriteProtocol.select(protocol_version)
|
|
22
22
|
|
|
23
|
-
# TODO: Add progress logging
|
|
24
23
|
def write(
|
|
25
24
|
self,
|
|
26
25
|
graph_name: str,
|
|
27
26
|
job_id: str,
|
|
28
|
-
concurrency:
|
|
29
|
-
property_overwrites:
|
|
30
|
-
relationship_type_overwrite:
|
|
27
|
+
concurrency: int | None = None,
|
|
28
|
+
property_overwrites: dict[str, str] | None = None,
|
|
29
|
+
relationship_type_overwrite: str | None = None,
|
|
30
|
+
log_progress: bool = True,
|
|
31
31
|
) -> WriteBackResult:
|
|
32
32
|
arrow_config = self._arrow_configuration()
|
|
33
33
|
|
|
@@ -49,7 +49,11 @@ class RemoteWriteBackClient:
|
|
|
49
49
|
start_time = time.time()
|
|
50
50
|
|
|
51
51
|
result = self._write_protocol.run_write_back(
|
|
52
|
-
self._query_runner,
|
|
52
|
+
self._query_runner,
|
|
53
|
+
write_back_params,
|
|
54
|
+
None,
|
|
55
|
+
log_progress=log_progress,
|
|
56
|
+
terminationFlag=TerminationFlag.create(),
|
|
53
57
|
).squeeze()
|
|
54
58
|
write_millis = int((time.time() - start_time) * 1000)
|
|
55
59
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from collections import OrderedDict
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
from uuid import uuid4
|
|
4
4
|
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ class CallParameters(OrderedDict[str, Any]):
|
|
|
9
9
|
def placeholder_str(self) -> str:
|
|
10
10
|
return ", ".join([f"${k}" for k in self.keys()])
|
|
11
11
|
|
|
12
|
-
def get_job_id(self) ->
|
|
12
|
+
def get_job_id(self) -> str | None:
|
|
13
13
|
config = self["config"] if "config" in self else {}
|
|
14
14
|
|
|
15
15
|
job_id = None
|
{graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/error/cypher_warning_handler.py
RENAMED
|
@@ -27,6 +27,17 @@ def filter_id_func_deprecation_warning() -> Callable[[F], F]:
|
|
|
27
27
|
message=r"The query used a deprecated function. \('id'.*",
|
|
28
28
|
)
|
|
29
29
|
|
|
30
|
+
# with neo4j driver 6.0.0
|
|
31
|
+
warnings.filterwarnings(
|
|
32
|
+
"ignore",
|
|
33
|
+
message=r"warn: feature deprecated with replacement\. id is deprecated. It is replaced by elementId or consider using an application-generated id\.",
|
|
34
|
+
)
|
|
35
|
+
# with neo4j driver 6.0.0 + Neo4j 5.X
|
|
36
|
+
warnings.filterwarnings(
|
|
37
|
+
"ignore",
|
|
38
|
+
message=r"warn: feature deprecated without replacement\. id is deprecated and will be removed without a replacement\.",
|
|
39
|
+
)
|
|
40
|
+
|
|
30
41
|
return func(self, *args, **kwargs)
|
|
31
42
|
|
|
32
43
|
return cast(F, wrapper)
|
{graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/base_graph_proc_runner.py
RENAMED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import builtins
|
|
3
4
|
import os
|
|
4
5
|
import pathlib
|
|
5
6
|
import warnings
|
|
6
|
-
from typing import Any
|
|
7
|
+
from typing import Any
|
|
7
8
|
|
|
8
9
|
import pandas as pd
|
|
9
10
|
from multimethod import multimethod
|
|
@@ -36,7 +37,7 @@ from .graph_type_check import (
|
|
|
36
37
|
)
|
|
37
38
|
from .ogb_loader import OGBLLoader, OGBNLoader
|
|
38
39
|
|
|
39
|
-
Strings =
|
|
40
|
+
Strings = str | list[str]
|
|
40
41
|
|
|
41
42
|
is_neo4j_4_driver = ServerVersion.from_string(neo4j_driver_version) < ServerVersion(5, 0, 0)
|
|
42
43
|
|
|
@@ -63,10 +64,10 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
63
64
|
def construct(
|
|
64
65
|
self,
|
|
65
66
|
graph_name: str,
|
|
66
|
-
nodes:
|
|
67
|
-
relationships:
|
|
67
|
+
nodes: DataFrame | list[DataFrame],
|
|
68
|
+
relationships: DataFrame | list[DataFrame] | None = None,
|
|
68
69
|
concurrency: int = 4,
|
|
69
|
-
undirected_relationship_types:
|
|
70
|
+
undirected_relationship_types: list[str] | None = None,
|
|
70
71
|
) -> Graph:
|
|
71
72
|
nodes = nodes if isinstance(nodes, list) else [nodes]
|
|
72
73
|
|
|
@@ -292,11 +293,11 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
292
293
|
|
|
293
294
|
def drop(
|
|
294
295
|
self,
|
|
295
|
-
graph:
|
|
296
|
+
graph: Graph | str,
|
|
296
297
|
failIfMissing: bool = False,
|
|
297
298
|
dbName: str = "",
|
|
298
|
-
username:
|
|
299
|
-
) ->
|
|
299
|
+
username: str | None = None,
|
|
300
|
+
) -> Series[Any] | None:
|
|
300
301
|
self._namespace += ".drop"
|
|
301
302
|
|
|
302
303
|
if isinstance(graph, Graph):
|
|
@@ -328,7 +329,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
328
329
|
|
|
329
330
|
return result.squeeze() # type: ignore
|
|
330
331
|
|
|
331
|
-
def list(self, G:
|
|
332
|
+
def list(self, G: Graph | str | None = None) -> DataFrame:
|
|
332
333
|
self._namespace += ".list"
|
|
333
334
|
|
|
334
335
|
if isinstance(G, Graph):
|
|
@@ -413,7 +414,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
413
414
|
def streamNodeProperties(
|
|
414
415
|
self,
|
|
415
416
|
G: Graph,
|
|
416
|
-
node_properties:
|
|
417
|
+
node_properties: builtins.list[str],
|
|
417
418
|
node_labels: Strings = ["*"],
|
|
418
419
|
separate_property_columns: bool = False,
|
|
419
420
|
**config: Any,
|
|
@@ -449,7 +450,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
449
450
|
def streamRelationshipProperties(
|
|
450
451
|
self,
|
|
451
452
|
G: Graph,
|
|
452
|
-
relationship_properties:
|
|
453
|
+
relationship_properties: builtins.list[str],
|
|
453
454
|
relationship_types: Strings = ["*"],
|
|
454
455
|
separate_property_columns: bool = False,
|
|
455
456
|
**config: Any,
|
|
@@ -489,10 +490,10 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
489
490
|
def writeNodeProperties(
|
|
490
491
|
self,
|
|
491
492
|
G: Graph,
|
|
492
|
-
node_properties:
|
|
493
|
+
node_properties: builtins.list[str],
|
|
493
494
|
node_labels: Strings = ["*"],
|
|
494
495
|
**config: Any,
|
|
495
|
-
) ->
|
|
496
|
+
) -> Series[Any]:
|
|
496
497
|
self._namespace += ".writeNodeProperties"
|
|
497
498
|
|
|
498
499
|
return self._handle_properties(G, node_properties, node_labels, config).squeeze() # type: ignore
|
|
@@ -503,7 +504,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
503
504
|
relationship_type: str,
|
|
504
505
|
relationship_property: str = "",
|
|
505
506
|
**config: Any,
|
|
506
|
-
) ->
|
|
507
|
+
) -> Series[Any]:
|
|
507
508
|
self._namespace += ".writeRelationship"
|
|
508
509
|
params = CallParameters(
|
|
509
510
|
graph_name=G.name(),
|
|
@@ -525,7 +526,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
525
526
|
def _(
|
|
526
527
|
self,
|
|
527
528
|
G: Graph,
|
|
528
|
-
node_properties:
|
|
529
|
+
node_properties: builtins.list[str],
|
|
529
530
|
**config: Any,
|
|
530
531
|
) -> Series: # type: ignore
|
|
531
532
|
self._namespace += ".removeNodeProperties"
|
|
@@ -546,7 +547,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
546
547
|
def _(
|
|
547
548
|
self,
|
|
548
549
|
G: Graph,
|
|
549
|
-
node_properties:
|
|
550
|
+
node_properties: builtins.list[str],
|
|
550
551
|
node_labels: Strings,
|
|
551
552
|
**config: Any,
|
|
552
553
|
) -> Series: # type: ignore
|
|
@@ -555,7 +556,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
555
556
|
return self._handle_properties(G, node_properties, node_labels, config).squeeze() # type: ignore
|
|
556
557
|
|
|
557
558
|
@graph_type_check
|
|
558
|
-
def deleteRelationships(self, G: Graph, relationship_type: str) ->
|
|
559
|
+
def deleteRelationships(self, G: Graph, relationship_type: str) -> Series[Any]:
|
|
559
560
|
self._namespace += ".deleteRelationships"
|
|
560
561
|
|
|
561
562
|
params = CallParameters(
|
{graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_alpha_proc_runner.py
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import os
|
|
2
|
-
from typing import Optional, Union
|
|
3
2
|
|
|
4
3
|
from pandas import DataFrame
|
|
5
4
|
|
|
@@ -36,10 +35,10 @@ class GraphAlphaProcRunner(UncallableNamespace, IllegalAttrChecker):
|
|
|
36
35
|
def construct(
|
|
37
36
|
self,
|
|
38
37
|
graph_name: str,
|
|
39
|
-
nodes:
|
|
40
|
-
relationships:
|
|
38
|
+
nodes: DataFrame | list[DataFrame],
|
|
39
|
+
relationships: DataFrame | list[DataFrame],
|
|
41
40
|
concurrency: int = 4,
|
|
42
|
-
undirected_relationship_types:
|
|
41
|
+
undirected_relationship_types: list[str] | None = None,
|
|
43
42
|
) -> Graph:
|
|
44
43
|
nodes = nodes if isinstance(nodes, list) else [nodes]
|
|
45
44
|
relationships = relationships if isinstance(relationships, list) else [relationships]
|
{graphdatascience-1.17 → graphdatascience-1.18a1}/graphdatascience/graph/graph_beta_proc_runner.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any
|
|
1
|
+
from typing import Any
|
|
2
2
|
|
|
3
3
|
from ..call_parameters import CallParameters
|
|
4
4
|
from ..error.illegal_attr_checker import IllegalAttrChecker
|
|
@@ -9,7 +9,7 @@ from .graph_export_runner import GraphExportCsvEndpoints
|
|
|
9
9
|
from .graph_object import Graph
|
|
10
10
|
from .graph_project_runner import GraphProjectBetaRunner
|
|
11
11
|
|
|
12
|
-
Strings =
|
|
12
|
+
Strings = str | list[str]
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class GraphBetaProcRunner(UncallableNamespace, IllegalAttrChecker):
|