graphdatascience 1.11a4__tar.gz → 1.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. {graphdatascience-1.11a4 → graphdatascience-1.12}/MANIFEST.in +1 -0
  2. {graphdatascience-1.11a4/graphdatascience.egg-info → graphdatascience-1.12}/PKG-INFO +3 -1
  3. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/algo/algo_proc_runner.py +1 -1
  4. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/base_graph_proc_runner.py +6 -6
  5. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_alpha_proc_runner.py +1 -1
  6. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_beta_proc_runner.py +4 -4
  7. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_cypher_runner.py +1 -1
  8. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_entity_ops_runner.py +4 -4
  9. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_object.py +2 -4
  10. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_proc_runner.py +2 -2
  11. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_project_runner.py +4 -4
  12. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_remote_project_runner.py +6 -6
  13. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_sample_runner.py +4 -4
  14. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/nx_loader.py +1 -1
  15. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/ogb_loader.py +1 -1
  16. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph_data_science.py +46 -9
  17. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/graphsage_model.py +1 -1
  18. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/model.py +1 -1
  19. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/model_alpha_proc_runner.py +1 -1
  20. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/model_beta_proc_runner.py +1 -1
  21. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/model_proc_runner.py +1 -1
  22. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/node_classification_model.py +1 -1
  23. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/classification_training_pipeline.py +1 -1
  24. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/lp_pipeline_create_runner.py +1 -1
  25. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/lp_training_pipeline.py +1 -1
  26. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/nc_training_pipeline.py +1 -1
  27. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/nr_training_pipeline.py +1 -1
  28. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/pipeline_proc_runner.py +2 -2
  29. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/training_pipeline.py +2 -4
  30. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/arrow_graph_constructor.py +10 -7
  31. graphdatascience-1.12/graphdatascience/query_runner/arrow_info.py +32 -0
  32. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/arrow_query_runner.py +12 -6
  33. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/cypher_graph_constructor.py +1 -1
  34. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/gds_arrow_client.py +76 -33
  35. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/neo4j_query_runner.py +52 -88
  36. graphdatascience-1.12/graphdatascience/query_runner/progress/progress_provider.py +16 -0
  37. graphdatascience-1.12/graphdatascience/query_runner/progress/query_progress_logger.py +105 -0
  38. graphdatascience-1.12/graphdatascience/query_runner/progress/query_progress_provider.py +36 -0
  39. graphdatascience-1.12/graphdatascience/query_runner/progress/static_progress_provider.py +27 -0
  40. graphdatascience-1.12/graphdatascience/query_runner/protocol/project_protocols.py +88 -0
  41. graphdatascience-1.12/graphdatascience/query_runner/protocol/write_protocols.py +96 -0
  42. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/query_runner.py +4 -0
  43. graphdatascience-1.11a4/graphdatascience/query_runner/aura_db_query_runner.py → graphdatascience-1.12/graphdatascience/query_runner/session_query_runner.py +73 -22
  44. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/__init__.py +2 -0
  45. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/aura_api.py +108 -47
  46. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/aura_api_responses.py +10 -5
  47. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/aura_graph_data_science.py +81 -51
  48. graphdatascience-1.12/graphdatascience/session/cloud_location.py +15 -0
  49. graphdatascience-1.12/graphdatascience/session/dbms/__init__.py +0 -0
  50. graphdatascience-1.12/graphdatascience/session/dbms/protocol_resolver.py +62 -0
  51. graphdatascience-1.12/graphdatascience/session/dbms/protocol_version.py +18 -0
  52. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/dbms_connection_info.py +2 -1
  53. graphdatascience-1.12/graphdatascience/session/dedicated_sessions.py +161 -0
  54. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/gds_sessions.py +23 -12
  55. graphdatascience-1.12/graphdatascience/session/session_info.py +54 -0
  56. graphdatascience-1.12/graphdatascience/system/__init__.py +0 -0
  57. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/system/config_endpoints.py +6 -6
  58. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/system/system_endpoints.py +2 -2
  59. graphdatascience-1.12/graphdatascience/topological_lp/__init__.py +0 -0
  60. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/topological_lp/topological_lp_alpha_runner.py +3 -3
  61. graphdatascience-1.12/graphdatascience/utils/__init__.py +0 -0
  62. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/utils/direct_util_endpoints.py +3 -3
  63. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/utils/util_node_property_func_runner.py +4 -4
  64. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/utils/util_proc_runner.py +1 -1
  65. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/utils/util_remote_proc_runner.py +4 -4
  66. graphdatascience-1.12/graphdatascience/version.py +2 -0
  67. {graphdatascience-1.11a4 → graphdatascience-1.12/graphdatascience.egg-info}/PKG-INFO +3 -1
  68. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience.egg-info/SOURCES.txt +16 -2
  69. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience.egg-info/requires.txt +3 -0
  70. graphdatascience-1.12/pyproject.toml +55 -0
  71. graphdatascience-1.12/requirements/base/rust-ext.txt +2 -0
  72. {graphdatascience-1.11a4 → graphdatascience-1.12}/setup.py +4 -1
  73. graphdatascience-1.11a4/graphdatascience/session/aurads_sessions.py +0 -212
  74. graphdatascience-1.11a4/graphdatascience/session/dedicated_sessions.py +0 -170
  75. graphdatascience-1.11a4/graphdatascience/session/session_info.py +0 -41
  76. graphdatascience-1.11a4/graphdatascience/version.py +0 -1
  77. graphdatascience-1.11a4/pyproject.toml +0 -9
  78. {graphdatascience-1.11a4 → graphdatascience-1.12}/LICENSE +0 -0
  79. {graphdatascience-1.11a4 → graphdatascience-1.12}/README.md +0 -0
  80. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/__init__.py +0 -0
  81. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/algo/__init__.py +0 -0
  82. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/algo/algo_endpoints.py +0 -0
  83. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/algo/single_mode_algo_endpoints.py +0 -0
  84. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/call_builder.py +0 -0
  85. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/call_parameters.py +0 -0
  86. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/caller_base.py +0 -0
  87. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/endpoints.py +0 -0
  88. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/__init__.py +0 -0
  89. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/client_only_endpoint.py +0 -0
  90. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/cypher_warning_handler.py +0 -0
  91. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/endpoint_suggester.py +0 -0
  92. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/gds_not_installed.py +0 -0
  93. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/illegal_attr_checker.py +0 -0
  94. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/unable_to_connect.py +0 -0
  95. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/error/uncallable_namespace.py +0 -0
  96. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/__init__.py +0 -0
  97. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_create_result.py +0 -0
  98. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_endpoints.py +0 -0
  99. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_export_runner.py +0 -0
  100. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_remote_proc_runner.py +0 -0
  101. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/graph/graph_type_check.py +0 -0
  102. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/ignored_server_endpoints.py +0 -0
  103. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/__init__.py +0 -0
  104. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/link_prediction_model.py +0 -0
  105. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/model_endpoints.py +0 -0
  106. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/model_resolver.py +0 -0
  107. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/node_regression_model.py +0 -0
  108. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/pipeline_model.py +0 -0
  109. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/model/simple_rel_embedding_model.py +0 -0
  110. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/__init__.py +0 -0
  111. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/nc_pipeline_create_runner.py +0 -0
  112. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/nr_pipeline_create_runner.py +0 -0
  113. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/pipeline_alpha_proc_runner.py +0 -0
  114. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/pipeline_beta_proc_runner.py +0 -0
  115. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/pipeline/pipeline_endpoints.py +0 -0
  116. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/py.typed +0 -0
  117. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/__init__.py +0 -0
  118. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/arrow_endpoint_version.py +0 -0
  119. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/query_runner/graph_constructor.py +0 -0
  120. {graphdatascience-1.11a4/graphdatascience/resources → graphdatascience-1.12/graphdatascience/query_runner/progress}/__init__.py +0 -0
  121. {graphdatascience-1.11a4/graphdatascience/resources/cora → graphdatascience-1.12/graphdatascience/query_runner/protocol}/__init__.py +0 -0
  122. {graphdatascience-1.11a4/graphdatascience/resources/imdb → graphdatascience-1.12/graphdatascience/resources}/__init__.py +0 -0
  123. {graphdatascience-1.11a4/graphdatascience/resources/karate → graphdatascience-1.12/graphdatascience/resources/cora}/__init__.py +0 -0
  124. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/cora/cora_nodes.parquet.gzip +0 -0
  125. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/cora/cora_rels.parquet.gzip +0 -0
  126. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/cora/serialize_cora.py +0 -0
  127. {graphdatascience-1.11a4/graphdatascience/resources/lastfm → graphdatascience-1.12/graphdatascience/resources/imdb}/__init__.py +0 -0
  128. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/imdb_acted_in.parquet.gzip +0 -0
  129. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/imdb_actors.parquet.gzip +0 -0
  130. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/imdb_directed_in.parquet.gzip +0 -0
  131. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/imdb_directors.parquet.gzip +0 -0
  132. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/imdb_movies_with_genre.parquet.gzip +0 -0
  133. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/imdb_movies_without_genre.parquet.gzip +0 -0
  134. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/imdb/serialize_imdb.py +0 -0
  135. {graphdatascience-1.11a4/graphdatascience/server_version → graphdatascience-1.12/graphdatascience/resources/karate}/__init__.py +0 -0
  136. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/karate/karate_club.parquet.gzip +0 -0
  137. {graphdatascience-1.11a4/graphdatascience/system → graphdatascience-1.12/graphdatascience/resources/lastfm}/__init__.py +0 -0
  138. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/lastfm/artist_nodes.parquet.gzip +0 -0
  139. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/lastfm/serialize_lastfm.py +0 -0
  140. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/lastfm/user_friend_df_directed.parquet.gzip +0 -0
  141. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/lastfm/user_listen_artist_rels.parquet.gzip +0 -0
  142. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/lastfm/user_nodes.parquet.gzip +0 -0
  143. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/resources/lastfm/user_tag_artist_rels.parquet.gzip +0 -0
  144. {graphdatascience-1.11a4/graphdatascience/topological_lp → graphdatascience-1.12/graphdatascience/server_version}/__init__.py +0 -0
  145. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/server_version/compatible_with.py +0 -0
  146. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/server_version/server_version.py +0 -0
  147. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/algorithm_category.py +0 -0
  148. /graphdatascience-1.11a4/graphdatascience/utils/__init__.py → /graphdatascience-1.12/graphdatascience/session/aurads_sessions.py +0 -0
  149. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/region_suggester.py +0 -0
  150. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/session/session_sizes.py +0 -0
  151. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience/topological_lp/topological_lp_endpoints.py +0 -0
  152. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience.egg-info/dependency_links.txt +0 -0
  153. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience.egg-info/not-zip-safe +0 -0
  154. {graphdatascience-1.11a4 → graphdatascience-1.12}/graphdatascience.egg-info/top_level.txt +0 -0
  155. {graphdatascience-1.11a4 → graphdatascience-1.12}/requirements/base/base.txt +0 -0
  156. {graphdatascience-1.11a4 → graphdatascience-1.12}/requirements/base/networkx.txt +0 -0
  157. {graphdatascience-1.11a4 → graphdatascience-1.12}/requirements/base/ogb.txt +0 -0
  158. {graphdatascience-1.11a4 → graphdatascience-1.12}/setup.cfg +0 -0
