Skip to content

Commit f77bd64

Browse files
committed
Test commit, will not be included in PR
1 parent ff72a63 commit f77bd64

File tree

6 files changed

+1
-285
lines changed

6 files changed

+1
-285
lines changed

src/sagemaker/feature_store/feature_group.py

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
OfflineStoreConfig,
5454
DataCatalogConfig,
5555
FeatureValue,
56-
FeatureParameter,
5756
)
5857

5958
logger = logging.getLogger(__name__)
@@ -538,68 +537,6 @@ def describe(self, next_token: str = None) -> Dict[str, Any]:
538537
feature_group_name=self.name, next_token=next_token
539538
)
540539

541-
def update(self, feature_additions: Sequence[FeatureDefinition]) -> Dict[str, Any]:
542-
"""Update a FeatureGroup and add new features from the given feature definitions.
543-
544-
Args:
545-
feature_additions (Sequence[Dict[str, str]): list of feature definitions to be updated.
546-
Returns:
547-
Response dict from service.
548-
"""
549-
550-
return self.sagemaker_session.update_feature_group(
551-
feature_group_name=self.name,
552-
feature_additions=[
553-
feature_addition.to_dict() for feature_addition in feature_additions
554-
],
555-
)
556-
557-
def update_feature_metadata(
558-
self,
559-
feature_name: str,
560-
description: str = None,
561-
parameter_additions: Sequence[FeatureParameter] = None,
562-
parameter_removals: Sequence[str] = None,
563-
) -> Dict[str, Any]:
564-
"""Update a feature metadata and add/remove metadata.
565-
566-
Args:
567-
feature_name (str): name of the feature to update.
568-
description (str): description of the feature to update.
569-
parameter_additions (Sequence[Dict[str, str]): list of feature parameter to be added.
570-
parameter_removals (Sequence[str]): list of feature parameter key to be removed.
571-
Returns:
572-
Response dict from service.
573-
"""
574-
575-
return self.sagemaker_session.update_feature_metadata(
576-
feature_group_name=self.name,
577-
feature_name=feature_name,
578-
description=description,
579-
parameter_additions=[
580-
parameter_addition.to_dict()
581-
for parameter_addition in parameter_additions
582-
]
583-
if parameter_additions is not None
584-
else [],
585-
parameter_removals=parameter_removals
586-
if parameter_removals is not None
587-
else [],
588-
)
589-
590-
def describe_feature_metadata(self, feature_name: str) -> Dict[str, Any]:
591-
"""Describe feature metadata by feature name.
592-
593-
Args:
594-
feature_name (str): name of the feature.
595-
Returns:
596-
Response dict from service.
597-
"""
598-
599-
return self.sagemaker_session.describe_feature_metadata(
600-
feature_group_name=self.name, feature_name=feature_name
601-
)
602-
603540
def load_feature_definitions(
604541
self,
605542
data_frame: DataFrame,

src/sagemaker/feature_store/inputs.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -207,27 +207,3 @@ def to_dict(self) -> Dict[str, Any]:
207207
FeatureName=self.feature_name,
208208
ValueAsString=self.value_as_string,
209209
)
210-
211-
212-
@attr.s
213-
class FeatureParameter(Config):
214-
"""FeatureParameter for FeatureStore.
215-
216-
Attributes:
217-
key (str): key of the parameter.
218-
value (str): value of the parameter.
219-
"""
220-
221-
key: str = attr.ib(default=None)
222-
value: str = attr.ib(default=None)
223-
224-
def to_dict(self) -> Dict[str, Any]:
225-
"""Construct a dictionary based on the attributes provided.
226-
227-
Returns:
228-
dict represents the attributes.
229-
"""
230-
return Config.construct_dict(
231-
Key=self.key,
232-
Value=self.value,
233-
)

