Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
- Added an option `keep_column_order` for keeping original column order in `DataFrame.with_column` and `DataFrame.with_columns`.
- Added support for `contains_null` parameter to ArrayType.
- Added support for `value_contains_null` parameter to MapType.
- Added `interactive` to telemetry that indicates whether the current environment is an interactive one.


#### Bug Fixes

Expand Down
6 changes: 6 additions & 0 deletions src/snowflake/snowpark/_internal/telemetry.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
get_python_version,
get_version,
is_in_stored_procedure,
is_interactive,
)


Expand Down Expand Up @@ -63,6 +64,7 @@ class TelemetryField(Enum):
KEY_PYTHON_VERSION = "python_version"
KEY_CLIENT_LANGUAGE = "client_language"
KEY_OS = "operating_system"
KEY_IS_INTERACTIVE = "interactive"
KEY_DATA = "data"
KEY_CATEGORY = "category"
KEY_CREATED_BY_SNOWPARK = "created_by_snowpark"
Expand Down Expand Up @@ -308,6 +310,7 @@ def __init__(self, conn: SnowflakeConnection) -> None:
self.version: str = get_version()
self.python_version: str = get_python_version()
self.os: str = get_os_name()
self.is_interactive = is_interactive()

def send(self, msg: Dict, timestamp: Optional[int] = None):
if self.telemetry:
Expand All @@ -323,6 +326,9 @@ def _create_basic_telemetry_data(self, telemetry_type: str) -> Dict[str, Any]:
TelemetryField.KEY_PYTHON_VERSION.value: self.python_version,
TelemetryField.KEY_OS.value: self.os,
PCTelemetryField.KEY_TYPE.value: telemetry_type,
TelemetryField.KEY_IS_INTERACTIVE.value: PCTelemetryData.TRUE
if self.is_interactive
else PCTelemetryData.FALSE,
}
return message

Expand Down
6 changes: 6 additions & 0 deletions src/snowflake/snowpark/_internal/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import random
import re
import string
import sys
import threading
import traceback
import zipfile
Expand Down Expand Up @@ -309,6 +310,11 @@ def get_python_version() -> str:
return platform.python_version()


@lru_cache
def is_interactive() -> bool:
return hasattr(sys, "ps1") or sys.flags.interactive or "snowbook" in sys.modules


@lru_cache
def get_connector_version() -> str:
return ".".join([str(d) for d in connector_version if d is not None])
Expand Down
1 change: 1 addition & 0 deletions tests/integ/modin/test_telemetry.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ def test_send_snowpark_pandas_telemetry_helper(send_mock):
"python_version": ANY,
"operating_system": ANY,
"type": "test_send_type",
"interactive": ANY,
"data": {
"func_name": "test_send_func",
"category": "snowpark_pandas",
Expand Down
Loading