@@ -1,6 +1,7 @@
1
1
  include requirements/base/base.txt
2
2
  include requirements/base/ogb.txt
3
3
  include requirements/base/networkx.txt
4
+ include requirements/base/rust-ext.txt
4
5
  include LICENSE
5
6
  prune graphdatascience/tests
6
7
  prune graphdatascience/resources/cora/serialize_cora.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: graphdatascience
3
- Version: 1.11a4
3
+ Version: 1.12
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
@@ -41,6 +41,8 @@ Provides-Extra: ogb
41
41
  Requires-Dist: ogb<2.0,>=1.0; extra == "ogb"
42
42
  Provides-Extra: networkx
43
43
  Requires-Dist: networkx<4.0,>=2.0; extra == "networkx"
44
+ Provides-Extra: rust-ext
45
+ Requires-Dist: neo4j-rust-ext<6.0,>=4.4.2; extra == "rust-ext"
44
46
 
45
47
  # Neo4j Graph Data Science Client
46
48
 
@@ -3,11 +3,11 @@ from typing import Any, Dict, Tuple
3
3
 
4
4
  from pandas import DataFrame, Series
5
5
 
6
+ from ..call_parameters import CallParameters
6
7
  from ..error.illegal_attr_checker import IllegalAttrChecker
7
8
  from ..graph.graph_object import Graph
