snowpark-connect 0.29.0__py3-none-any.whl → 0.30.1__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.
Potentially problematic release.
This version of snowpark-connect might be problematic. Click here for more details.
- snowflake/snowpark_connect/analyze_plan/map_tree_string.py +8 -4
- snowflake/snowpark_connect/client.py +65 -0
- snowflake/snowpark_connect/column_name_handler.py +6 -0
- snowflake/snowpark_connect/config.py +25 -3
- snowflake/snowpark_connect/execute_plan/map_execution_root.py +21 -19
- snowflake/snowpark_connect/expression/map_extension.py +277 -1
- snowflake/snowpark_connect/expression/map_sql_expression.py +107 -2
- snowflake/snowpark_connect/expression/map_unresolved_function.py +253 -59
- snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +12 -10
- snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +14 -2
- snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2_grpc.py +4 -0
- snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2_grpc.py +4 -0
- snowflake/snowpark_connect/relation/io_utils.py +61 -4
- snowflake/snowpark_connect/relation/map_column_ops.py +9 -4
- snowflake/snowpark_connect/relation/map_join.py +8 -0
- snowflake/snowpark_connect/relation/map_row_ops.py +129 -17
- snowflake/snowpark_connect/relation/map_show_string.py +14 -6
- snowflake/snowpark_connect/relation/map_sql.py +39 -5
- snowflake/snowpark_connect/relation/map_stats.py +21 -6
- snowflake/snowpark_connect/relation/read/map_read.py +9 -0
- snowflake/snowpark_connect/relation/read/map_read_csv.py +17 -6
- snowflake/snowpark_connect/relation/read/map_read_json.py +12 -2
- snowflake/snowpark_connect/relation/read/map_read_parquet.py +7 -1
- snowflake/snowpark_connect/relation/read/metadata_utils.py +159 -0
- snowflake/snowpark_connect/relation/utils.py +19 -2
- snowflake/snowpark_connect/relation/write/map_write.py +44 -29
- snowflake/snowpark_connect/server.py +11 -3
- snowflake/snowpark_connect/type_mapping.py +75 -3
- snowflake/snowpark_connect/utils/describe_query_cache.py +6 -3
- snowflake/snowpark_connect/utils/telemetry.py +105 -23
- snowflake/snowpark_connect/version.py +1 -1
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/METADATA +1 -1
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/RECORD +41 -37
- {snowpark_connect-0.29.0.data → snowpark_connect-0.30.1.data}/scripts/snowpark-connect +0 -0
- {snowpark_connect-0.29.0.data → snowpark_connect-0.30.1.data}/scripts/snowpark-session +0 -0
- {snowpark_connect-0.29.0.data → snowpark_connect-0.30.1.data}/scripts/snowpark-submit +0 -0
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/WHEEL +0 -0
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/licenses/LICENSE-binary +0 -0
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/licenses/LICENSE.txt +0 -0
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/licenses/NOTICE-binary +0 -0
- {snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/top_level.txt +0 -0
|
@@ -11,10 +11,11 @@ from abc import ABC, abstractmethod
|
|
|
11
11
|
from collections import defaultdict
|
|
12
12
|
from collections.abc import Iterable
|
|
13
13
|
from contextvars import ContextVar
|
|
14
|
+
from dataclasses import dataclass
|
|
14
15
|
from enum import Enum, unique
|
|
15
|
-
from typing import Dict
|
|
16
16
|
|
|
17
17
|
import google.protobuf.message
|
|
18
|
+
import pyspark.sql.connect.proto.base_pb2 as proto_base
|
|
18
19
|
|
|
19
20
|
from snowflake.connector.cursor import SnowflakeCursor
|
|
20
21
|
from snowflake.connector.telemetry import (
|
|
@@ -56,6 +57,7 @@ class TelemetryType(Enum):
|
|
|
56
57
|
|
|
57
58
|
class EventType(Enum):
|
|
58
59
|
SERVER_STARTED = "scos_server_started"
|
|
60
|
+
WARNING = "scos_warning"
|
|
59
61
|
|
|
60
62
|
|
|
61
63
|
# global labels
|
|
@@ -105,7 +107,16 @@ REDACTED_PLAN_SUFFIXES = [
|
|
|
105
107
|
]
|
|
106
108
|
|
|
107
109
|
|
|
108
|
-
|
|
110
|
+
@dataclass
|
|
111
|
+
class TelemetryMessage:
|
|
112
|
+
"""Container for telemetry messages in the processing queue."""
|
|
113
|
+
|
|
114
|
+
message: dict
|
|
115
|
+
timestamp: int
|
|
116
|
+
is_warning: bool
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _basic_telemetry_data() -> dict:
|
|
109
120
|
return {
|
|
110
121
|
**STATIC_TELEMETRY_DATA,
|
|
111
122
|
TelemetryField.KEY_EVENT_ID.value: str(uuid.uuid4()),
|
|
@@ -122,9 +133,11 @@ def safe(func):
|
|
|
122
133
|
def wrap(*args, **kwargs):
|
|
123
134
|
try:
|
|
124
135
|
func(*args, **kwargs)
|
|
125
|
-
except Exception:
|
|
126
|
-
#
|
|
127
|
-
|
|
136
|
+
except Exception as e:
|
|
137
|
+
# report failed operation to telemetry
|
|
138
|
+
telemetry.send_warning_msg(
|
|
139
|
+
f"Telemetry operation {func} failed due to exception", e
|
|
140
|
+
)
|
|
128
141
|
|
|
129
142
|
return wrap
|
|
130
143
|
|
|
@@ -290,10 +303,7 @@ class Telemetry:
|
|
|
290
303
|
|
|
291
304
|
self._request_summary.set(summary)
|
|
292
305
|
|
|
293
|
-
|
|
294
|
-
summary["query_plan"] = _protobuf_to_json_with_redaction(
|
|
295
|
-
request.plan, REDACTED_PLAN_SUFFIXES
|
|
296
|
-
)
|
|
306
|
+
_set_query_plan(request, summary)
|
|
297
307
|
|
|
298
308
|
def _not_in_request(self):
|
|
299
309
|
# we don't want to add things to the summary if it's not initialized
|
|
@@ -454,7 +464,7 @@ class Telemetry:
|
|
|
454
464
|
summary["describe_cache_hits"] += 1
|
|
455
465
|
|
|
456
466
|
@safe
|
|
457
|
-
def report_describe_query_cache_expired(self):
|
|
467
|
+
def report_describe_query_cache_expired(self, expired_by: float):
|
|
458
468
|
"""Report a describe query cache hit."""
|
|
459
469
|
if self._not_in_request():
|
|
460
470
|
return
|
|
@@ -466,6 +476,11 @@ class Telemetry:
|
|
|
466
476
|
|
|
467
477
|
summary["describe_cache_expired"] += 1
|
|
468
478
|
|
|
479
|
+
if "describe_cache_expired_by" not in summary:
|
|
480
|
+
summary["describe_cache_expired_by"] = []
|
|
481
|
+
|
|
482
|
+
summary["describe_cache_expired_by"].append(expired_by)
|
|
483
|
+
|
|
469
484
|
@safe
|
|
470
485
|
def report_describe_query_cache_clear(self, query_prefix: str):
|
|
471
486
|
"""Report a describe query cache clear."""
|
|
@@ -525,8 +540,8 @@ class Telemetry:
|
|
|
525
540
|
@safe
|
|
526
541
|
def send_request_summary_telemetry(self):
|
|
527
542
|
if self._not_in_request():
|
|
528
|
-
|
|
529
|
-
"
|
|
543
|
+
self.send_warning_msg(
|
|
544
|
+
"Trying to send request summary telemetry without initializing it"
|
|
530
545
|
)
|
|
531
546
|
return
|
|
532
547
|
|
|
@@ -538,14 +553,56 @@ class Telemetry:
|
|
|
538
553
|
}
|
|
539
554
|
self._send(message)
|
|
540
555
|
|
|
541
|
-
def
|
|
556
|
+
def send_warning_msg(self, msg: str, e: Exception = None) -> None:
|
|
557
|
+
# using this within @safe decorator may result in recursive loop
|
|
558
|
+
try:
|
|
559
|
+
message = self._build_warning_message(msg, e)
|
|
560
|
+
if not message:
|
|
561
|
+
return
|
|
562
|
+
|
|
563
|
+
self._send(message, is_warning=True)
|
|
564
|
+
except Exception:
|
|
565
|
+
# if there's an exception here, there's nothing we can really do about it
|
|
566
|
+
pass
|
|
567
|
+
|
|
568
|
+
def _build_warning_message(self, warning_msg: str, e: Exception = None) -> dict:
|
|
569
|
+
try:
|
|
570
|
+
data = {"warning_message": warning_msg}
|
|
571
|
+
if e is not None:
|
|
572
|
+
data["exception"] = repr(e)
|
|
573
|
+
|
|
574
|
+
# add session and operation id if available
|
|
575
|
+
spark_session_id = self._request_summary.get().get("spark_session_id", None)
|
|
576
|
+
if spark_session_id is not None:
|
|
577
|
+
data["spark_session_id"] = spark_session_id
|
|
578
|
+
|
|
579
|
+
spark_operation_id = self._request_summary.get().get(
|
|
580
|
+
"spark_operation_id", None
|
|
581
|
+
)
|
|
582
|
+
if spark_operation_id is not None:
|
|
583
|
+
data["spark_operation_id"] = spark_operation_id
|
|
584
|
+
|
|
585
|
+
message = {
|
|
586
|
+
**_basic_telemetry_data(),
|
|
587
|
+
TelemetryField.KEY_TYPE.value: TelemetryType.TYPE_EVENT.value,
|
|
588
|
+
TelemetryType.EVENT_TYPE.value: EventType.WARNING.value,
|
|
589
|
+
TelemetryField.KEY_DATA.value: data,
|
|
590
|
+
}
|
|
591
|
+
return message
|
|
592
|
+
except Exception:
|
|
593
|
+
return {}
|
|
594
|
+
|
|
595
|
+
def _send(self, msg: dict, is_warning: bool = False) -> None:
|
|
542
596
|
"""Queue a telemetry message for asynchronous processing."""
|
|
543
597
|
if not self._is_enabled:
|
|
544
598
|
return
|
|
545
599
|
|
|
546
600
|
timestamp = get_time_millis()
|
|
547
601
|
try:
|
|
548
|
-
|
|
602
|
+
telemetry_msg = TelemetryMessage(
|
|
603
|
+
message=msg, timestamp=timestamp, is_warning=is_warning
|
|
604
|
+
)
|
|
605
|
+
self._message_queue.put_nowait(telemetry_msg)
|
|
549
606
|
except queue.Full:
|
|
550
607
|
# If queue is full, drop the message to avoid blocking
|
|
551
608
|
logger.warning("Telemetry queue is full, dropping message")
|
|
@@ -563,13 +620,16 @@ class Telemetry:
|
|
|
563
620
|
while True:
|
|
564
621
|
try:
|
|
565
622
|
# block to allow the GIL to switch threads
|
|
566
|
-
|
|
567
|
-
if
|
|
568
|
-
# shutdown
|
|
623
|
+
telemetry_msg = self._message_queue.get()
|
|
624
|
+
if telemetry_msg is None:
|
|
625
|
+
# shutdown signal
|
|
569
626
|
break
|
|
570
|
-
self._sink.add_telemetry_data(
|
|
571
|
-
|
|
572
|
-
|
|
627
|
+
self._sink.add_telemetry_data(
|
|
628
|
+
telemetry_msg.message, telemetry_msg.timestamp
|
|
629
|
+
)
|
|
630
|
+
except Exception as e:
|
|
631
|
+
if not telemetry_msg.is_warning:
|
|
632
|
+
self.send_warning_msg("Failed to add telemetry message to sink", e)
|
|
573
633
|
finally:
|
|
574
634
|
self._message_queue.task_done()
|
|
575
635
|
|
|
@@ -582,7 +642,7 @@ class Telemetry:
|
|
|
582
642
|
return
|
|
583
643
|
|
|
584
644
|
try:
|
|
585
|
-
self._message_queue.put_nowait(
|
|
645
|
+
self._message_queue.put_nowait(None)
|
|
586
646
|
# Wait for worker thread to finish
|
|
587
647
|
self._worker_thread.join(timeout=3.0)
|
|
588
648
|
except Exception:
|
|
@@ -591,7 +651,7 @@ class Telemetry:
|
|
|
591
651
|
)
|
|
592
652
|
|
|
593
653
|
|
|
594
|
-
def _error_location(e: Exception) ->
|
|
654
|
+
def _error_location(e: Exception) -> dict | None:
|
|
595
655
|
"""
|
|
596
656
|
Inspect the exception traceback and extract the file name, line number, and function name
|
|
597
657
|
from the last frame (the one that raised the exception).
|
|
@@ -672,7 +732,7 @@ def _protobuf_to_json_with_redaction(
|
|
|
672
732
|
"""Recursively convert protobuf message to dict"""
|
|
673
733
|
|
|
674
734
|
if not isinstance(msg, google.protobuf.message.Message):
|
|
675
|
-
|
|
735
|
+
telemetry.send_warning_msg(f"Expected a protobuf message, got: {type(msg)}")
|
|
676
736
|
return {}
|
|
677
737
|
|
|
678
738
|
result = {}
|
|
@@ -697,6 +757,28 @@ def _protobuf_to_json_with_redaction(
|
|
|
697
757
|
)
|
|
698
758
|
|
|
699
759
|
|
|
760
|
+
def _set_query_plan(request: google.protobuf.message.Message, summary: dict) -> None:
|
|
761
|
+
if isinstance(request, proto_base.ExecutePlanRequest):
|
|
762
|
+
# ExecutePlanRequest has plan at top level
|
|
763
|
+
if hasattr(request, "plan"):
|
|
764
|
+
summary["query_plan"] = (
|
|
765
|
+
_protobuf_to_json_with_redaction(request.plan, REDACTED_PLAN_SUFFIXES),
|
|
766
|
+
)
|
|
767
|
+
|
|
768
|
+
elif isinstance(request, proto_base.AnalyzePlanRequest):
|
|
769
|
+
# AnalyzePlanRequest has plan under oneof analyze
|
|
770
|
+
analyze_type = request.WhichOneof("analyze")
|
|
771
|
+
if not analyze_type:
|
|
772
|
+
return
|
|
773
|
+
|
|
774
|
+
summary["analyze_type"] = analyze_type
|
|
775
|
+
analyze_field = getattr(request, analyze_type)
|
|
776
|
+
if hasattr(analyze_field, "plan"):
|
|
777
|
+
summary["query_plan"] = _protobuf_to_json_with_redaction(
|
|
778
|
+
analyze_field.plan, REDACTED_PLAN_SUFFIXES
|
|
779
|
+
)
|
|
780
|
+
|
|
781
|
+
|
|
700
782
|
# global telemetry client
|
|
701
783
|
telemetry = Telemetry(is_enabled="SNOWPARK_CONNECT_DISABLE_TELEMETRY" not in os.environ)
|
|
702
784
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
snowflake/snowpark_connect/__init__.py,sha256=Sml4x1LTNnxZyw6nnDeJrZWUi3eUAR46Rsw6N-wHUSA,605
|
|
2
|
-
snowflake/snowpark_connect/
|
|
3
|
-
snowflake/snowpark_connect/
|
|
2
|
+
snowflake/snowpark_connect/client.py,sha256=K0PK8aIppghBnY0uKlDOi4WZBUhKxJQ_vRuDpB3YsbQ,2045
|
|
3
|
+
snowflake/snowpark_connect/column_name_handler.py,sha256=eiqUe7YdYFxjyHOAbD9gNCstOIuroZA2INkV4KhqGMg,27407
|
|
4
|
+
snowflake/snowpark_connect/config.py,sha256=m2ZPZPaarj2GglLnsuBCgsoJ7SLq3roIC-Jr5YyKl2k,29585
|
|
4
5
|
snowflake/snowpark_connect/constants.py,sha256=FBDxNUxdqWxnf6d5-eanHlYdFFyQqCqvNyZG-uOiO6Q,598
|
|
5
6
|
snowflake/snowpark_connect/control_server.py,sha256=mz3huYo84hgqUB6maZxu3LYyGq7vVL1nv7-7-MjuSYY,1956
|
|
6
7
|
snowflake/snowpark_connect/dataframe_container.py,sha256=0ozyUXrWErzM7Gltnb-i2o5ZyXVVeT_HCqpuYliQXwc,8798
|
|
@@ -8,21 +9,21 @@ snowflake/snowpark_connect/dataframe_name_handler.py,sha256=aR-CpdGsN2d6tNW0H_F9
|
|
|
8
9
|
snowflake/snowpark_connect/date_time_format_mapping.py,sha256=qtQ-JTGR1VRWM2oxM1aYggE_g-BNouffeHxmCk89xkk,16809
|
|
9
10
|
snowflake/snowpark_connect/empty_dataframe.py,sha256=aKO6JkYnArWCpLGcn9BzvTspw2k_c6eAM0mQImAY0J0,428
|
|
10
11
|
snowflake/snowpark_connect/resources_initializer.py,sha256=GqBaiFrK9dWec3NLuNZuuxx5Ebw_ZCiMyFrS2KjK2fw,5084
|
|
11
|
-
snowflake/snowpark_connect/server.py,sha256=
|
|
12
|
+
snowflake/snowpark_connect/server.py,sha256=vF4IDojinpKsXw6DG3YIAUKkTbsxJHPR00w3L6ANvnw,51523
|
|
12
13
|
snowflake/snowpark_connect/start_server.py,sha256=udegO0rk2FeSnXsIcCIYQW3VRlGDjB_cU8lJ8xSzuM8,942
|
|
13
14
|
snowflake/snowpark_connect/tcm.py,sha256=ftncZFbVO-uyWMhF1_HYKQykB7KobHEYoyQsYbQj1EM,203
|
|
14
|
-
snowflake/snowpark_connect/type_mapping.py,sha256=
|
|
15
|
+
snowflake/snowpark_connect/type_mapping.py,sha256=hAkOz9_uPi6XnFbd_KcwHqiWoqjt5ht7hlMvD7zR7Cw,45093
|
|
15
16
|
snowflake/snowpark_connect/typed_column.py,sha256=Tavii8b4zMj5IWOvN6tlOVmC80W6eQct0pC_tF2nlhU,3867
|
|
16
|
-
snowflake/snowpark_connect/version.py,sha256=
|
|
17
|
+
snowflake/snowpark_connect/version.py,sha256=ihyPxJymHC107aRgWHpDuSBrYCYH4zvut1JtZOdgS5o,118
|
|
17
18
|
snowflake/snowpark_connect/analyze_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
18
|
-
snowflake/snowpark_connect/analyze_plan/map_tree_string.py,sha256=
|
|
19
|
+
snowflake/snowpark_connect/analyze_plan/map_tree_string.py,sha256=RFSNdDwOTXOd3gm_rKRJNyDd65zQpBxBpVOOwmKaFVA,1661
|
|
19
20
|
snowflake/snowpark_connect/error/__init__.py,sha256=oQo6k4zztLmNF1c5IvJLcS99J6RWY9KBTN3RJ2pKimg,249
|
|
20
21
|
snowflake/snowpark_connect/error/error_mapping.py,sha256=vdnLOU1Sqpocpu_uCXjfhivutgD3yf60U4D31DJ31ng,195361
|
|
21
22
|
snowflake/snowpark_connect/error/error_utils.py,sha256=Sb_p5dsrFZsLrR9B_Tp8d80Z6KcPtz9OM40lNbgsgRI,14863
|
|
22
23
|
snowflake/snowpark_connect/error/exceptions.py,sha256=EOnTDiJZuVJ9dNBzy5cK0OBprbYCD3gWTCCLITjd1mY,677
|
|
23
24
|
snowflake/snowpark_connect/execute_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
24
25
|
snowflake/snowpark_connect/execute_plan/map_execution_command.py,sha256=j3XjBAwqOHY3D2cwu7Ez2jSZq57UUbal-1ynwXnrOHM,9355
|
|
25
|
-
snowflake/snowpark_connect/execute_plan/map_execution_root.py,sha256=
|
|
26
|
+
snowflake/snowpark_connect/execute_plan/map_execution_root.py,sha256=9v6feXmVjqifhQJWT9qI6tmOhb3SbBaETHCjCbQCHtk,7659
|
|
26
27
|
snowflake/snowpark_connect/execute_plan/utils.py,sha256=OsjEd-WnQEX2oNVvlzGR6rpJVYyfxx1LACP09k1Y4lk,7830
|
|
27
28
|
snowflake/snowpark_connect/expression/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
28
29
|
snowflake/snowpark_connect/expression/function_defaults.py,sha256=WEnzc_uzZZltcfE6kSbrvLFzrXsfx6HLqvLKgX-Dh_E,6605
|
|
@@ -30,12 +31,12 @@ snowflake/snowpark_connect/expression/hybrid_column_map.py,sha256=2jItaXnFnqcaOI
|
|
|
30
31
|
snowflake/snowpark_connect/expression/literal.py,sha256=wk5NnLR85SLHe7GoAvSzMTW0B-3yhAiRz4F5SfU2REs,4459
|
|
31
32
|
snowflake/snowpark_connect/expression/map_cast.py,sha256=uxNukg9op0i_sKLhY43fJJJ2-SKZ-8wkRMRBiPikJ0c,14799
|
|
32
33
|
snowflake/snowpark_connect/expression/map_expression.py,sha256=04EZNHV7bb0KAIhbnmhIgssvafn3XTSE9Ax_uMishP8,15711
|
|
33
|
-
snowflake/snowpark_connect/expression/map_extension.py,sha256=
|
|
34
|
-
snowflake/snowpark_connect/expression/map_sql_expression.py,sha256=
|
|
34
|
+
snowflake/snowpark_connect/expression/map_extension.py,sha256=hEa-pylnb4PugZYQOpMlb7dGej90dozzxm8og_pGRR8,17513
|
|
35
|
+
snowflake/snowpark_connect/expression/map_sql_expression.py,sha256=v5lAMqEkLMe59RrtC35KKGpeYrPeJXl0NTf2QxqKATI,30763
|
|
35
36
|
snowflake/snowpark_connect/expression/map_udf.py,sha256=_om_Kqxm_sm3RhwP4DZbGPUpArX90MoJQm-KwEWrTiQ,8034
|
|
36
37
|
snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=cyyEtAsPqcCpCYulAobSbtPDV3xkCIM0_tq4wdMxuJM,18843
|
|
37
38
|
snowflake/snowpark_connect/expression/map_unresolved_extract_value.py,sha256=A-m-RczZW6xHMjgYR5RV_vzMTpNBRoH3Tk_A1V8z_pk,5382
|
|
38
|
-
snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=
|
|
39
|
+
snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=QvUNGiD87xG5JODjmk9KhC1BwSoLztP7uGafcyLt9d0,484930
|
|
39
40
|
snowflake/snowpark_connect/expression/map_unresolved_star.py,sha256=gecSxJ9flsn9chTXmYHP8nLzs_209xnVlyNwANDXRFg,8820
|
|
40
41
|
snowflake/snowpark_connect/expression/map_update_fields.py,sha256=bMuZjCOE5wgrZv3ApsoiwEUv-lPgnMWUk-DFX11QuX0,6710
|
|
41
42
|
snowflake/snowpark_connect/expression/map_window_function.py,sha256=apJxtWSnLogMG0F_En67JoGrGRGYQ0I8O0xPRk4TR_o,12152
|
|
@@ -389,50 +390,53 @@ snowflake/snowpark_connect/proto/__init__.py,sha256=BcDSVIfoWPrmy_ghh9YB9Uh66pfm
|
|
|
389
390
|
snowflake/snowpark_connect/proto/control_pb2.py,sha256=rS2hFxhkkTZZmjmW1VAV1CsnN8DljCtNjGYoD89WPeY,2204
|
|
390
391
|
snowflake/snowpark_connect/proto/control_pb2.pyi,sha256=DQVcgVtvo1W1tpdi8_ogBO6D1wqWy-ZlZDSjORRwDYY,1554
|
|
391
392
|
snowflake/snowpark_connect/proto/control_pb2_grpc.py,sha256=IPHf2f27M1HElF55HH-Kvd8WCFRo6SDj_EjEzFEe_rg,5444
|
|
392
|
-
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py,sha256=
|
|
393
|
-
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi,sha256=
|
|
393
|
+
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py,sha256=Buyg8ACpSbx4A9S-xA5MBAhYhF6oe7YXRs7wCcAU2Wc,3632
|
|
394
|
+
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi,sha256=4LLUkliHNthv-H4yFTargdc8FIuytWrg9Ki4JU4Zm1E,4540
|
|
395
|
+
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
394
396
|
snowflake/snowpark_connect/proto/snowflake_rdd_pb2.pyi,sha256=IA_TC6cYM50qTlpSL0UwhmbNkNYgEYuNcZLYTxbGfBc,1780
|
|
395
397
|
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py,sha256=now6RWB80CV5Jko0DBLFMdXYXzvfX30uhHqHb-hKe2o,4886
|
|
396
398
|
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi,sha256=4PZkACNf5ulshE8yP2Sl36CXH4UBpIKvZPhzFqeEbsM,7302
|
|
399
|
+
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
397
400
|
snowflake/snowpark_connect/relation/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
398
|
-
snowflake/snowpark_connect/relation/io_utils.py,sha256=
|
|
401
|
+
snowflake/snowpark_connect/relation/io_utils.py,sha256=5FzR34-rEcZkxtLSWpArzpCwr0_Zi9jNY-KM80XBj_k,4266
|
|
399
402
|
snowflake/snowpark_connect/relation/map_aggregate.py,sha256=KElVYO62V3jkU8ldTCfTX2F_atP_GZAozPY1X0W42XQ,19189
|
|
400
403
|
snowflake/snowpark_connect/relation/map_catalog.py,sha256=mcx6An4fqHAxy2OhOC66Xe_0aRtYPDGkBEgMK5CfaXU,5822
|
|
401
|
-
snowflake/snowpark_connect/relation/map_column_ops.py,sha256=
|
|
404
|
+
snowflake/snowpark_connect/relation/map_column_ops.py,sha256=cQ9Cde2PMAGXoQWSd984nsp86JCZL7YsAHvfu8Vi50c,49199
|
|
402
405
|
snowflake/snowpark_connect/relation/map_crosstab.py,sha256=H_J8-IARK6zMEUFrOjKif1St6M20gvBAnP0EuArFHGg,2422
|
|
403
406
|
snowflake/snowpark_connect/relation/map_extension.py,sha256=sjSGbjrZCU2Q3tSxbtuuUwgfzl7KfCgLTHiz2aYUAYk,23334
|
|
404
|
-
snowflake/snowpark_connect/relation/map_join.py,sha256=
|
|
407
|
+
snowflake/snowpark_connect/relation/map_join.py,sha256=I-_jifoCOtahG49maa1Ew4zQ-ArZx-HmRLRrj3q625A,15604
|
|
405
408
|
snowflake/snowpark_connect/relation/map_local_relation.py,sha256=VBfwBT75GQUe01UOZptwcYsI7zZxaIMQyTOG6kmVuJ0,15219
|
|
406
409
|
snowflake/snowpark_connect/relation/map_map_partitions.py,sha256=y6WhtacyYRmV8zLv3dQtBP2asijLze363htQbgNyoak,4130
|
|
407
410
|
snowflake/snowpark_connect/relation/map_relation.py,sha256=6RncDhkGXnme6m3sCzOmyfm9x0aM-aqn9H60HY-jdzg,12733
|
|
408
|
-
snowflake/snowpark_connect/relation/map_row_ops.py,sha256=
|
|
411
|
+
snowflake/snowpark_connect/relation/map_row_ops.py,sha256=76qMXMLisEZpcjLRHkkqufKEIK8NAiGOKcwTI1N-qkY,34877
|
|
409
412
|
snowflake/snowpark_connect/relation/map_sample_by.py,sha256=8ALQbeUsB89sI3uiUFqG3w1A4TtOzOAL4umdKp6-c38,1530
|
|
410
|
-
snowflake/snowpark_connect/relation/map_show_string.py,sha256
|
|
411
|
-
snowflake/snowpark_connect/relation/map_sql.py,sha256=
|
|
412
|
-
snowflake/snowpark_connect/relation/map_stats.py,sha256=
|
|
413
|
+
snowflake/snowpark_connect/relation/map_show_string.py,sha256=-QgOCZ_Kf7qDBN6hd0-eTxXqvVvzoJxw5hGBdk9Upgs,3669
|
|
414
|
+
snowflake/snowpark_connect/relation/map_sql.py,sha256=fDGsl_ZpNo2_rkhXV1cO6i6lnUAnrK-bpiBcKiCnbGU,105507
|
|
415
|
+
snowflake/snowpark_connect/relation/map_stats.py,sha256=xc0ito9lxl3HtYUnWEVuIwV0h3vdD3inSnfmJmztO1g,14493
|
|
413
416
|
snowflake/snowpark_connect/relation/map_subquery_alias.py,sha256=rHgE9XUzuWWkjNPtJz3Sxzz2aFo690paHKZh9frqPXk,1456
|
|
414
417
|
snowflake/snowpark_connect/relation/map_udtf.py,sha256=cfDnbZ3TRJ6eb0EVResu6GL-OwQpaEabWLbrhgWnkRw,13316
|
|
415
418
|
snowflake/snowpark_connect/relation/stage_locator.py,sha256=3PnSmuubtU04wTf4B_kyFK1ag45QXBjzfoKY5mu5Gtk,8925
|
|
416
|
-
snowflake/snowpark_connect/relation/utils.py,sha256=
|
|
419
|
+
snowflake/snowpark_connect/relation/utils.py,sha256=I5June2uch3hsXoQk21y2v_UkLVsBbaJtpV8qEcwIok,8916
|
|
417
420
|
snowflake/snowpark_connect/relation/catalogs/__init__.py,sha256=0yJ5Nfg7SIxudI0P7_U5EWPyiTpkMet8tSq-IwutSZo,265
|
|
418
421
|
snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py,sha256=wujeuKotJZRzpPp_WqVB9TkfprFU2tIXTQJk_eFOR0o,9826
|
|
419
422
|
snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py,sha256=e9rXL0DOAf4VBZfa-idqehLAEZoCgIoE4IDiLVvR4dQ,28475
|
|
420
423
|
snowflake/snowpark_connect/relation/catalogs/utils.py,sha256=AgiBkK9Xwm9ZyjsKZYK9eTb4YZ9C5dAimD9DLlft-tY,1753
|
|
421
424
|
snowflake/snowpark_connect/relation/read/__init__.py,sha256=5J3IOTKu4Qmenouz1Oz_bUu_4c6KpxtaC63mPUGLyeY,132
|
|
422
425
|
snowflake/snowpark_connect/relation/read/jdbc_read_dbapi.py,sha256=nwvBYwdDTRQc8ljt4CLLaVl5M2uei1TDICJkz7CDSG8,24608
|
|
423
|
-
snowflake/snowpark_connect/relation/read/map_read.py,sha256=
|
|
424
|
-
snowflake/snowpark_connect/relation/read/map_read_csv.py,sha256=
|
|
426
|
+
snowflake/snowpark_connect/relation/read/map_read.py,sha256=9SBe9h1ZVv9QFQIfFwim2BQODToCIUclNYETZhEjKsA,15770
|
|
427
|
+
snowflake/snowpark_connect/relation/read/map_read_csv.py,sha256=3piGbSdzx5SPr10KCaqF8WrjWDlCeXQlUi3d4cfpeU8,8269
|
|
425
428
|
snowflake/snowpark_connect/relation/read/map_read_jdbc.py,sha256=rfuf2Gp89v-9YFhcXFGdpzmfUgYm1ml0wYN5fdu5HA8,3950
|
|
426
|
-
snowflake/snowpark_connect/relation/read/map_read_json.py,sha256=
|
|
427
|
-
snowflake/snowpark_connect/relation/read/map_read_parquet.py,sha256=
|
|
429
|
+
snowflake/snowpark_connect/relation/read/map_read_json.py,sha256=VWd_g7OeE2dBMxJFvLXt4ntdN9fu8Izerdt3-RGmDYA,13255
|
|
430
|
+
snowflake/snowpark_connect/relation/read/map_read_parquet.py,sha256=dCEmVW40H0bZpyH3eIwKz70iME9mLkQxPPQ-1OawCAA,7384
|
|
428
431
|
snowflake/snowpark_connect/relation/read/map_read_socket.py,sha256=yg7aO7jXMOyLQ9k3-abywNN2VAgvtvix2V8LsR_XQO4,2267
|
|
429
432
|
snowflake/snowpark_connect/relation/read/map_read_table.py,sha256=mlbC4mbsV4_mHxYpxkOJ8nr8aNwEh2xBzfzC07XXaCQ,6607
|
|
430
433
|
snowflake/snowpark_connect/relation/read/map_read_text.py,sha256=9y0N5kxNrjAGvrkSK2bf01yqiv6kqhoAExi7qQ9GQCg,3689
|
|
434
|
+
snowflake/snowpark_connect/relation/read/metadata_utils.py,sha256=-m9-YXt7fvHr0d6Lkmmp1j9Il6bXjOZR2EUDoPAMGuo,5428
|
|
431
435
|
snowflake/snowpark_connect/relation/read/reader_config.py,sha256=PMh1R5IjqqTwiAAqvDRhnTx8Jxnhq8wVCmpZRqqKD3E,16437
|
|
432
436
|
snowflake/snowpark_connect/relation/read/utils.py,sha256=rIIM6d2WXHh7MLGyHNiRc9tS8b0dmyFQr7rHepIYJOU,4111
|
|
433
437
|
snowflake/snowpark_connect/relation/write/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
434
438
|
snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py,sha256=GI9FyGZuQQNV-6Q8Ob-Xr0im3iAPdH-Jkyx8bjwbOuE,11931
|
|
435
|
-
snowflake/snowpark_connect/relation/write/map_write.py,sha256=
|
|
439
|
+
snowflake/snowpark_connect/relation/write/map_write.py,sha256=w47pAPxGj1HMZggmxsMsKQEWw47bK3DBct24nMB48aA,47553
|
|
436
440
|
snowflake/snowpark_connect/relation/write/map_write_jdbc.py,sha256=1nOWRgjtZzfRwnSRGFP9V6mqBVlGhSBr2KHGHbe4JMU,1404
|
|
437
441
|
snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar,sha256=tVyOp6tXxu9nm6SDufwQiGzfH3pnuh_7PowsMZxOolY,9773
|
|
438
442
|
snowflake/snowpark_connect/utils/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
@@ -440,7 +444,7 @@ snowflake/snowpark_connect/utils/artifacts.py,sha256=TkHZ2uNfZiphgtG91V1_c_h9yP9
|
|
|
440
444
|
snowflake/snowpark_connect/utils/cache.py,sha256=bAyoNBW6Z1ui9BuppDywbQeG6fdju4L-owFHzySOTnk,3382
|
|
441
445
|
snowflake/snowpark_connect/utils/concurrent.py,sha256=BTbUmvupLzUSRd6L7kKk9yIXFdqlDOkXebVMaECRD-A,3653
|
|
442
446
|
snowflake/snowpark_connect/utils/context.py,sha256=aYCQE-K4OgGmCDCw16H56hnS9EiezZ2u3uEvbcuEn1I,13488
|
|
443
|
-
snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=
|
|
447
|
+
snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=1lk3pl1zSN4zSQBay9v5W3tljiR1fCKWaCID5BDYZxc,9213
|
|
444
448
|
snowflake/snowpark_connect/utils/env_utils.py,sha256=g__Uio5ae20Tm1evahIHdJUXQYPmjNUT_kYPSIy5JDU,1488
|
|
445
449
|
snowflake/snowpark_connect/utils/external_udxf_cache.py,sha256=eSZHMbjTxnkg78IlbG5P1Vno6j5ag_FSI0c4Xi2UyPs,1044
|
|
446
450
|
snowflake/snowpark_connect/utils/identifiers.py,sha256=yHsOklj6SM2re5auhSSMLPSvCYhpR8Cgy-Kgevf8gDc,7810
|
|
@@ -451,7 +455,7 @@ snowflake/snowpark_connect/utils/profiling.py,sha256=ttdHzQUYarvTqJASLNuKFIax7ej
|
|
|
451
455
|
snowflake/snowpark_connect/utils/scala_udf_utils.py,sha256=RFDDMmgQ_xBWk98kdfWaw4Hla3ZqYf3UAijU4uAUNdA,23011
|
|
452
456
|
snowflake/snowpark_connect/utils/session.py,sha256=3-76jBcSQFOIJVmXvyClMI2kIz_5PJXWTHE5pcSo_8w,7431
|
|
453
457
|
snowflake/snowpark_connect/utils/snowpark_connect_logging.py,sha256=23bvbALGqixJ3Ap9QWM3OpcKNK-sog2mr9liSmvwqYU,1123
|
|
454
|
-
snowflake/snowpark_connect/utils/telemetry.py,sha256=
|
|
458
|
+
snowflake/snowpark_connect/utils/telemetry.py,sha256=Eh8v7kXbkvfZFcCk_fyMUHM7KjWg7CkeIxYKzvQ1vTo,25267
|
|
455
459
|
snowflake/snowpark_connect/utils/temporary_view_cache.py,sha256=M1czwb-uv0nP9w1meB72NR7cj0iryJc_OYFPztx5XuU,2080
|
|
456
460
|
snowflake/snowpark_connect/utils/udf_cache.py,sha256=AmUFc6iv0UvJF8iH6kAp4BWcZ3O465qyS1pcxf5mQZ8,13342
|
|
457
461
|
snowflake/snowpark_connect/utils/udf_helper.py,sha256=g-TxTs4ARyJWYgADrosfQQG-ykBBQdm1g5opslxJq_E,12563
|
|
@@ -465,17 +469,17 @@ snowflake/snowpark_decoder/dp_session.py,sha256=HIr3TfKgYl5zqaGR5xpFU9ZVkcaTB9I8
|
|
|
465
469
|
snowflake/snowpark_decoder/spark_decoder.py,sha256=EQiCvBiqB736Bc17o3gnYGtcYVcyfGxroO5e1kbe1Co,2885
|
|
466
470
|
snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py,sha256=2eSDqeyfMvmIJ6_rF663DrEe1dg_anrP4OpVJNTJHaQ,2598
|
|
467
471
|
snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi,sha256=aIH23k52bXdw5vO3RtM5UcOjDPaWsJFx1SRUSk3qOK8,6142
|
|
468
|
-
snowpark_connect-0.
|
|
469
|
-
snowpark_connect-0.
|
|
470
|
-
snowpark_connect-0.
|
|
471
|
-
snowpark_connect-0.
|
|
472
|
-
snowpark_connect-0.
|
|
473
|
-
snowpark_connect-0.
|
|
472
|
+
snowpark_connect-0.30.1.data/scripts/snowpark-connect,sha256=yZ94KqbWACxnwV8mpg8NjILvvRNjnF8B3cs3ZFNuIM4,1546
|
|
473
|
+
snowpark_connect-0.30.1.data/scripts/snowpark-session,sha256=NMAHSonTo-nmOZSkQNlszUC0jLJ8QWEDUsUmMe2UAOw,190
|
|
474
|
+
snowpark_connect-0.30.1.data/scripts/snowpark-submit,sha256=Zd98H9W_d0dIqMSkQLdHyW5G3myxF0t4c3vNBt2nD6A,12056
|
|
475
|
+
snowpark_connect-0.30.1.dist-info/licenses/LICENSE-binary,sha256=fmBlX39HwTlBUyiKEznaLZGuxQy-7ndLLG_rTXjF02Y,22916
|
|
476
|
+
snowpark_connect-0.30.1.dist-info/licenses/LICENSE.txt,sha256=Ff9cPv4xu0z7bnMTHzo4vDncOShsy33w4oJMA2xjn6c,11365
|
|
477
|
+
snowpark_connect-0.30.1.dist-info/licenses/NOTICE-binary,sha256=elMF8brgGNJwOz8YdorzBF6-U8ZhR8F-77FfGkZng7U,57843
|
|
474
478
|
spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
475
479
|
spark/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
476
480
|
spark/connect/envelope_pb2.py,sha256=7Gc6OUA3vaCuTCIKamb_Iiw7W9jPTcWNEv1im20eWHM,2726
|
|
477
481
|
spark/connect/envelope_pb2.pyi,sha256=VXTJSPpcxzB_dWqVdvPY4KkPhJfh0WmkX7SNHWoLhx0,3358
|
|
478
|
-
snowpark_connect-0.
|
|
479
|
-
snowpark_connect-0.
|
|
480
|
-
snowpark_connect-0.
|
|
481
|
-
snowpark_connect-0.
|
|
482
|
+
snowpark_connect-0.30.1.dist-info/METADATA,sha256=GLLoHHRS1oJ03td7EIC8N3EsPqmw7KH3xaZbNNr2wi4,1625
|
|
483
|
+
snowpark_connect-0.30.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
484
|
+
snowpark_connect-0.30.1.dist-info/top_level.txt,sha256=ExnWqVpoTHRG99fu_AxXZVOz8c-De7nNu0yFCGylM8I,16
|
|
485
|
+
snowpark_connect-0.30.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/licenses/LICENSE-binary
RENAMED
|
File without changes
|
{snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/licenses/LICENSE.txt
RENAMED
|
File without changes
|
{snowpark_connect-0.29.0.dist-info → snowpark_connect-0.30.1.dist-info}/licenses/NOTICE-binary
RENAMED
|
File without changes
|
|
File without changes
|