dataproc-spark-connect 0.8.0__tar.gz → 0.8.1__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 (18) hide show
  1. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/PKG-INFO +1 -1
  2. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/dataproc_spark_connect.egg-info/PKG-INFO +1 -1
  3. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/session.py +51 -6
  4. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/setup.py +1 -1
  5. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/LICENSE +0 -0
  6. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/README.md +0 -0
  7. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/dataproc_spark_connect.egg-info/SOURCES.txt +0 -0
  8. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/dataproc_spark_connect.egg-info/dependency_links.txt +0 -0
  9. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/dataproc_spark_connect.egg-info/requires.txt +0 -0
  10. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/dataproc_spark_connect.egg-info/top_level.txt +0 -0
  11. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/__init__.py +0 -0
  12. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/client/__init__.py +0 -0
  13. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/client/core.py +0 -0
  14. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/client/proxy.py +0 -0
  15. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/exceptions.py +0 -0
  16. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/google/cloud/dataproc_spark_connect/pypi_artifacts.py +0 -0
  17. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/pyproject.toml +0 -0
  18. {dataproc_spark_connect-0.8.0 → dataproc_spark_connect-0.8.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataproc-spark-connect
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: Dataproc client library for Spark Connect
5
5
  Home-page: https://github.com/GoogleCloudDataproc/dataproc-spark-connect-python
6
6
  Author: Google LLC
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataproc-spark-connect
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: Dataproc client library for Spark Connect
5
5
  Home-page: https://github.com/GoogleCloudDataproc/dataproc-spark-connect-python
6
6
  Author: Google LLC
@@ -253,10 +253,9 @@ class DataprocSparkSession(SparkSession):
253
253
  operation = SessionControllerClient(
254
254
  client_options=self._client_options
255
255
  ).create_session(session_request)
256
- print(
257
- f"Creating Dataproc Session: https://console.cloud.google.com/dataproc/interactive/{self._region}/{session_id}?project={self._project_id}"
258
- )
259
- self._display_view_session_details_button(session_id)
256
+ self._display_session_link_on_creation(session_id)
257
+ # TODO: Add the 'View Session Details' button once the UI changes are done.
258
+ # self._display_view_session_details_button(session_id)
260
259
  create_session_pbar_thread.start()
261
260
  session_response: Session = operation.result(
262
261
  polling=retry.Retry(
@@ -269,7 +268,7 @@ class DataprocSparkSession(SparkSession):
269
268
  )
270
269
  stop_create_session_pbar_event.set()
271
270
  create_session_pbar_thread.join()
272
- print("Dataproc Session was successfully created")
271
+ self._print_session_created_message()
273
272
  file_path = (
274
273
  DataprocSparkSession._get_active_session_file_path()
275
274
  )
@@ -314,6 +313,46 @@ class DataprocSparkSession(SparkSession):
314
313
  session_response, dataproc_config.name
315
314
  )
316
315
 
316
+ def _display_session_link_on_creation(self, session_id):
317
+ session_url = f"https://console.cloud.google.com/dataproc/interactive/{self._region}/{session_id}?project={self._project_id}"
318
+ plain_message = f"Creating Dataproc Session: {session_url}"
319
+ html_element = f"""
320
+ <div>
321
+ <p>Creating Dataproc Spark Session<p>
322
+ <p><a href="{session_url}">Dataproc Session</a></p>
323
+ </div>
324
+ """
325
+
326
+ self._output_element_or_message(plain_message, html_element)
327
+
328
+ def _print_session_created_message(self):
329
+ plain_message = f"Dataproc Session was successfully created"
330
+ html_element = f"<div><p>{plain_message}</p></div>"
331
+
332
+ self._output_element_or_message(plain_message, html_element)
333
+
334
+ def _output_element_or_message(self, plain_message, html_element):
335
+ """
336
+ Display / print the needed rich HTML element or plain text depending
337
+ on whether rich element is supported or not.
338
+
339
+ :param plain_message: Message to print on non-IPython or
340
+ non-interactive shell
341
+ :param html_element: HTML element to display for interactive IPython
342
+ environment
343
+ """
344
+ try:
345
+ from IPython.display import display, HTML
346
+ from IPython.core.interactiveshell import InteractiveShell
347
+
348
+ if not InteractiveShell.initialized():
349
+ raise DataprocSparkConnectException(
350
+ "Not in an Interactive IPython Environment"
351
+ )
352
+ display(HTML(html_element))
353
+ except (ImportError, DataprocSparkConnectException):
354
+ print(plain_message)
355
+
317
356
  def _get_exiting_active_session(
318
357
  self,
319
358
  ) -> Optional["DataprocSparkSession"]:
@@ -334,7 +373,8 @@ class DataprocSparkSession(SparkSession):
334
373
  print(
335
374
  f"Using existing Dataproc Session (configuration changes may not be applied): https://console.cloud.google.com/dataproc/interactive/{self._region}/{s8s_session_id}?project={self._project_id}"
336
375
  )
337
- self._display_view_session_details_button(s8s_session_id)
376
+ # TODO: Add the 'View Session Details' button once the UI changes are done.
377
+ # self._display_view_session_details_button(s8s_session_id)
338
378
  if session is None:
339
379
  session = self.__create_spark_connect_session_from_s8s(
340
380
  session_response, session_name
@@ -453,6 +493,11 @@ class DataprocSparkSession(SparkSession):
453
493
  def _display_view_session_details_button(self, session_id):
454
494
  try:
455
495
  session_url = f"https://console.cloud.google.com/dataproc/interactive/sessions/{session_id}/locations/{self._region}?project={self._project_id}"
496
+ from IPython.core.interactiveshell import InteractiveShell
497
+
498
+ if not InteractiveShell.initialized():
499
+ return
500
+
456
501
  from google.cloud.aiplatform.utils import _ipython_utils
457
502
 
458
503
  _ipython_utils.display_link(
@@ -20,7 +20,7 @@ long_description = (this_directory / "README.md").read_text()
20
20
 
21
21
  setup(
22
22
  name="dataproc-spark-connect",
23
- version="0.8.0",
23
+ version="0.8.1",
24
24
  description="Dataproc client library for Spark Connect",
25
25
  long_description=long_description,
26
26
  author="Google LLC",