8
9
  from ..graph.graph_type_check import graph_type_check
9
10
  from ..model.graphsage_model import GraphSageModel
10
- from graphdatascience.call_parameters import CallParameters
11
11
 
12
12
 
13
13
  class AlgoProcRunner(IllegalAttrChecker, ABC):
@@ -9,11 +9,13 @@ from multimethod import multimethod
9
9
  from neo4j import __version__ as neo4j_driver_version
10
10
  from pandas import DataFrame, Series, read_parquet
11
11
 
12
+ from ..call_parameters import CallParameters
12
13
  from ..error.client_only_endpoint import client_only_endpoint
13
14
  from ..error.illegal_attr_checker import IllegalAttrChecker
14
15
  from ..error.uncallable_namespace import UncallableNamespace
15
16
  from ..server_version.compatible_with import compatible_with
16
17
  from ..server_version.server_version import ServerVersion
18
+ from .graph_create_result import GraphCreateResult
17
19
  from .graph_entity_ops_runner import (
18
20
  GraphLabelRunner,
19
21
  GraphNodePropertiesRunner,
@@ -33,8 +35,6 @@ from .graph_type_check import (
33
35
  graph_type_check_optional,
34
36
  )
35
37
  from .ogb_loader import OGBLLoader, OGBNLoader
36
- from graphdatascience.call_parameters import CallParameters
37
- from graphdatascience.graph.graph_create_result import GraphCreateResult
38
38
 
39
39
  Strings = Union[str, List[str]]
40
40
 
@@ -120,7 +120,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
120
120
  )
121
121
  constructor.run(nodes, relationships)
122
122
 
123
- return Graph(graph_name, self._query_runner, self._server_version)
123
+ return Graph(graph_name, self._query_runner)
124
124
 
125
125
  @client_only_endpoint("gds.graph")
126
126
  def load_cora(self, graph_name: str = "cora", undirected: bool = False) -> Graph:
@@ -250,7 +250,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
250
250
  params=params,
