graphdatascience 1.20a2__tar.gz → 1.21a1__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.20a2/src/graphdatascience.egg-info → graphdatascience-1.21a1}/PKG-INFO +1 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/pyproject.toml +5 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/arrow_info.py +4 -3
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_cypher_runner.py +7 -7
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_entity_ops_runner.py +2 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/v2/graph_api.py +1 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph_data_science.py +28 -17
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/graph_info.py +1 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/utils/result_utils.py +2 -0
- graphdatascience-1.21a1/src/graphdatascience/query_runner/__init__.py +5 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/arrow_query_runner.py +20 -5
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/cypher_graph_constructor.py +4 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/db_environment_resolver.py +6 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/neo4j_query_runner.py +41 -10
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/progress/query_progress_logger.py +0 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/protocol/project_protocols.py +19 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/protocol/write_protocols.py +6 -6
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/query_runner.py +10 -5
- graphdatascience-1.21a1/src/graphdatascience/query_runner/query_type.py +9 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/session_query_runner.py +37 -15
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/standalone_session_query_runner.py +16 -5
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/aura_graph_data_science.py +7 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/dbms/protocol_resolver.py +2 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/system/system_endpoints.py +4 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/topological_lp/topological_lp_alpha_runner.py +3 -4
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/topological_lp/topological_lp_runner.py +14 -4
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/utils/direct_util_endpoints.py +5 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/utils/util_proc_runner.py +3 -12
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/utils/util_remote_proc_runner.py +7 -2
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/version.py +1 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1/src/graphdatascience.egg-info}/PKG-INFO +1 -1
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience.egg-info/SOURCES.txt +1 -0
- graphdatascience-1.20a2/src/graphdatascience/utils/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/LICENSE +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/MANIFEST.in +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/README.md +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/setup.cfg +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/algo/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/algo/algo_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/algo/algo_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/algo/single_mode_algo_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/arrow_authentication.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/arrow_base_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/arrow_client_options_util.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/arrow_endpoint_version.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/authenticated_flight_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/middleware/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/middleware/auth_middleware.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/middleware/user_agent_middleware.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/progress_callback.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v1/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v1/data_mapper_utils.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v1/gds_arrow_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/api_types.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/data_mapper_utils.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/gds_arrow_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/job_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/mutation_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/v2/remote_write_back_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/call_builder.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/call_parameters.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/caller_base.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/datasets/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/datasets/graph_constructor_func.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/datasets/nx_loader.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/datasets/ogb_loader.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/datasets/simple_file_loader.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/client_only_endpoint.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/cypher_warning_handler.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/endpoint_suggester.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/gds_not_installed.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/illegal_attr_checker.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/unable_to_connect.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/error/uncallable_namespace.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/base_graph_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_alpha_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_beta_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_create_result.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_export_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_object.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_project_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_remote_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_remote_project_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_sample_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/graph_type_check.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/nx_loader.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/ogb_loader.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/v2/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/v2/graph_backend.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph/v2/graph_backend_cypher.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/ignored_server_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/graphsage_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/link_prediction_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/model_alpha_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/model_beta_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/model_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/model_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/model_resolver.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/node_classification_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/node_regression_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/pipeline_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/simple_rel_embedding_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/v2/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/v2/graphsage_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/v2/model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/v2/model_api.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/model/v2/model_details.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/classification_training_pipeline.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/lp_pipeline_create_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/lp_training_pipeline.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/nc_pipeline_create_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/nc_training_pipeline.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/nr_pipeline_create_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/nr_training_pipeline.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/pipeline_alpha_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/pipeline_beta_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/pipeline_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/pipeline_proc_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/pipeline/training_pipeline.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/plugin_v2_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/base_result.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/catalog_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/dataset_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/graph_sampling_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/node_label_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/node_properties_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/relationships_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/scale_properties_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/catalog/scaler_config.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/articlerank_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/articulationpoints_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/betweenness_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/bridges_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/celf_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/closeness_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/closeness_harmonic_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/degree_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/eigenvector_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/centrality/pagerank_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/clique_counting_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/conductance_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/hdbscan_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/k1coloring_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/kcore_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/kmeans_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/labelpropagation_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/leiden_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/local_clustering_coefficient_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/louvain_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/maxkcut_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/modularity_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/modularity_optimization_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/scc_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/sllpa_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/triangle_count_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/community/wcc_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/config_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/default_values.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/estimation_result.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/model/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/model/graphsage_model.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/model/model_catalog_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/fastrp_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/graphsage_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/graphsage_predict_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/graphsage_train_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/hashgnn_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/node_embedding/node2vec_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/all_shortest_path_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/bfs_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/dag_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/dfs_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/dijkstra_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/k_spanning_tree_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/longest_path_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/max_flow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/max_flow_min_cost_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/prize_steiner_tree_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/shortest_path_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/single_source_bellman_ford_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/single_source_delta_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/single_source_dijkstra_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/source_target_astar_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/source_target_dijkstra_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/source_target_yens_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/spanning_tree_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/pathfinding/steiner_tree_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/knn_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/knn_filtered_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/knn_results.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/node_similarity_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/node_similarity_filtered_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/similarity/node_similarity_results.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/api/system_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/catalog_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/graph_backend_arrow.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/graph_ops_arrow.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/graph_sampling_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/node_label_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/node_properties_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/relationship_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/catalog/scale_properties_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/articlerank_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/articulationpoints_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/betweenness_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/bridges_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/celf_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/closeness_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/closeness_harmonic_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/degree_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/eigenvector_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/centrality/pagerank_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/clique_counting_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/conductance_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/hdbscan_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/k1coloring_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/kcore_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/kmeans_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/labelpropagation_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/leiden_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/local_clustering_coefficient_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/louvain_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/maxkcut_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/modularity_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/modularity_optimization_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/scc_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/sllpa_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/triangle_count_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/community/wcc_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/config_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/endpoints_helper_base.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/error_handler.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/model/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/model/model_catalog_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/model_api_arrow.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/fastrp_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/graphsage_predict_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/graphsage_train_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/hashgnn_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_embedding/node2vec_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/node_property_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/all_shortest_path_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/bfs_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/dag_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/dfs_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/dijkstra_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/k_spanning_tree_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/longest_path_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/max_flow_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/max_flow_min_cost_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/prize_steiner_tree_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/shortest_path_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/single_source_bellman_ford_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/single_source_delta_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/single_source_dijkstra_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/source_target_astar_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/source_target_dijkstra_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/source_target_yens_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/spanning_tree_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/pathfinding/steiner_tree_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/relationship_endpoints_helper.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/similarity/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/similarity/knn_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/similarity/knn_filtered_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/similarity/node_similarity_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/similarity/node_similarity_filtered_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/stream_result_mapper.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/system_arrow_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/arrow/table_endpoints_helper.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/catalog_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/graph_sampling_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/node_label_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/node_properties_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/relationship_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/scale_properties_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/catalog/utils.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/articlerank_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/articulationpoints_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/betweenness_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/bridges_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/celf_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/closeness_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/closeness_harmonic_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/degree_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/eigenvector_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/centrality/pagerank_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/clique_counting_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/conductance_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/hdbscan_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/k1coloring_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/kcore_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/kmeans_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/labelpropagation_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/leiden_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/local_clustering_coefficient_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/louvain_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/maxkcut_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/modularity_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/modularity_optimization_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/scc_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/sllpa_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/triangle_count_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/community/wcc_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/config_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/estimation_utils.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/model/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/model/model_catalog_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/model_api_cypher.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/fastrp_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/graphsage_predict_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/graphsage_train_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/hashgnn_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/node_embedding/node2vec_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/all_shortest_path_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/bfs_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/dag_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/dfs_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/dijkstra_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/k_spanning_tree_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/longest_path_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/max_flow_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/max_flow_min_cost_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/prize_steiner_tree_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/shortest_path_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/single_source_bellman_ford_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/single_source_delta_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/single_source_dijkstra_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/source_target_astar_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/source_target_dijkstra_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/source_target_yens_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/spanning_tree_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/pathfinding/steiner_tree_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/similarity/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/similarity/knn_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/similarity/knn_filtered_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/similarity/node_similarity_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/similarity/node_similarity_filtered_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/cypher/system_cypher_endpoints.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/utils/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/procedure_surface/utils/config_converter.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/py.typed +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/arrow_authentication/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/arrow_graph_constructor.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/arrow_info/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/gds_arrow_client.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/graph_constructor.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/query_runner → graphdatascience-1.21a1/src/graphdatascience/query_runner/progress}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/progress/progress_bar.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/progress/progress_provider.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/progress/query_progress_provider.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/progress/static_progress_provider.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/query_runner/progress → graphdatascience-1.21a1/src/graphdatascience/query_runner/protocol}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/protocol/status.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/query_mode.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/query_runner/termination_flag.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/query_runner/protocol → graphdatascience-1.21a1/src/graphdatascience/resources}/__init__.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/resources → graphdatascience-1.21a1/src/graphdatascience/resources/cora}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/cora/cora_nodes.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/cora/cora_rels.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/cora/serialize_cora.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/resources/cora → graphdatascience-1.21a1/src/graphdatascience/resources/imdb}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/imdb_acted_in.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/imdb_actors.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/imdb_directed_in.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/imdb_directors.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/imdb_movies_with_genre.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/imdb_movies_without_genre.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/imdb/serialize_imdb.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/resources/imdb → graphdatascience-1.21a1/src/graphdatascience/resources/karate}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/karate/karate_club.parquet.gzip +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/resources/karate → graphdatascience-1.21a1/src/graphdatascience/resources/lastfm}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/lastfm/artist_nodes.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/lastfm/serialize_lastfm.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/lastfm/user_friend_df_directed.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/lastfm/user_listen_artist_rels.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/lastfm/user_nodes.parquet.gzip +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/resources/lastfm/user_tag_artist_rels.parquet.gzip +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/resources/lastfm → graphdatascience-1.21a1/src/graphdatascience/retry_utils}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/retry_utils/neo4j_retry_helper.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/retry_utils/retry_config.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/retry_utils/retry_utils.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/retry_utils → graphdatascience-1.21a1/src/graphdatascience/semantic_version}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/semantic_version/semantic_version.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/semantic_version → graphdatascience-1.21a1/src/graphdatascience/server_version}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/server_version/compatible_with.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/server_version/server_version.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/algorithm_category.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/aura_api.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/aura_api_responses.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/aura_api_token_authentication.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/aurads_sessions.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/cloud_location.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/server_version → graphdatascience-1.21a1/src/graphdatascience/session/dbms}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/dbms/protocol_version.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/dbms_connection_info.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/dedicated_sessions.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/gds_sessions.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/region_suggester.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/session_info.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/session_lifecycle_manager.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/session_sizes.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/session/session_v2_endpoints.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/session/dbms → graphdatascience-1.21a1/src/graphdatascience/system}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/system/config_endpoints.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/system → graphdatascience-1.21a1/src/graphdatascience/topological_lp}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/topological_lp/topological_lp_alpha_endpoints.py +0 -0
- {graphdatascience-1.20a2/src/graphdatascience/topological_lp → graphdatascience-1.21a1/src/graphdatascience/utils}/__init__.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/utils/util_node_property_func_runner.py +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience.egg-info/dependency_links.txt +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience.egg-info/not-zip-safe +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience.egg-info/requires.txt +0 -0
- {graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience.egg-info/top_level.txt +0 -0
|
@@ -54,8 +54,6 @@ rust-ext = ["neo4j-rust-ext >= 4.4.12, < 7.0"]
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
[dependency-groups]
|
|
57
|
-
# To install all development dependencies,
|
|
58
|
-
# run `pip install --group dev -e .` inside repository root folder.#
|
|
59
57
|
dev = [
|
|
60
58
|
"tox>4.24",
|
|
61
59
|
{ include-group = "dev-base" },
|
|
@@ -89,6 +87,7 @@ docs-ci = [
|
|
|
89
87
|
"sphinx == 7.3.7",
|
|
90
88
|
"enum-tools[sphinx]==0.13.0",
|
|
91
89
|
"autodoc_pydantic",
|
|
90
|
+
"networkx >= 2.0, < 4.0"
|
|
92
91
|
]
|
|
93
92
|
notebook-base = [
|
|
94
93
|
"nbconvert==7.16.6",
|
|
@@ -111,6 +110,10 @@ notebook-ci = [
|
|
|
111
110
|
|
|
112
111
|
publish = ["build", "twine"]
|
|
113
112
|
|
|
113
|
+
[tool.uv.extra-build-dependencies]
|
|
114
|
+
torch-sparse = ["torch"]
|
|
115
|
+
torch-scatter = ["torch"]
|
|
116
|
+
|
|
114
117
|
[tool.setuptools]
|
|
115
118
|
include-package-data = true
|
|
116
119
|
zip-safe = false
|
{graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/arrow_client/arrow_info.py
RENAMED
|
@@ -2,8 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
5
|
-
from
|
|
6
|
-
from
|
|
5
|
+
from graphdatascience.query_runner.query_runner import QueryRunner
|
|
6
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
7
|
+
from graphdatascience.server_version.server_version import ServerVersion
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
@dataclass(frozen=True)
|
|
@@ -20,7 +21,7 @@ class ArrowInfo:
|
|
|
20
21
|
debugYields.append("versions")
|
|
21
22
|
|
|
22
23
|
procResult = query_runner.call_procedure(
|
|
23
|
-
endpoint="gds.debug.arrow", custom_error=False, yields=debugYields
|
|
24
|
+
endpoint="gds.debug.arrow", query_type=QueryType.SYSTEM, custom_error=False, yields=debugYields
|
|
24
25
|
).iloc[0]
|
|
25
26
|
|
|
26
27
|
return ArrowInfo(
|
|
@@ -6,13 +6,13 @@ from typing import Any
|
|
|
6
6
|
|
|
7
7
|
from pandas import Series
|
|
8
8
|
|
|
9
|
+
from graphdatascience.caller_base import CallerBase
|
|
10
|
+
from graphdatascience.graph.graph_create_result import GraphCreateResult
|
|
11
|
+
from graphdatascience.graph.graph_object import Graph
|
|
9
12
|
from graphdatascience.query_runner.query_mode import QueryMode
|
|
10
|
-
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from ..server_version.server_version import ServerVersion
|
|
14
|
-
from .graph_create_result import GraphCreateResult
|
|
15
|
-
from .graph_object import Graph
|
|
13
|
+
from graphdatascience.query_runner.query_runner import QueryRunner
|
|
14
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
15
|
+
from graphdatascience.server_version.server_version import ServerVersion
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class GraphCypherRunner(CallerBase):
|
|
@@ -48,7 +48,7 @@ class GraphCypherRunner(CallerBase):
|
|
|
48
48
|
GraphCypherRunner._verify_query_ends_with_return_clause(self._namespace, query)
|
|
49
49
|
|
|
50
50
|
result: dict[str, Any] | None = self._query_runner.run_retryable_cypher(
|
|
51
|
-
query, params, database, custom_error=False, mode=QueryMode.READ
|
|
51
|
+
query, QueryType.USER_DIRECTED, params, database, custom_error=False, mode=QueryMode.READ
|
|
52
52
|
).squeeze()
|
|
53
53
|
|
|
54
54
|
if not result:
|
|
@@ -8,6 +8,7 @@ import pandas as pd
|
|
|
8
8
|
from pandas import DataFrame, Series
|
|
9
9
|
|
|
10
10
|
from graphdatascience.query_runner.query_mode import QueryMode
|
|
11
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
11
12
|
|
|
12
13
|
from ..call_parameters import CallParameters
|
|
13
14
|
from ..error.cypher_warning_handler import (
|
|
@@ -169,6 +170,7 @@ class GraphNodePropertiesRunner(GraphEntityOpsBaseRunner):
|
|
|
169
170
|
|
|
170
171
|
db_properties_df = query_runner.run_retryable_cypher(
|
|
171
172
|
GraphNodePropertiesRunner._build_query(db_node_properties),
|
|
173
|
+
QueryType.USER_TRANSPILED,
|
|
172
174
|
params={"ids": unique_node_ids},
|
|
173
175
|
mode=QueryMode.READ,
|
|
174
176
|
)
|
{graphdatascience-1.20a2 → graphdatascience-1.21a1}/src/graphdatascience/graph_data_science.py
RENAMED
|
@@ -22,6 +22,7 @@ from .query_runner.arrow_info import ArrowInfo
|
|
|
22
22
|
from .query_runner.arrow_query_runner import ArrowQueryRunner
|
|
23
23
|
from .query_runner.neo4j_query_runner import Neo4jQueryRunner
|
|
24
24
|
from .query_runner.query_runner import QueryRunner
|
|
25
|
+
from .query_runner.query_type import QueryType
|
|
25
26
|
from .server_version.server_version import ServerVersion
|
|
26
27
|
from .utils.util_proc_runner import UtilProcRunner
|
|
27
28
|
from .version import __min_server_version__
|
|
@@ -93,7 +94,7 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
|
|
|
93
94
|
if isinstance(endpoint, QueryRunner):
|
|
94
95
|
self._query_runner = endpoint
|
|
95
96
|
else:
|
|
96
|
-
db_auth = None
|
|
97
|
+
db_auth: neo4j.Auth | None = None
|
|
97
98
|
if auth:
|
|
98
99
|
db_auth = neo4j.basic_auth(*auth)
|
|
99
100
|
neo4j_query_runner = Neo4jQueryRunner.create_for_db(
|
|
@@ -118,21 +119,29 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
|
|
|
118
119
|
if auth is not None:
|
|
119
120
|
username, password = auth
|
|
120
121
|
arrow_auth = UsernamePasswordAuthentication(username, password)
|
|
122
|
+
if isinstance(endpoint, Neo4jQueryRunner):
|
|
123
|
+
if neo4j_auth := endpoint.get_auth():
|
|
124
|
+
arrow_auth = UsernamePasswordAuthentication(neo4j_auth[0], neo4j_auth[1])
|
|
121
125
|
|
|
122
|
-
if
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
126
|
+
if isinstance(endpoint, Driver) and not auth:
|
|
127
|
+
warnings.warn(
|
|
128
|
+
"Falling back to use Cypher for GDS. To use Arrow, you must explicitly provide the `auth` parameter."
|
|
129
|
+
)
|
|
130
|
+
else:
|
|
131
|
+
if arrow_client_options is None:
|
|
132
|
+
arrow_client_options = {}
|
|
133
|
+
if arrow_disable_server_verification:
|
|
134
|
+
disable_server_verification(arrow_client_options)
|
|
135
|
+
if arrow_tls_root_certs is not None:
|
|
136
|
+
set_tls_root_certs(arrow_client_options, arrow_tls_root_certs)
|
|
137
|
+
self._query_runner = ArrowQueryRunner.create(
|
|
138
|
+
self._query_runner,
|
|
139
|
+
arrow_info=arrow_info,
|
|
140
|
+
arrow_authentication=arrow_auth,
|
|
141
|
+
encrypted=self._query_runner.encrypted(),
|
|
142
|
+
arrow_client_options=arrow_client_options,
|
|
143
|
+
connection_string_override=None if arrow is True else arrow,
|
|
144
|
+
)
|
|
136
145
|
|
|
137
146
|
arrow_client = (
|
|
138
147
|
None if not isinstance(self._query_runner, ArrowQueryRunner) else self._query_runner._gds_arrow_client
|
|
@@ -258,15 +267,16 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
|
|
|
258
267
|
The query result as a DataFrame
|
|
259
268
|
"""
|
|
260
269
|
qr = self._query_runner
|
|
270
|
+
query_type = QueryType.USER_DIRECTED
|
|
261
271
|
|
|
262
272
|
# The Arrow query runner should not be used to execute arbitrary Cypher
|
|
263
273
|
if isinstance(self._query_runner, ArrowQueryRunner):
|
|
264
274
|
qr = self._query_runner.fallback_query_runner()
|
|
265
275
|
|
|
266
276
|
if retryable:
|
|
267
|
-
return qr.run_retryable_cypher(query, params, database, custom_error=False, mode=mode)
|
|
277
|
+
return qr.run_retryable_cypher(query, query_type, params, database, custom_error=False, mode=mode)
|
|
268
278
|
else:
|
|
269
|
-
return qr.run_cypher(query, params, database, custom_error=False, mode=mode)
|
|
279
|
+
return qr.run_cypher(query, query_type, params, database, custom_error=False, mode=mode)
|
|
270
280
|
|
|
271
281
|
def driver_config(self) -> dict[str, Any]:
|
|
272
282
|
"""
|
|
@@ -310,6 +320,7 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
|
|
|
310
320
|
The Neo4j Driver instance to use.
|
|
311
321
|
auth : tuple[str, str] | None, default None
|
|
312
322
|
A username, password pair for authentication.
|
|
323
|
+
Is required for enabling Arrow.
|
|
313
324
|
database: str | None, default None
|
|
314
325
|
The Neo4j database to query against.
|
|
315
326
|
arrow : str | bool, default True
|
|
@@ -15,7 +15,7 @@ class GraphInfo(BaseResult):
|
|
|
15
15
|
database: str
|
|
16
16
|
database_location: str
|
|
17
17
|
configuration: dict[str, Any]
|
|
18
|
-
memory_usage: str
|
|
18
|
+
memory_usage: str | None # can be none if there was an error computing the usage
|
|
19
19
|
size_in_bytes: int
|
|
20
20
|
node_count: int
|
|
21
21
|
relationship_count: int
|
|
@@ -4,6 +4,7 @@ from pandas import DataFrame
|
|
|
4
4
|
|
|
5
5
|
from graphdatascience.query_runner.query_mode import QueryMode
|
|
6
6
|
from graphdatascience.query_runner.query_runner import QueryRunner
|
|
7
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
def transpose_property_columns(result: DataFrame, list_node_labels: bool) -> DataFrame:
|
|
@@ -25,6 +26,7 @@ def join_db_node_properties(result: DataFrame, db_node_properties: list[str], qu
|
|
|
25
26
|
query = _build_query(db_node_properties)
|
|
26
27
|
db_properties_df = query_runner.run_retryable_cypher(
|
|
27
28
|
query,
|
|
29
|
+
QueryType.USER_TRANSPILED,
|
|
28
30
|
params={"ids": (result["nodeId"].tolist())},
|
|
29
31
|
mode=QueryMode.READ,
|
|
30
32
|
)
|
|
@@ -9,6 +9,7 @@ from graphdatascience.arrow_client.authenticated_flight_client import Authentica
|
|
|
9
9
|
from graphdatascience.arrow_client.v1.gds_arrow_client import GdsArrowClient
|
|
10
10
|
from graphdatascience.query_runner.arrow_authentication import ArrowAuthentication
|
|
11
11
|
from graphdatascience.query_runner.query_mode import QueryMode
|
|
12
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
12
13
|
from graphdatascience.retry_utils.retry_config import RetryConfigV2
|
|
13
14
|
|
|
14
15
|
from ..call_parameters import CallParameters
|
|
@@ -64,31 +65,38 @@ class ArrowQueryRunner(QueryRunner):
|
|
|
64
65
|
def run_cypher(
|
|
65
66
|
self,
|
|
66
67
|
query: str,
|
|
68
|
+
query_type: QueryType,
|
|
67
69
|
params: dict[str, Any] | None = None,
|
|
68
70
|
database: str | None = None,
|
|
69
71
|
mode: QueryMode | None = None,
|
|
70
72
|
custom_error: bool = True,
|
|
71
73
|
) -> DataFrame:
|
|
72
|
-
return self._fallback_query_runner.run_cypher(
|
|
74
|
+
return self._fallback_query_runner.run_cypher(
|
|
75
|
+
query, query_type, params, database, mode, custom_error=custom_error
|
|
76
|
+
)
|
|
73
77
|
|
|
74
78
|
def run_retryable_cypher(
|
|
75
79
|
self,
|
|
76
80
|
query: str,
|
|
81
|
+
query_type: QueryType,
|
|
77
82
|
params: dict[str, Any] | None = None,
|
|
78
83
|
database: str | None = None,
|
|
79
84
|
mode: QueryMode | None = None,
|
|
80
85
|
custom_error: bool = True,
|
|
81
86
|
) -> DataFrame:
|
|
82
87
|
return self._fallback_query_runner.run_retryable_cypher(
|
|
83
|
-
query, params, database, mode, custom_error=custom_error
|
|
88
|
+
query, query_type, params, database, mode, custom_error=custom_error
|
|
84
89
|
)
|
|
85
90
|
|
|
86
|
-
def call_function(
|
|
87
|
-
|
|
91
|
+
def call_function(
|
|
92
|
+
self, endpoint: str, query_type: QueryType = QueryType.USER_TRANSPILED, params: CallParameters | None = None
|
|
93
|
+
) -> Any:
|
|
94
|
+
return self._fallback_query_runner.call_function(endpoint, query_type, params)
|
|
88
95
|
|
|
89
96
|
def call_procedure(
|
|
90
97
|
self,
|
|
91
98
|
endpoint: str,
|
|
99
|
+
query_type: QueryType = QueryType.USER_TRANSPILED,
|
|
92
100
|
params: CallParameters | None = None,
|
|
93
101
|
yields: list[str] | None = None,
|
|
94
102
|
database: str | None = None,
|
|
@@ -189,7 +197,14 @@ class ArrowQueryRunner(QueryRunner):
|
|
|
189
197
|
)
|
|
190
198
|
|
|
191
199
|
return self._fallback_query_runner.call_procedure(
|
|
192
|
-
endpoint,
|
|
200
|
+
endpoint,
|
|
201
|
+
query_type,
|
|
202
|
+
params,
|
|
203
|
+
yields,
|
|
204
|
+
database,
|
|
205
|
+
logging=logging,
|
|
206
|
+
retryable=retryable,
|
|
207
|
+
custom_error=custom_error,
|
|
193
208
|
)
|
|
194
209
|
|
|
195
210
|
def server_version(self) -> ServerVersion:
|
|
@@ -12,6 +12,7 @@ from graphdatascience.query_runner.query_mode import QueryMode
|
|
|
12
12
|
from ..server_version.server_version import ServerVersion
|
|
13
13
|
from .graph_constructor import GraphConstructor
|
|
14
14
|
from .query_runner import QueryRunner
|
|
15
|
+
from .query_type import QueryType
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class CypherProjectionApi:
|
|
@@ -107,6 +108,7 @@ class CypherGraphConstructor(GraphConstructor):
|
|
|
107
108
|
try:
|
|
108
109
|
license: str = self._query_runner.run_retryable_cypher(
|
|
109
110
|
"CALL gds.debug.sysInfo() YIELD key, value WHERE key = 'gdsEdition' RETURN value",
|
|
111
|
+
QueryType.SYSTEM,
|
|
110
112
|
custom_error=False,
|
|
111
113
|
mode=QueryMode.READ,
|
|
112
114
|
).squeeze()
|
|
@@ -215,6 +217,7 @@ class CypherGraphConstructor(GraphConstructor):
|
|
|
215
217
|
# not using retryable here as gds.graph.project adds a graph to the gds graph catalog
|
|
216
218
|
self._query_runner.run_cypher(
|
|
217
219
|
query,
|
|
220
|
+
QueryType.USER_TRANSPILED,
|
|
218
221
|
{
|
|
219
222
|
"data": combined_df.values.tolist(),
|
|
220
223
|
"graph_name": self._graph_name,
|
|
@@ -377,6 +380,7 @@ class CypherGraphConstructor(GraphConstructor):
|
|
|
377
380
|
|
|
378
381
|
self._query_runner.run_cypher(
|
|
379
382
|
query,
|
|
383
|
+
QueryType.USER_TRANSPILED,
|
|
380
384
|
{
|
|
381
385
|
"graph_name": self._graph_name,
|
|
382
386
|
"node_query": node_query,
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
from graphdatascience.query_runner.neo4j_query_runner import Neo4jQueryRunner
|
|
2
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class DbEnvironmentResolver:
|
|
5
6
|
@staticmethod
|
|
6
7
|
def hosted_in_aura(db_runner: Neo4jQueryRunner) -> bool:
|
|
7
8
|
return (
|
|
8
|
-
db_runner.run_retryable_cypher(
|
|
9
|
+
db_runner.run_retryable_cypher(
|
|
10
|
+
"""
|
|
9
11
|
CALL dbms.components() YIELD name, versions
|
|
10
12
|
WHERE name = "Neo4j Kernel"
|
|
11
13
|
UNWIND versions as v
|
|
12
14
|
WITH name, v
|
|
13
15
|
WHERE v ENDS WITH "aura"
|
|
14
16
|
RETURN count(*) <> 0
|
|
15
|
-
"""
|
|
17
|
+
""",
|
|
18
|
+
QueryType.SYSTEM,
|
|
19
|
+
)
|
|
16
20
|
.iloc[0]
|
|
17
21
|
.item()
|
|
18
22
|
) is True
|
|
@@ -11,6 +11,8 @@ from pandas import DataFrame
|
|
|
11
11
|
from tenacity import retry, retry_if_exception, stop_after_delay, wait_fixed
|
|
12
12
|
|
|
13
13
|
from graphdatascience.query_runner.query_mode import QueryMode
|
|
14
|
+
from graphdatascience.query_runner.query_runner import QueryRunner
|
|
15
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
14
16
|
from graphdatascience.retry_utils.neo4j_retry_helper import is_retryable_neo4j_exception
|
|
15
17
|
|
|
16
18
|
from ..call_parameters import CallParameters
|
|
@@ -23,7 +25,6 @@ from ..version import __version__
|
|
|
23
25
|
from .cypher_graph_constructor import CypherGraphConstructor
|
|
24
26
|
from .graph_constructor import GraphConstructor
|
|
25
27
|
from .progress.query_progress_logger import QueryProgressLogger
|
|
26
|
-
from .query_runner import QueryRunner
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
class Neo4jQueryRunner(QueryRunner):
|
|
@@ -155,12 +156,24 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
155
156
|
# progress logging should not retry a lot as it perodically fetches the latest progress anyway
|
|
156
157
|
connectivity_retry_config = Neo4jQueryRunner.ConnectivityRetriesConfig(max_retries=2)
|
|
157
158
|
# not using retryable cypher as failing is okay
|
|
158
|
-
return self.run_cypher(
|
|
159
|
+
return self.run_cypher(
|
|
160
|
+
query=query,
|
|
161
|
+
query_type=QueryType.USER_TRANSPILED,
|
|
162
|
+
database=database,
|
|
163
|
+
connectivity_retry_config=connectivity_retry_config,
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
def get_auth(self) -> tuple[str, str] | None:
|
|
167
|
+
if isinstance(self._auth, neo4j.Auth):
|
|
168
|
+
return self._auth.principal, self._auth.credentials
|
|
169
|
+
else:
|
|
170
|
+
return self._auth
|
|
159
171
|
|
|
160
172
|
# only use for user defined queries
|
|
161
173
|
def run_cypher(
|
|
162
174
|
self,
|
|
163
175
|
query: str,
|
|
176
|
+
query_type: QueryType,
|
|
164
177
|
params: dict[str, Any] | None = None,
|
|
165
178
|
database: str | None = None,
|
|
166
179
|
mode: QueryMode | None = None,
|
|
@@ -186,7 +199,7 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
186
199
|
default_access_mode=mode.neo4j_access_mode(),
|
|
187
200
|
) as session:
|
|
188
201
|
try:
|
|
189
|
-
result = session.run(query, params)
|
|
202
|
+
result = session.run(self._wrap_query(query, query_type), params)
|
|
190
203
|
except Exception as e:
|
|
191
204
|
if custom_error:
|
|
192
205
|
self.handle_driver_exception(session, e)
|
|
@@ -211,6 +224,7 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
211
224
|
def run_retryable_cypher(
|
|
212
225
|
self,
|
|
213
226
|
query: str,
|
|
227
|
+
query_type: QueryType,
|
|
214
228
|
params: dict[str, Any] | None = None,
|
|
215
229
|
database: str | None = None,
|
|
216
230
|
mode: QueryMode | None = None,
|
|
@@ -221,7 +235,7 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
221
235
|
database = self._database
|
|
222
236
|
|
|
223
237
|
if self._NEO4J_DRIVER_VERSION < SemanticVersion(5, 5, 0):
|
|
224
|
-
return self.run_cypher(query, params, database, mode, custom_error, connectivity_retry_config)
|
|
238
|
+
return self.run_cypher(query, query_type, params, database, mode, custom_error, connectivity_retry_config)
|
|
225
239
|
|
|
226
240
|
if not mode:
|
|
227
241
|
routing = neo4j.RoutingControl.WRITE
|
|
@@ -232,7 +246,7 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
232
246
|
bookmark_manager = neo4j.GraphDatabase.bookmark_manager(self.bookmarks())
|
|
233
247
|
|
|
234
248
|
result = self._driver.execute_query(
|
|
235
|
-
query_=query,
|
|
249
|
+
query_=self._wrap_query(query, query_type),
|
|
236
250
|
parameters_=params,
|
|
237
251
|
database_=database,
|
|
238
252
|
result_transformer_=neo4j.Result.to_df,
|
|
@@ -250,17 +264,26 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
250
264
|
else:
|
|
251
265
|
raise e
|
|
252
266
|
|
|
253
|
-
def call_function(
|
|
267
|
+
def call_function(
|
|
268
|
+
self,
|
|
269
|
+
endpoint: str,
|
|
270
|
+
query_type: QueryType = QueryType.USER_TRANSPILED,
|
|
271
|
+
params: CallParameters | None = None,
|
|
272
|
+
custom_error: bool = True,
|
|
273
|
+
) -> Any:
|
|
254
274
|
if params is None:
|
|
255
275
|
params = CallParameters()
|
|
256
276
|
query = f"RETURN {endpoint}({params.placeholder_str()})"
|
|
257
277
|
|
|
258
278
|
# we can use retryable cypher as we expect all gds functions to be idempotent
|
|
259
|
-
return self.run_retryable_cypher(
|
|
279
|
+
return self.run_retryable_cypher(
|
|
280
|
+
query, query_type, params, custom_error=custom_error, mode=QueryMode.READ
|
|
281
|
+
).squeeze()
|
|
260
282
|
|
|
261
283
|
def call_procedure(
|
|
262
284
|
self,
|
|
263
285
|
endpoint: str,
|
|
286
|
+
query_type: QueryType = QueryType.USER_TRANSPILED,
|
|
264
287
|
params: CallParameters | None = None,
|
|
265
288
|
yields: list[str] | None = None,
|
|
266
289
|
database: str | None = None,
|
|
@@ -277,9 +300,11 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
277
300
|
|
|
278
301
|
def run_cypher_query() -> DataFrame:
|
|
279
302
|
if retryable:
|
|
280
|
-
return self.run_retryable_cypher(
|
|
303
|
+
return self.run_retryable_cypher(
|
|
304
|
+
query, query_type, params, database, custom_error=custom_error, mode=mode
|
|
305
|
+
)
|
|
281
306
|
else:
|
|
282
|
-
return self.run_cypher(query, params, database, custom_error=custom_error)
|
|
307
|
+
return self.run_cypher(query, query_type, params, database, custom_error=custom_error)
|
|
283
308
|
|
|
284
309
|
job_id = None if not params else params.get_job_id()
|
|
285
310
|
if self._resolve_show_progress(logging) and job_id:
|
|
@@ -295,7 +320,7 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
295
320
|
return self._server_version
|
|
296
321
|
|
|
297
322
|
try:
|
|
298
|
-
server_version_string = self.call_function("gds.version", custom_error=False)
|
|
323
|
+
server_version_string = self.call_function("gds.version", query_type=QueryType.SYSTEM, custom_error=False)
|
|
299
324
|
server_version = ServerVersion.from_string(server_version_string)
|
|
300
325
|
self._server_version = server_version
|
|
301
326
|
return server_version
|
|
@@ -501,6 +526,12 @@ class Neo4jQueryRunner(QueryRunner):
|
|
|
501
526
|
warnings.filterwarnings("ignore", message=r".*returned by the procedure.* is deprecated.*")
|
|
502
527
|
warnings.filterwarnings("ignore", message=r".*procedure field deprecated..*")
|
|
503
528
|
|
|
529
|
+
def _wrap_query(self, query: str, query_type: QueryType) -> neo4j.Query:
|
|
530
|
+
return neo4j.Query(
|
|
531
|
+
text=query, # type: ignore[assignment]
|
|
532
|
+
metadata={"app": f"gds-v{__version__}", "type": query_type.value},
|
|
533
|
+
)
|
|
534
|
+
|
|
504
535
|
class ConnectivityRetriesConfig(NamedTuple):
|
|
505
536
|
max_retries: int = 600
|
|
506
537
|
wait_time: int = 1
|
|
@@ -22,7 +22,6 @@ class QueryProgressLogger:
|
|
|
22
22
|
polling_interval: float = 0.5,
|
|
23
23
|
progress_bar_options: dict[str, Any] = {},
|
|
24
24
|
):
|
|
25
|
-
self._run_cypher_func = run_cypher_func
|
|
26
25
|
self._server_version_func = server_version_func
|
|
27
26
|
self._static_progress_provider = StaticProgressProvider()
|
|
28
27
|
self._query_progress_provider = QueryProgressProvider(run_cypher_func, server_version_func)
|
|
@@ -8,6 +8,7 @@ from tenacity import retry, retry_if_result
|
|
|
8
8
|
from graphdatascience.call_parameters import CallParameters
|
|
9
9
|
from graphdatascience.query_runner.protocol.status import Status
|
|
10
10
|
from graphdatascience.query_runner.query_runner import QueryRunner
|
|
11
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
11
12
|
from graphdatascience.query_runner.termination_flag import TerminationFlag
|
|
12
13
|
from graphdatascience.retry_utils.retry_utils import before_log, job_wait_strategy
|
|
13
14
|
from graphdatascience.session.dbms.protocol_version import ProtocolVersion
|
|
@@ -69,7 +70,14 @@ class ProjectProtocolV1(ProjectProtocol):
|
|
|
69
70
|
) -> DataFrame:
|
|
70
71
|
versioned_endpoint = ProtocolVersion.V1.versioned_procedure_name(endpoint)
|
|
71
72
|
return query_runner.call_procedure(
|
|
72
|
-
versioned_endpoint,
|
|
73
|
+
versioned_endpoint,
|
|
74
|
+
QueryType.USER_TRANSPILED,
|
|
75
|
+
params,
|
|
76
|
+
yields,
|
|
77
|
+
database=database,
|
|
78
|
+
logging=logging,
|
|
79
|
+
retryable=False,
|
|
80
|
+
custom_error=False,
|
|
73
81
|
)
|
|
74
82
|
|
|
75
83
|
|
|
@@ -102,7 +110,14 @@ class ProjectProtocolV2(ProjectProtocol):
|
|
|
102
110
|
) -> DataFrame:
|
|
103
111
|
versioned_endpoint = ProtocolVersion.V2.versioned_procedure_name(endpoint)
|
|
104
112
|
return query_runner.call_procedure(
|
|
105
|
-
versioned_endpoint,
|
|
113
|
+
versioned_endpoint,
|
|
114
|
+
QueryType.USER_TRANSPILED,
|
|
115
|
+
params,
|
|
116
|
+
yields,
|
|
117
|
+
database=database,
|
|
118
|
+
logging=logging,
|
|
119
|
+
retryable=False,
|
|
120
|
+
custom_error=False,
|
|
106
121
|
)
|
|
107
122
|
|
|
108
123
|
|
|
@@ -144,6 +159,7 @@ class ProjectProtocolV3(ProjectProtocol):
|
|
|
144
159
|
# We need to pin the driver to a specific cluster member
|
|
145
160
|
response = query_runner.call_procedure(
|
|
146
161
|
ProtocolVersion.V3.versioned_procedure_name(endpoint),
|
|
162
|
+
QueryType.USER_TRANSPILED,
|
|
147
163
|
params,
|
|
148
164
|
yields,
|
|
149
165
|
database,
|
|
@@ -165,6 +181,7 @@ class ProjectProtocolV3(ProjectProtocol):
|
|
|
165
181
|
termination_flag.assert_running()
|
|
166
182
|
return projection_query_runner.call_procedure(
|
|
167
183
|
ProtocolVersion.V3.versioned_procedure_name(endpoint),
|
|
184
|
+
QueryType.USER_TRANSPILED,
|
|
168
185
|
params,
|
|
169
186
|
yields,
|
|
170
187
|
database=database,
|
|
@@ -75,8 +75,8 @@ class RemoteWriteBackV1(WriteProtocol):
|
|
|
75
75
|
) -> DataFrame:
|
|
76
76
|
return query_runner.call_procedure(
|
|
77
77
|
ProtocolVersion.V1.versioned_procedure_name("gds.arrow.write"),
|
|
78
|
-
parameters,
|
|
79
|
-
yields,
|
|
78
|
+
params=parameters,
|
|
79
|
+
yields=yields,
|
|
80
80
|
retryable=False,
|
|
81
81
|
database=None,
|
|
82
82
|
logging=False,
|
|
@@ -116,8 +116,8 @@ class RemoteWriteBackV2(WriteProtocol):
|
|
|
116
116
|
) -> DataFrame:
|
|
117
117
|
return query_runner.call_procedure(
|
|
118
118
|
ProtocolVersion.V2.versioned_procedure_name("gds.arrow.write"),
|
|
119
|
-
parameters,
|
|
120
|
-
yields,
|
|
119
|
+
params=parameters,
|
|
120
|
+
yields=yields,
|
|
121
121
|
retryable=False,
|
|
122
122
|
database=None,
|
|
123
123
|
logging=False,
|
|
@@ -168,8 +168,8 @@ class RemoteWriteBackV3(WriteProtocol):
|
|
|
168
168
|
terminationFlag.assert_running()
|
|
169
169
|
result = query_runner.call_procedure(
|
|
170
170
|
ProtocolVersion.V3.versioned_procedure_name("gds.arrow.write"),
|
|
171
|
-
parameters,
|
|
172
|
-
yields,
|
|
171
|
+
params=parameters,
|
|
172
|
+
yields=yields,
|
|
173
173
|
retryable=True,
|
|
174
174
|
logging=False,
|
|
175
175
|
mode=QueryMode.WRITE,
|
|
@@ -3,11 +3,11 @@ from typing import Any
|
|
|
3
3
|
|
|
4
4
|
from pandas import DataFrame
|
|
5
5
|
|
|
6
|
+
from graphdatascience.call_parameters import CallParameters
|
|
7
|
+
from graphdatascience.query_runner.graph_constructor import GraphConstructor
|
|
6
8
|
from graphdatascience.query_runner.query_mode import QueryMode
|
|
7
|
-
|
|
8
|
-
from
|
|
9
|
-
from ..server_version.server_version import ServerVersion
|
|
10
|
-
from .graph_constructor import GraphConstructor
|
|
9
|
+
from graphdatascience.query_runner.query_type import QueryType
|
|
10
|
+
from graphdatascience.server_version.server_version import ServerVersion
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class QueryRunner(ABC):
|
|
@@ -15,6 +15,7 @@ class QueryRunner(ABC):
|
|
|
15
15
|
def call_procedure(
|
|
16
16
|
self,
|
|
17
17
|
endpoint: str,
|
|
18
|
+
query_type: QueryType = QueryType.USER_TRANSPILED,
|
|
18
19
|
params: CallParameters | None = None,
|
|
19
20
|
yields: list[str] | None = None,
|
|
20
21
|
database: str | None = None,
|
|
@@ -26,13 +27,16 @@ class QueryRunner(ABC):
|
|
|
26
27
|
pass
|
|
27
28
|
|
|
28
29
|
@abstractmethod
|
|
29
|
-
def call_function(
|
|
30
|
+
def call_function(
|
|
31
|
+
self, endpoint: str, query_type: QueryType = QueryType.USER_TRANSPILED, params: CallParameters | None = None
|
|
32
|
+
) -> Any:
|
|
30
33
|
pass
|
|
31
34
|
|
|
32
35
|
@abstractmethod
|
|
33
36
|
def run_cypher(
|
|
34
37
|
self,
|
|
35
38
|
query: str,
|
|
39
|
+
query_type: QueryType,
|
|
36
40
|
params: dict[str, Any] | None = None,
|
|
37
41
|
database: str | None = None,
|
|
38
42
|
mode: QueryMode | None = None,
|
|
@@ -44,6 +48,7 @@ class QueryRunner(ABC):
|
|
|
44
48
|
def run_retryable_cypher(
|
|
45
49
|
self,
|
|
46
50
|
query: str,
|
|
51
|
+
query_type: QueryType,
|
|
47
52
|
params: dict[str, Any] | None = None,
|
|
48
53
|
database: str | None = None,
|
|
49
54
|
mode: QueryMode | None = None,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# following https://neo4j.com/docs/operations-manual/current/monitoring/logging/#attach-metadata-tx
|
|
5
|
+
class QueryType(Enum):
|
|
6
|
+
SYSTEM = "system" # a query automatically run by the app.
|
|
7
|
+
USER_DIRECTED = "user-direct" # a query the user directly submitted to/through the app.
|
|
8
|
+
USER_ACTION = "user-action" # a query resulting from an action the user performed.
|
|
9
|
+
USER_TRANSPILED = "user-transpiled" # a query that has been derived from the user input.
|