sagemaker-studio-dataengineering-sessions 1.0.2__py3-none-any.whl

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 (79) hide show
  1. sagemaker_studio_dataengineering_sessions/__init__.py +0 -0
  2. sagemaker_studio_dataengineering_sessions/py.typed +0 -0
  3. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/__init__.py +7 -0
  4. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/base_session_manager.py +162 -0
  5. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/boto3_models/datazone/2018-05-10/service-2.json +31733 -0
  6. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/boto3_models/glue/2017-03-31/service-2.json +18867 -0
  7. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/__init__.py +0 -0
  8. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/constants.py +137 -0
  9. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/datazone_gateway.py +95 -0
  10. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/debugging_utils.py +24 -0
  11. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/exceptions.py +53 -0
  12. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/glue_gateway.py +52 -0
  13. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/ipython_display.py +31 -0
  14. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/logger_utils.py +28 -0
  15. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/metadata_utils.py +13 -0
  16. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/sagemaker_connection_display.py +44 -0
  17. sagemaker_studio_dataengineering_sessions/sagemaker_base_session_manager/common/sagemaker_toolkit_utils.py +150 -0
  18. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/__init__.py +12 -0
  19. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/dataframe_wrapper.py +30 -0
  20. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_connection_magic.py +1208 -0
  21. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/__init__.py +0 -0
  22. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/display_compute.py +476 -0
  23. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/display_function.py +92 -0
  24. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/display_render.py +912 -0
  25. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/run_statement.py +45 -0
  26. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/style_constants.py +371 -0
  27. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/sagemaker_display_magic/utils.py +15 -0
  28. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/utils/aws_profile_helper.py +77 -0
  29. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/utils/cell_transformer.py +155 -0
  30. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/utils/constants.py +39 -0
  31. sagemaker_studio_dataengineering_sessions/sagemaker_connection_magic/utils/credential_process_script.py +35 -0
  32. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/__init__.py +7 -0
  33. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/athena/__init__.py +0 -0
  34. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/athena/athena_config.py +6 -0
  35. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/athena/athena_connection.py +6 -0
  36. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/athena/athena_session.py +30 -0
  37. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/athena/connection_transformer.py +27 -0
  38. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/db_connection_pool.py +12 -0
  39. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/redshift/__init__.py +0 -0
  40. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/redshift/connection_transformer.py +86 -0
  41. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/redshift/redshift_config.py +5 -0
  42. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/redshift/redshift_connection.py +16 -0
  43. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/redshift/redshift_session.py +72 -0
  44. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/sagemaker_database_session_manager.py +133 -0
  45. sagemaker_studio_dataengineering_sessions/sagemaker_database_session_manager/utils/common_utils.py +13 -0
  46. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/__init__.py +7 -0
  47. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/__init__.py +1 -0
  48. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/__init__.py +0 -0
  49. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/connection_transformer.py +67 -0
  50. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/custom_authenticator.py +40 -0
  51. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/emr_on_ec2_connection.py +19 -0
  52. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/emr_on_ec2_gateway.py +25 -0
  53. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/emr_on_ec2_session.py +190 -0
  54. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_ec2/governance_type.py +7 -0
  55. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_serverless/__init__.py +0 -0
  56. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_serverless/connection_tranformer.py +37 -0
  57. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_serverless/custom_authenticator.py +143 -0
  58. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_serverless/emr_on_serverless_connection.py +8 -0
  59. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_serverless/emr_on_serverless_session.py +158 -0
  60. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/emr_on_serverless/emr_serverless_gateway.py +36 -0
  61. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/livy_session.py +298 -0
  62. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/emr_session_manager/spark_magic.py +11 -0
  63. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/__init__.py +1 -0
  64. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/connection_transformer.py +114 -0
  65. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/glue_connection.py +19 -0
  66. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/glue_kernel_utils/GlueSessionsConstants.py +56 -0
  67. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/glue_kernel_utils/KernelGateway.py +342 -0
  68. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/glue_session.py +773 -0
  69. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/glue_session_manager/glue_session_configs/config.py +21 -0
  70. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/spark_commands/send_to_spark_command.py +76 -0
  71. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/spark_session_manager/__init__.py +0 -0
  72. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/spark_session_manager/spark_monitor_widget_utils.py +65 -0
  73. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/spark_session_manager/spark_session.py +124 -0
  74. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/utils/common_utils.py +18 -0
  75. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/utils/lib_utils.py +100 -0
  76. sagemaker_studio_dataengineering_sessions/sagemaker_spark_session_manager/utils/metadata_utils.py +19 -0
  77. sagemaker_studio_dataengineering_sessions-1.0.2.dist-info/METADATA +114 -0
  78. sagemaker_studio_dataengineering_sessions-1.0.2.dist-info/RECORD +79 -0
  79. sagemaker_studio_dataengineering_sessions-1.0.2.dist-info/WHEEL +4 -0
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ import logging
2
+
3
+ from sagemaker_studio_dataengineering_sessions.sagemaker_base_session_manager.common.logger_utils import setup_logger
4
+
5
+ logging.basicConfig(level=logging.INFO)
6
+ logger = logging.getLogger(__name__)
7
+ setup_logger(logger, "SageMakerBaseSessionManager", "connection_magic")
@@ -0,0 +1,162 @@
1
+ import abc
2
+ import logging
3
+
4
+ from sagemaker_studio_dataengineering_sessions.sagemaker_base_session_manager.common.constants import Language
5
+ from sagemaker_studio_dataengineering_sessions.sagemaker_base_session_manager.common.sagemaker_connection_display import SageMakerConnectionDisplay
6
+
7
+
8
+ class BaseSessionManager(metaclass=abc.ABCMeta):
9
+
10
+ def __init__(self) -> None:
11
+ # The limit for the number of rows that can be returned in a SQL query. Defaults to 10000.
12
+ self.sql_result_row_limit = 10_000
13
+
14
+ @abc.abstractmethod
15
+ def create_session(self):
16
+ """
17
+ Create a new session
18
+ """
19
+ raise NotImplementedError('Must define create_session to use this BaseSessionManager')
20
+
21
+ @abc.abstractmethod
22
+ def run_statement(self, cell="", language: Language = None):
23
+ """
24
+ Run a statement against the session
25
+ :param cell: the code to run
26
+ """
27
+ raise NotImplementedError('Must define run_statement to use this BaseSessionManager')
28
+
29
+ @abc.abstractmethod
30
+ def stop_session(self):
31
+ """
32
+ Stop the session
33
+ """
34
+ raise NotImplementedError('Must define stop_session to use this BaseSessionManager')
35
+
36
+ @abc.abstractmethod
37
+ def is_session_connectable(self) -> bool:
38
+ """
39
+ Check if the session is connectable and in a valid status for running statement
40
+ :return: true if the session is in a valid status, false otherwise
41
+ """
42
+ raise NotImplementedError('Must define is_session_connectable to use this BaseSessionManager')
43
+
44
+ @abc.abstractmethod
45
+ def _configure_core(self, cell: str):
46
+ """
47
+ To configure current compute to be connected and start a new session with applied configuration
48
+ :param cell: the content to be applied for the session
49
+ """
50
+
51
+ def configure(self, cell: str, force: bool = False):
52
+ """
53
+ To configure current compute to be connected and start a new session with applied configuration
54
+ :param cell: the content to be applied for the session
55
+ :param force: a boolean to check if a user wants to force start a new session to apply configuration
56
+ """
57
+ if self.is_session_connectable():
58
+ if not force:
59
+ SageMakerConnectionDisplay.send_error(
60
+ "A session has already been started. If you intend to recreate the "
61
+ "session with new configurations, please include the -f or --force argument.")
62
+ else:
63
+ self.stop_session()
64
+ self._configure_core(cell)
65
+ self.create_session()
66
+ else:
67
+ self._configure_core(cell)
68
+ return
69
+
70
+ def send_to_remote(self, local_var: str, remote_var: str, language=Language.python):
71
+ # Not an abstract method because by default a session manager does not support this
72
+ # only Spark session manager supports this for now.
73
+ """
74
+ Send a local variable in kernel's userspace to remote compute.
75
+ e.g: for an EMR cluster, send a local variable to spark
76
+ :param local_var: local variable name
77
+ :param remote_var: remote variable name
78
+ """
79
+ raise NotImplementedError('Send_to_remote is not supported')
80
+
81
+ def get_info(self):
82
+ """
83
+ Get information about the connected compute session
84
+ """
85
+ raise NotImplementedError('get_info is not supported for current session')
86
+
87
+ def get_session_id(self):
88
+ """
89
+ Get the session ID of the connected compute session
90
+ """
91
+ raise NotImplementedError('get_session_id is not supported for current session')
92
+
93
+ def get_status(self):
94
+ """
95
+ Get the status of the connected compute session
96
+ """
97
+ raise NotImplementedError('get_status is not supported for current session')
98
+
99
+ def add_tags(self, tags: str):
100
+ """
101
+ Add tags to the connected compute session resources
102
+ """
103
+ raise NotImplementedError('add_tags is not supported for current session')
104
+
105
+ def get_logs(self):
106
+ """
107
+ Gets the current session's Livy logs
108
+ """
109
+ raise NotImplementedError('get_logs is not supported for current session')
110
+
111
+ def matplot(self, line: str):
112
+ """
113
+ Using matplotlib to plot the current session's plot'
114
+ """
115
+ raise NotImplementedError('matplot is not supported for current session')
116
+
117
+ def set_session_id_prefix(self, prefix: str, force: bool = False):
118
+ """
119
+ Sets the session ID prefix of the session to be created
120
+ """
121
+ raise NotImplementedError('set_session_id_prefix is not supported for current session')
122
+
123
+ def set_number_of_workers(self, number: str, force: bool = False):
124
+ """
125
+ Sets the number of workers of the session to be created
126
+ """
127
+ raise NotImplementedError('set_number_of_workers is not supported for current session')
128
+
129
+ def set_worker_type(self, type: str, force: bool = False):
130
+ """
131
+ Sets the worker type of the session to be created
132
+ """
133
+ raise NotImplementedError('set_worker_type is not supported for current session')
134
+
135
+ def set_session_type(self, session_type: str, force: bool = False):
136
+ """
137
+ Sets the session type of the session to be created. Acceptable session_type values are: streaming and etl.
138
+ """
139
+ raise NotImplementedError('set_session_type is not supported for current session')
140
+
141
+ def set_glue_version(self, glue_version: str, force: bool = False):
142
+ """
143
+ Sets the glue version of the session to be created
144
+ """
145
+ raise NotImplementedError('set_glue_version is not supported for current session')
146
+
147
+ def set_idle_timeout(self, idle_timeout: str, force: bool = False):
148
+ """
149
+ Sets the idle timeout value of the session to be created
150
+ """
151
+ raise NotImplementedError('set_idle_timeout is not supported for current session')
152
+
153
+ def spark_conf(self, spark_conf: str, force: bool = False):
154
+ """
155
+ Sets the spark configuration value of the session to be created
156
+ """
157
+ raise NotImplementedError('spark_conf is not supported for current session')
158
+
159
+ def get_logger(self):
160
+ if not hasattr(self, '_logger'):
161
+ self._logger = logging.getLogger(__name__)
162
+ return self._logger