251
251
  ).squeeze()
252
252
 
253
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
253
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
254
254
 
255
255
  @from_graph_type_check
256
256
  @compatible_with("filter", min_inclusive=ServerVersion(2, 5, 0))
@@ -276,7 +276,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
276
276
  params=params,
277
277
  ).squeeze()
278
278
 
279
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
279
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
280
280
 
281
281
  @property
282
282
  def export(self) -> GraphExportRunner:
@@ -357,7 +357,7 @@ class BaseGraphProcRunner(UncallableNamespace, IllegalAttrChecker):
357
357
  f"No projected graph named '{graph_name}' exists in current database '{self._query_runner.database()}'"
358
358
  )
359
359
 
360
- return Graph(graph_name, self._query_runner, self._server_version)
360
+ return Graph(graph_name, self._query_runner)
361
361
 
362
362
  @graph_type_check
363
363
  def _handle_properties(
@@ -79,4 +79,4 @@ class GraphAlphaProcRunner(UncallableNamespace, IllegalAttrChecker):
79
79
  )
80
80
  constructor.run(nodes, relationships)
81
81
 
82
- return Graph(graph_name, self._query_runner, self._server_version)
82
+ return Graph(graph_name, self._query_runner)
@@ -1,13 +1,13 @@
1
1
  from typing import Any, List, Union
2
2
 
3
+ from ..call_parameters import CallParameters
3
4
  from ..error.illegal_attr_checker import IllegalAttrChecker
4
5
  from ..error.uncallable_namespace import UncallableNamespace
6
+ from .graph_create_result import GraphCreateResult
7
+ from .graph_entity_ops_runner import GraphRelationshipsBetaRunner
5
8
  from .graph_export_runner import GraphExportCsvEndpoints
6
9
  from .graph_object import Graph
7
10
  from .graph_project_runner import GraphProjectBetaRunner
8
- from graphdatascience.call_parameters import CallParameters
9
- from graphdatascience.graph.graph_create_result import GraphCreateResult
10
- from graphdatascience.graph.graph_entity_ops_runner import GraphRelationshipsBetaRunner
11
11
 
12
12
  Strings = Union[str, List[str]]
13
13
 
@@ -40,4 +40,4 @@ class GraphBetaProcRunner(UncallableNamespace, IllegalAttrChecker):
40
40
 
41
41
  result = self._query_runner.call_procedure(endpoint=self._namespace, params=params).squeeze()
42
42
 
43
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
43
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
@@ -57,7 +57,7 @@ class GraphCypherRunner(CallerBase):
57
57
  f"Invalid query, the query must end with the `RETURN {self._namespace}(...)` call: {query}"
58
58
  )
59
59
 
60
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), Series(data=result))
60
+ return GraphCreateResult(Graph(graph_name, self._query_runner), Series(data=result))
61
61
 
62
62
  __separators = re.compile(r"[,(.]")
63
63
 
@@ -5,6 +5,10 @@ from warnings import filterwarnings
5
5
  import pandas as pd
6
6
  from pandas import DataFrame, Series
7
7
 
8
+ from ..call_parameters import CallParameters
9
+ from ..error.cypher_warning_handler import (
10
+ filter_id_func_deprecation_warning,
11
+ )
8
12
  from ..error.illegal_attr_checker import IllegalAttrChecker
9
13
  from ..error.uncallable_namespace import UncallableNamespace
10
14
  from ..query_runner.query_runner import QueryRunner
@@ -13,10 +17,6 @@ from ..server_version.server_version import ServerVersion
13
17
  from ..utils.util_proc_runner import UtilProcRunner
14
18
  from .graph_object import Graph
15
19
  from .graph_type_check import graph_type_check
16
- from graphdatascience.call_parameters import CallParameters
17
- from graphdatascience.error.cypher_warning_handler import (
18
- filter_id_func_deprecation_warning,
19
- )
20
20
 
21
21
  Strings = Union[str, List[str]]
22
22
 
@@ -5,9 +5,8 @@ from typing import Any, List, Optional, Type, Union
5
5
 
6
6
  from pandas import Series
7
7
 
8
+ from ..call_parameters import CallParameters
8
9
  from ..query_runner.query_runner import QueryRunner
9
- from ..server_version.server_version import ServerVersion
10
- from graphdatascience.call_parameters import CallParameters
11
10
 
12
11
 
13
12
  class Graph:
@@ -17,11 +16,10 @@ class Graph:
17
16
  It contains summary information about the graph.