src/sagemaker/session.py

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -4064,68 +4064,6 @@ def describe_feature_group(
40644064
update_args(kwargs, NextToken=next_token)
40654065
return self.sagemaker_client.describe_feature_group(**kwargs)
40664066

4067-
def update_feature_group(
4068-
self, feature_group_name: str, feature_additions: Sequence[Dict[str, str]]
4069-
) -> Dict[str, Any]:
4070-
"""Update a FeatureGroup and add new features from the given feature definitions.
4071-
4072-
Args:
4073-
feature_group_name (str): name of the FeatureGroup to update.
4074-
feature_additions (Sequence[Dict[str, str]): list of feature definitions to be updated.
4075-
Returns:
4076-
Response dict from service.
4077-
"""
4078-
4079-
return self.sagemaker_client.update_feature_group(
4080-
FeatureGroupName=feature_group_name, FeatureAdditions=feature_additions
4081-
)
4082-
4083-
def update_feature_metadata(
4084-
self,
4085-
feature_group_name: str,
4086-
feature_name: str,
4087-
description: str = None,
4088-
parameter_additions: Sequence[Dict[str, str]] = None,
4089-
parameter_removals: Sequence[str] = None,
4090-
) -> Dict[str, Any]:
4091-
"""Update a feature metadata and add/remove metadata.
4092-
4093-
Args:
4094-
feature_group_name (str): name of the FeatureGroup to update.
4095-
feature_name (str): name of the feature to update.
4096-
description (str): description of the feature to update.
4097-
parameter_additions (Sequence[Dict[str, str]): list of feature parameter to be added.
4098-
parameter_removals (Sequence[Dict[str, str]): list of feature parameter to be removed.
4099-
Returns:
4100-
Response dict from service.
4101-
"""
4102-
4103-
request = {
4104-
"FeatureGroupName": feature_group_name,
4105-
"FeatureName": feature_name,
4106-
"ParameterAdditions": parameter_additions,
4107-
"ParameterRemovals": parameter_removals,
4108-
}
4109-
if description is not None:
4110-
request["Description"] = description
4111-
return self.sagemaker_client.update_feature_metadata(**request)
4112-
4113-
def describe_feature_metadata(
4114-
self, feature_group_name: str, feature_name: str
4115-
) -> Dict[str, Any]:
4116-
"""Describe feature metadata by feature name in FeatureStore service.
4117-
4118-
Args:
4119-
feature_group_name (str): name of the FeatureGroup.
4120-
feature_name (str): name of the feature.
4121-
Returns:
4122-
Response dict from service.
4123-
"""
4124-
4125-
return self.sagemaker_client.describe_feature_metadata(
4126-
FeatureGroupName=feature_group_name, FeatureName=feature_name
4127-
)
4128-
41294067
def put_record(
41304068
self,
41314069
feature_group_name: str,

tests/integ/test_feature_store.py

Lines changed: 1 addition & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222
import pytest
2323
from pandas import DataFrame
2424

25-
from sagemaker.feature_store.feature_group import FeatureGroup, FeatureParameter
25+
from sagemaker.feature_store.feature_group import FeatureGroup
2626
from sagemaker.feature_store.inputs import FeatureValue
2727
from sagemaker.session import get_execution_role, Session
28-
from sagemaker.feature_store.feature_definition import FractionalFeatureDefinition
2928
from tests.integ.timeout import timeout
3029

3130
BUCKET_POLICY = {
@@ -238,88 +237,6 @@ def test_create_feature_store(
238237
assert output["FeatureGroupArn"].endswith(f"feature-group/{feature_group_name}")
239238

240239

241-
def test_update_feature_group(
242-
feature_store_session,
243-
role,
244-
feature_group_name,
245-
offline_store_s3_uri,
246-
pandas_data_frame,
247-
):
248-
feature_group = FeatureGroup(
249-
name=feature_group_name, sagemaker_session=feature_store_session
250-
)
251-
feature_group.load_feature_definitions(data_frame=pandas_data_frame)
252-
253-
with cleanup_feature_group(feature_group):
254-
feature_group.create(
255-
s3_uri=offline_store_s3_uri,
256-
record_identifier_name="feature1",
257-
event_time_feature_name="feature3",
258-
role_arn=role,
259-
enable_online_store=True,
260-
)
261-
_wait_for_feature_group_create(feature_group)
262-
263-
new_feature_name = "new_feature"
264-
new_features = [FractionalFeatureDefinition(feature_name=new_feature_name)]
265-
feature_group.update(new_features)
266-
time.sleep(10)
267-
feature_definitions = feature_group.describe().get("FeatureDefinitions")
268-
assert any(
269-
[True for elem in feature_definitions if new_feature_name in elem.values()]
270-
)
271-
272-
273-
def test_feature_metadata(
274-
feature_store_session,
275-
role,
276-
feature_group_name,
277-
offline_store_s3_uri,
278-
pandas_data_frame,
279-
):
280-
feature_group = FeatureGroup(
281-
name=feature_group_name, sagemaker_session=feature_store_session
282-
)
283-
feature_group.load_feature_definitions(data_frame=pandas_data_frame)
284-
285-
with cleanup_feature_group(feature_group):
286-
feature_group.create(
287-
s3_uri=offline_store_s3_uri,
288-
record_identifier_name="feature1",
289-
event_time_feature_name="feature3",
290-
role_arn=role,
291-
enable_online_store=True,
292-
)
293-
_wait_for_feature_group_create(feature_group)
294-
295-
parameter_additions = [
296-
FeatureParameter(key="key1", value="value1"),
297-
FeatureParameter(key="key2", value="value2"),
298-
]
299-
description = "test description"
300-
feature_name = "feature1"
301-
feature_group.update_feature_metadata(
302-
feature_name=feature_name,
303-
description=description,
304-
parameter_additions=parameter_additions,
305-
)
306-
describe_feature_metadata = feature_group.describe_feature_metadata(
307-
feature_name=feature_name
308-
)
309-
assert description == describe_feature_metadata.get("Description")
310-
assert 2 == len(describe_feature_metadata.get("Parameters"))
311-
312-
parameter_removals = ["key1"]
313-
feature_group.update_feature_metadata(
314-
feature_name=feature_name, parameter_removals=parameter_removals
315-
)
316-
describe_feature_metadata = feature_group.describe_feature_metadata(
317-
feature_name=feature_name
318-
)
319-
assert description == describe_feature_metadata.get("Description")
320-
assert 1 == len(describe_feature_metadata.get("Parameters"))
321-
322-
323240
def test_ingest_without_string_feature(
324241
feature_store_session,
325242
role,

tests/unit/sagemaker/feature_store/test_feature_store.py

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
AthenaQuery,
3232
IngestionError,
3333
)
34-
from sagemaker.feature_store.inputs import FeatureParameter
3534

3635

3736
class PicklableMock(Mock):
@@ -155,51 +154,6 @@ def test_feature_store_describe(sagemaker_session_mock):
155154
)
156155

157156

158-
def test_feature_store_update(sagemaker_session_mock, feature_group_dummy_definitions):
159-
feature_group = FeatureGroup(
160-
name="MyFeatureGroup", sagemaker_session=sagemaker_session_mock
161-
)
162-
feature_group.update(feature_group_dummy_definitions)
163-
sagemaker_session_mock.update_feature_group.assert_called_with(
164-
feature_group_name="MyFeatureGroup",
165-
feature_additions=[fd.to_dict() for fd in feature_group_dummy_definitions],
166-
)
167-
168-
169-
def test_feature_metadata_update(sagemaker_session_mock):
170-
feature_group = FeatureGroup(
171-
name="MyFeatureGroup", sagemaker_session=sagemaker_session_mock
172-
)
173-
174-
parameter_additions = [FeatureParameter(key="key1", value="value1")]
175-
parameter_removals = ["key2"]
176-
177-
feature_group.update_feature_metadata(
178-
feature_name="Feature1",
179-
description="DummyDescription",
180-
parameter_additions=parameter_additions,
181-
parameter_removals=parameter_removals,
182-
)
183-
sagemaker_session_mock.update_feature_metadata.assert_called_with(
184-
feature_group_name="MyFeatureGroup",
185-
feature_name="Feature1",
186-
description="DummyDescription",
187-
parameter_additions=[pa.to_dict() for pa in parameter_additions],
188-
parameter_removals=parameter_removals,
189-
)
190-
191-
192-
def test_feature_metadata_describe(sagemaker_session_mock):
193-
feature_group = FeatureGroup(
194-
name="MyFeatureGroup", sagemaker_session=sagemaker_session_mock
195-
)
196-
197-
feature_group.describe_feature_metadata(feature_name="Feature1")
198-
sagemaker_session_mock.describe_feature_metadata.assert_called_with(
199-
feature_group_name="MyFeatureGroup", feature_name="Feature1"
200-
)
201-
202-
203157
def test_put_record(sagemaker_session_mock):
204158
feature_group = FeatureGroup(name="MyFeatureGroup", sagemaker_session=sagemaker_session_mock)
205159
feature_group.put_record(record=[])

tests/unit/sagemaker/feature_store/test_inputs.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
S3StorageConfig,
2020
DataCatalogConfig,
2121
OfflineStoreConfig,
22-
FeatureParameter,
2322
)
2423

2524

@@ -84,8 +83,3 @@ def test_offline_data_store_config():
8483
"DisableGlueTableCreation": False,
8584
}
8685
)
87-
88-
89-
def test_feature_metadata():
90-
config = FeatureParameter(key="key", value="value")
91-
assert ordered(config.to_dict()) == ordered({"Key": "key", "Value": "value"})

0 commit comments

Comments
 (0)