Skip to content

Commit c76802f

Browse files
[SNOW-2437420] Add experiment to lineage versioned domains (#3934)
1 parent d7caffe commit c76802f

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/snowflake/snowpark/lineage.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ class _SnowflakeDomain:
135135
TABLE = "TABLE"
136136
MODULE = "MODULE"
137137
DATASET = "DATASET"
138+
EXPERIMENT = "EXPERIMENT"
138139
VIEW = "VIEW"
139140
COLUMN = "COLUMN"
140141
SNOWSERVICE_INSTANCE = "SNOWSERVICE_INSTANCE"
@@ -274,6 +275,7 @@ def __init__(self, session: "snowflake.snowpark.session.Session") -> None:
274275
_UserDomain.FEATURE_VIEW,
275276
_UserDomain.MODEL,
276277
_SnowflakeDomain.DATASET,
278+
_SnowflakeDomain.EXPERIMENT,
277279
}
278280

279281
def _get_lineage(

tests/unit/test_lineage.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,17 @@ def test_get_name_and_version():
112112
in str(exc)
113113
)
114114

115+
graph_entity = {
116+
_ObjectField.USER_DOMAIN: _SnowflakeDomain.EXPERIMENT,
117+
_ObjectField.DB: "db1",
118+
_ObjectField.SCHEMA: "schema1",
119+
_ObjectField.PROPERTIES: {_ObjectField.PARENT_NAME: "exp_parent"},
120+
_ObjectField.NAME: "MY_RUN",
121+
}
122+
name, version = Lineage(fake_session)._get_name_and_version(graph_entity)
123+
assert name == "db1.schema1.exp_parent"
124+
assert version == "MY_RUN"
125+
115126

116127
def test_get_user_entity():
117128
fake_session = mock.create_autospec(Session, _session_id=123456)
@@ -213,6 +224,22 @@ def test_get_user_entity():
213224
assert _ObjectField.TYPE in user_entity
214225
assert user_entity[_ObjectField.TYPE] == "TABLE"
215226

227+
# EXPERIMENT should surface name and version
228+
graph_entity = {
229+
_ObjectField.USER_DOMAIN: _SnowflakeDomain.EXPERIMENT,
230+
_ObjectField.DB: "db1",
231+
_ObjectField.SCHEMA: "schema1",
232+
_ObjectField.PROPERTIES: {_ObjectField.PARENT_NAME: "exp_parent"},
233+
_ObjectField.NAME: "MY_RUN",
234+
_ObjectField.CREATED_ON: "123455",
235+
_ObjectField.STATUS: "Active",
236+
}
237+
238+
user_entity = Lineage(fake_session)._get_user_entity(graph_entity)
239+
assert user_entity[_ObjectField.NAME] == "db1.schema1.exp_parent"
240+
assert user_entity[_ObjectField.DOMAIN] == _SnowflakeDomain.EXPERIMENT
241+
assert user_entity[_ObjectField.VERSION] == "MY_RUN"
242+
216243

217244
def test_split_fully_qualified_name():
218245
test_cases_valid = [

0 commit comments

Comments
 (0)