18
17
  """
19
18
 
20
- def __init__(self, name: str, query_runner: QueryRunner, server_version: ServerVersion):
19
+ def __init__(self, name: str, query_runner: QueryRunner):
21
20
  self._name = name
22
21
  self._query_runner = query_runner
23
22
  self._db = query_runner.database()
24
- self._server_version = server_version
25
23
 
26
24
  def __enter__(self: Graph) -> Graph:
27
25
  return self
@@ -1,6 +1,6 @@
1
+ from .base_graph_proc_runner import BaseGraphProcRunner
2
+ from .graph_cypher_runner import GraphCypherRunner
1
3
  from .graph_project_runner import GraphProjectRunner
2
- from graphdatascience.graph.base_graph_proc_runner import BaseGraphProcRunner
3
- from graphdatascience.graph.graph_cypher_runner import GraphCypherRunner
4
4
 
5
5
 
6
6
  class GraphProcRunner(BaseGraphProcRunner):
@@ -4,11 +4,11 @@ from typing import Any
4
4
 
5
5
  from pandas import Series
6
6
 
7
+ from ..call_parameters import CallParameters
7
8
  from ..error.illegal_attr_checker import IllegalAttrChecker
9
+ from .graph_create_result import GraphCreateResult
8
10
  from .graph_object import Graph
9
11
  from .graph_type_check import from_graph_type_check
10
- from graphdatascience.call_parameters import CallParameters
11
- from graphdatascience.graph.graph_create_result import GraphCreateResult
12
12
 
13
13
 
14
14
  class GraphProjectRunner(IllegalAttrChecker):
@@ -25,7 +25,7 @@ class GraphProjectRunner(IllegalAttrChecker):
25
25
  logging=True,
26
26
  ).squeeze()
27
27
 
28
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
28
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
29
29
 
30
30
  def estimate(self, node_projection: Any, relationship_projection: Any, **config: Any) -> "Series[Any]":
31
31
  self._namespace += ".estimate"
@@ -69,4 +69,4 @@ class GraphProjectBetaRunner(IllegalAttrChecker):
69
69
  logging=True,
70
70
  ).squeeze()
71
71
 
72
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
72
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
@@ -2,13 +2,13 @@ from __future__ import annotations
2
2
 
3
3
  from typing import List, Optional
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..error.illegal_attr_checker import IllegalAttrChecker
6
- from ..query_runner.aura_db_query_runner import AuraDbQueryRunner
7
+ from ..query_runner.session_query_runner import SessionQueryRunner
7
8
  from ..server_version.compatible_with import compatible_with
9
+ from ..server_version.server_version import ServerVersion
10
+ from .graph_create_result import GraphCreateResult
8
11
  from .graph_object import Graph
9
- from graphdatascience.call_parameters import CallParameters
10
- from graphdatascience.graph.graph_create_result import GraphCreateResult
11
- from graphdatascience.server_version.server_version import ServerVersion
12
12
 
13
13
 
14
14
  class GraphProjectRemoteRunner(IllegalAttrChecker):
@@ -41,7 +41,7 @@ class GraphProjectRemoteRunner(IllegalAttrChecker):
41
41
  )
42
42
 
43
43
  result = self._query_runner.call_procedure(
44
- endpoint=AuraDbQueryRunner.GDS_REMOTE_PROJECTION_PROC_NAME,
44
+ endpoint=SessionQueryRunner.GDS_REMOTE_PROJECTION_PROC_NAME,
45
45
  params=params,
46
46
  ).squeeze()
47
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
47
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
@@ -2,13 +2,13 @@ from typing import Any
2
2
 
3
3
  from pandas import Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..error.illegal_attr_checker import IllegalAttrChecker
6
7
  from ..server_version.compatible_with import compatible_with
7
8
  from ..server_version.server_version import ServerVersion
9
+ from .graph_create_result import GraphCreateResult
8
10
  from .graph_object import Graph
9
11
  from .graph_type_check import from_graph_type_check
10
- from graphdatascience.call_parameters import CallParameters
11
- from graphdatascience.graph.graph_create_result import GraphCreateResult
12
12
 
13
13
 
14
14
  class GraphAlphaSampleRunner(IllegalAttrChecker):
@@ -41,7 +41,7 @@ class RWRRunner(IllegalAttrChecker):
41
41
 
42
42
  result = self._query_runner.call_procedure(endpoint=self._namespace, params=params, logging=True).squeeze()
43
43
 
44
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
44
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
45
45
 
46
46
 
47
47
  class CNARWRunner(IllegalAttrChecker):
@@ -55,7 +55,7 @@ class CNARWRunner(IllegalAttrChecker):
55
55
  )
56
56
  result = self._query_runner.call_procedure(endpoint=self._namespace, params=params, logging=True).squeeze()
57
57
 
58
- return GraphCreateResult(Graph(graph_name, self._query_runner, self._server_version), result)
58
+ return GraphCreateResult(Graph(graph_name, self._query_runner), result)
59
59
 
60
60
  def estimate(self, from_G: Graph, **config: Any) -> "Series[Any]":
61
61
  self._namespace += ".estimate"
@@ -25,7 +25,7 @@ class NXLoader(UncallableNamespace, IllegalAttrChecker):
25
25
  constructor = self._query_runner.create_graph_constructor(graph_name, concurrency, undirected_rel_types)
26
26
  constructor.run(nodes, rels)
27
27
 
28
- return Graph(graph_name, self._query_runner, self._server_version)
28
+ return Graph(graph_name, self._query_runner)
29
29
 
30
30
  @staticmethod
31
31
  def _attr_to_labels_key(labels_attr: Any, node_id: Any, no_node_labels: Optional[bool]) -> Tuple[str, ...]:
@@ -96,7 +96,7 @@ class OGBLoader(UncallableNamespace, IllegalAttrChecker, ABC):
96
96
  constructor = self._query_runner.create_graph_constructor(graph_name, concurrency, [])
97
97
  constructor.run(nodes, rels)
98
98
 
99
- return Graph(graph_name, self._query_runner, self._server_version)
99
+ return Graph(graph_name, self._query_runner)
100
100
 
101
101
 
102
102
  class OGBNLoader(OGBLoader):
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import warnings
3
4
  from typing import Any, Dict, Optional, Tuple, Type, Union
4
5
 
5
6
  from neo4j import Driver
@@ -8,12 +9,14 @@ from pandas import DataFrame
8
9
  from .call_builder import IndirectCallBuilder
9
10
  from .endpoints import AlphaEndpoints, BetaEndpoints, DirectEndpoints
10
11
  from .error.uncallable_namespace import UncallableNamespace
12
+ from .graph.graph_proc_runner import GraphProcRunner
13
+ from .query_runner.arrow_info import ArrowInfo
11
14
  from .query_runner.arrow_query_runner import ArrowQueryRunner
12
15
  from .query_runner.neo4j_query_runner import Neo4jQueryRunner
13
16
  from .query_runner.query_runner import QueryRunner
14
17
  from .server_version.server_version import ServerVersion
15
- from graphdatascience.graph.graph_proc_runner import GraphProcRunner
16
- from graphdatascience.utils.util_proc_runner import UtilProcRunner
18
+ from .utils.util_proc_runner import UtilProcRunner
19
+ from .version import __min_server_version__
17
20
 
18
21
 
19
22
  class GraphDataScience(DirectEndpoints, UncallableNamespace):
@@ -33,6 +36,7 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
33
36
  arrow_disable_server_verification: bool = True,
34
37
  arrow_tls_root_certs: Optional[bytes] = None,
35
38
  bookmarks: Optional[Any] = None,
39
+ show_progress: bool = True,
36
40
  ):
37
41
  """
38
42
  Construct a new GraphDataScience object.
@@ -49,11 +53,12 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
49
53
  database: Optional[str], default None
50
54
  The Neo4j database to query against.
51
55
  arrow : Union[str, bool], default True
52
- Arrow connection information. This is either a bool or a string.
53
- If it is a string, it will be interpreted as a connection URL to a GDS Arrow Server.
54
- If it is a bool,
55
- True will make the client discover the connection URI to the GDS Arrow server via the Neo4j endpoint,
56
- while False will make the client use Bolt for all operations.
56
+ Arrow connection information. This is either a string or a bool.
57
+
58
+ - If it is a string, it will be interpreted as a connection URL to a GDS Arrow Server.
59
+ - If it is a bool:
60
+ - True will make the client discover the connection URI to the GDS Arrow server via the Neo4j endpoint.
61
+ - False will make the client use Bolt for all operations.
57
62
  arrow_disable_server_verification : bool, default True
58
63
  A flag that overrides other TLS settings and disables server verification for TLS connections.
59
64
  arrow_tls_root_certs : Optional[bytes], default None
@@ -61,6 +66,8 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
61
66
  GDS Arrow Flight server.
62
67
  bookmarks : Optional[Any], default None
63
68
  The Neo4j bookmarks to require a certain state before the next query gets executed.
69
+ show_progress : bool, default True
70
+ A flag to indicate whether to show progress bars for running procedures.
64
71
  """
65
72
  if aura_ds:
66
73
  GraphDataScience._validate_endpoint(endpoint)
@@ -68,13 +75,24 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
68
75
  if isinstance(endpoint, QueryRunner):
69
76
  self._query_runner = endpoint
70
77
  else:
71
- self._query_runner = Neo4jQueryRunner.create(endpoint, auth, aura_ds, database, bookmarks)
78
+ self._query_runner = Neo4jQueryRunner.create(endpoint, auth, aura_ds, database, bookmarks, show_progress)
72
79
 
73
80
  self._server_version = self._query_runner.server_version()
74
81
 
75
- if arrow and self._server_version >= ServerVersion(2, 1, 0):
82
+ if self._server_version < ServerVersion.from_string(__min_server_version__):
83
+ warnings.warn(
84
+ DeprecationWarning(
85
+ f"Client does not support the given server version `{self._server_version}`."
86
+ + " We recommend to either update the GDS server version or use a compatible version of the `graphdatascience` package."
87
+ + " Please refer to the compatibility matrix at https://neo4j.com/docs/graph-data-science-client/current/installation/#python-client-system-requirements."
88
+ )
89
+ )
90
+
91
+ arrow_info = ArrowInfo.create(self._query_runner)
92
+ if arrow and arrow_info.enabled and self._server_version >= ServerVersion(2, 1, 0):
76
93
  self._query_runner = ArrowQueryRunner.create(
77
94
  self._query_runner,
95
+ arrow_info,
78
96
  auth,
79
97
  self._query_runner.encrypted(),
80
98
  arrow_disable_server_verification,
@@ -82,6 +100,7 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
82
100
  None if arrow is True else arrow,
83
101
  )
84
102
 
103
+ self._query_runner.set_show_progress(show_progress)
85
104
  super().__init__(self._query_runner, namespace="gds", server_version=self._server_version)
86
105
 
87
106
  @property
@@ -125,6 +144,17 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
125
144
  """
126
145
  self._query_runner.set_bookmarks(bookmarks)
127
146
 
147
+ def set_show_progress(self, show_progress: bool) -> None:
148
+ """
149
+ Set whether to show progress for running procedures.
150
+
151
+ Parameters
152
+ ----------
153
+ show_progress: bool
154
+ Whether to show progress for procedures.
155
+ """
156
+ self._query_runner.set_show_progress(show_progress)
157
+
128
158
  def database(self) -> Optional[str]:
129
159
  """
130
160
  Get the database which queries are run against.
@@ -227,3 +257,10 @@ class GraphDataScience(DirectEndpoints, UncallableNamespace):
227
257
  Close the GraphDataScience object and release any resources held by it.
228
258
  """
229
259
  self._query_runner.close()
260
+
261
+ def __enter__(self) -> GraphDataScience:
262
+ return self
263
+
264
+ def __exit__(self, exc_type, exc_val, exc_tb) -> bool:
265
+ self.close()
266
+ return False
@@ -2,10 +2,10 @@ from typing import Any
2
2
 
3
3
  from pandas import Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..graph.graph_object import Graph
6
7
  from ..graph.graph_type_check import graph_type_check
7
8
  from .model import Model
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class GraphSageModel(Model):
@@ -5,12 +5,12 @@ from typing import Any, Dict
5
5
 
6
6
  from pandas import DataFrame, Series
7
7
 
8
+ from ..call_parameters import CallParameters
8
9
  from ..graph.graph_object import Graph
9
10
  from ..graph.graph_type_check import graph_type_check
10
11
  from ..query_runner.query_runner import QueryRunner
11
12
  from ..server_version.compatible_with import compatible_with
12
13
  from ..server_version.server_version import ServerVersion
13
- from graphdatascience.call_parameters import CallParameters
14
14
 
15
15
 
16
16
  class Model(ABC):
@@ -2,10 +2,10 @@ from typing import Any, Tuple
2
2
 
3
3
  from pandas import Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from .model import Model
6
7
  from .model_proc_runner import ModelProcRunner
7
8
  from .model_resolver import ModelResolver
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class ModelAlphaProcRunner(ModelResolver):
@@ -2,10 +2,10 @@ from typing import Any, Optional
2
2
 
3
3
  from pandas import DataFrame, Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..error.illegal_attr_checker import IllegalAttrChecker
6
7
  from ..error.uncallable_namespace import UncallableNamespace
7
8
  from .model import Model
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class ModelBetaProcRunner(UncallableNamespace, IllegalAttrChecker):
@@ -4,6 +4,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union
4
4
 
5
5
  from pandas import DataFrame, Series
6
6
 
7
+ from ..call_parameters import CallParameters
7
8
  from ..error.client_only_endpoint import client_only_endpoint
8
9
  from ..error.illegal_attr_checker import IllegalAttrChecker
9
10
  from ..error.uncallable_namespace import UncallableNamespace
@@ -13,7 +14,6 @@ from ..server_version.compatible_with import compatible_with
13
14
  from ..server_version.server_version import ServerVersion
14
15
  from .model import Model
15
16
  from .model_resolver import ModelResolver
16
- from graphdatascience.call_parameters import CallParameters
17
17
 
18
18
 
19
19
  class DistMultCreator(UncallableNamespace, IllegalAttrChecker):
@@ -2,10 +2,10 @@ from typing import Any, Dict, List
2
2
 
3
3
  from pandas import Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..graph.graph_object import Graph
6
7
  from ..graph.graph_type_check import graph_type_check
7
8
  from .pipeline_model import PipelineModel
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class NCModel(PipelineModel):
@@ -3,9 +3,9 @@ from typing import Any
3
3
 
4
4
  from pandas import Series
5
5
 
6
+ from ..call_parameters import CallParameters
6
7
  from ..server_version.server_version import ServerVersion
7
8
  from .training_pipeline import MODEL_TYPE, TrainingPipeline
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class ClassificationTrainingPipeline(TrainingPipeline[MODEL_TYPE], ABC):
@@ -2,10 +2,10 @@ from typing import Any, Tuple
2
2
 
3
3
  from pandas import Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..error.illegal_attr_checker import IllegalAttrChecker
6
7
  from ..error.uncallable_namespace import UncallableNamespace
7
8
  from .lp_training_pipeline import LPTrainingPipeline
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class LPPipelineCreateRunner(UncallableNamespace, IllegalAttrChecker):
@@ -2,10 +2,10 @@ from typing import Any
2
2
 
3
3
  from pandas import DataFrame, Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..model.link_prediction_model import LPModel
6
7
  from ..query_runner.query_runner import QueryRunner
7
8
  from .classification_training_pipeline import ClassificationTrainingPipeline
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class LPTrainingPipeline(ClassificationTrainingPipeline[LPModel]):
@@ -3,10 +3,10 @@ from typing import Any, List, Union
3
3
 
4
4
  from pandas import Series
5
5
 
6
+ from ..call_parameters import CallParameters
6
7
  from ..model.node_classification_model import NCModel
7
8
  from ..pipeline.classification_training_pipeline import ClassificationTrainingPipeline
8
9
  from ..query_runner.query_runner import QueryRunner
9
- from graphdatascience.call_parameters import CallParameters
10
10
 
11
11
 
12
12
  class NCTrainingPipeline(ClassificationTrainingPipeline[NCModel], ABC):
@@ -2,10 +2,10 @@ from typing import Any, List, Union
2
2
 
3
3
  from pandas import Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..model.node_regression_model import NRModel
6
7
  from ..query_runner.query_runner import QueryRunner
7
8
  from .training_pipeline import TrainingPipeline
8
- from graphdatascience.call_parameters import CallParameters
9
9
 
10
10
 
11
11
  class NRTrainingPipeline(TrainingPipeline[NRModel]):
@@ -2,16 +2,16 @@ from typing import Any, Optional
2
2
 
3
3
  from pandas import DataFrame, Series
4
4
 
5
+ from ..call_parameters import CallParameters
5
6
  from ..error.client_only_endpoint import client_only_endpoint
6
7
  from ..error.illegal_attr_checker import IllegalAttrChecker
7
8
  from ..error.uncallable_namespace import UncallableNamespace
8
9
  from ..model.pipeline_model import PipelineModel
10
+ from ..server_version.server_version import ServerVersion
9
11
  from .lp_training_pipeline import LPTrainingPipeline
10
12
  from .nc_training_pipeline import NCTrainingPipeline
11
13
  from .nr_training_pipeline import NRTrainingPipeline
12
14
  from .training_pipeline import TrainingPipeline
13
- from graphdatascience.call_parameters import CallParameters
14
- from graphdatascience.server_version.server_version import ServerVersion
15
15
 
16
16
 
17
17
  class PipelineProcRunner(UncallableNamespace, IllegalAttrChecker):
@@ -3,12 +3,12 @@ from typing import Any, Dict, Generic, Tuple, TypeVar
3
3
 
4
4
  from pandas import DataFrame, Series
5
5
 
6
+ from ..call_parameters import CallParameters
6
7
  from ..graph.graph_object import Graph
7
8
  from ..graph.graph_type_check import graph_type_check
8
9
  from ..model.pipeline_model import PipelineModel
9
10
  from ..query_runner.query_runner import QueryRunner
10
11
  from ..server_version.server_version import ServerVersion
11
- from graphdatascience.call_parameters import CallParameters
12
12
 
13
13
  MODEL_TYPE = TypeVar("MODEL_TYPE", bound=PipelineModel, covariant=True)
14
14
 
@@ -238,9 +238,7 @@ class TrainingPipeline(ABC, Generic[MODEL_TYPE]):
238
238
  params=CallParameters(name=self.name()),
239
239
  yields=["exists"],
240
240
  custom_error=False,
241
- )[
242
- "exists"
243
- ].squeeze() # type: ignore
241
+ )["exists"].squeeze() # type: ignore
244
242
 
245
243
  def drop(self, failIfMissing: bool = False) -> "Series[Any]":
246
244
  """
@@ -88,13 +88,16 @@ class ArrowGraphConstructor(GraphConstructor):
88
88
 
89
89
  writer, _ = self._client.start_put(flight_descriptor, table.schema)
90
90
 
91
- with writer:
92
- # Write table in chunks
93
- for partition in batches:
94
- writer.write_batch(partition)
95
- pbar.update(partition.num_rows)
96
- # Force a refresh to avoid the progress bar getting stuck at 0%
97
- pbar.refresh()
91
+ try:
92
+ with writer:
93
+ # Write table in chunks
94
+ for partition in batches:
95
+ writer.write_batch(partition)
96
+ pbar.update(partition.num_rows)
97
+ # Force a refresh to avoid the progress bar getting stuck at 0%
98
+ pbar.refresh()
99
+ except Exception as e:
100
+ GdsArrowClient.handle_flight_error(e)
98
101
 
99
102
  def _send_dfs(self, dfs: List[DataFrame], entity_type: str) -> None:
100
103
  desc = "Uploading Nodes" if entity_type == "node" else "Uploading Relationships"