Skip to content

Commit bc929f0

Browse files
authored
Revert "ODSC-45790: Improve error reporting. Improve get_feature_df output. H…"
1 parent ddb262d commit bc929f0

File tree

7 files changed

+21
-165
lines changed

7 files changed

+21
-165
lines changed

ads/feature_store/dataset.py

Lines changed: 4 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88

99
import pandas
1010
from great_expectations.core import ExpectationSuite
11-
from oci.feature_store.models import (
12-
DatasetFeatureGroupCollection,
13-
DatasetFeatureGroupSummary,
14-
)
15-
1611
from ads.common import utils
1712
from ads.common.oci_mixin import OCIModelMixin
1813
from ads.feature_store.common.enums import (
@@ -31,7 +26,6 @@
3126
OciExecutionStrategyProvider,
3227
)
3328
from ads.feature_store.feature import DatasetFeature
34-
from ads.feature_store.feature_group import FeatureGroup
3529
from ads.feature_store.feature_group_expectation import Expectation
3630
from ads.feature_store.feature_option_details import FeatureOptionDetails
3731
from ads.feature_store.service.oci_dataset import OCIDataset
@@ -119,7 +113,6 @@ class Dataset(Builder):
119113
CONST_ITEMS = "items"
120114
CONST_LAST_JOB_ID = "jobId"
121115
CONST_MODEL_DETAILS = "modelDetails"
122-
CONST_FEATURE_GROUP = "datasetFeatureGroups"
123116

124117
attribute_map = {
125118
CONST_ID: "id",
@@ -137,7 +130,6 @@ class Dataset(Builder):
137130
CONST_LIFECYCLE_STATE: "lifecycle_state",
138131
CONST_MODEL_DETAILS: "model_details",
139132
CONST_PARTITION_KEYS: "partition_keys",
140-
CONST_FEATURE_GROUP: "dataset_feature_groups",
141133
}
142134

143135
def __init__(self, spec: Dict = None, **kwargs) -> None:
@@ -511,44 +503,6 @@ def with_model_details(self, model_details: ModelDetails) -> "Dataset":
511503

512504
return self.set_spec(self.CONST_MODEL_DETAILS, model_details.to_dict())
513505

514-
@property
515-
def feature_groups(self) -> List["FeatureGroup"]:
516-
collection: "DatasetFeatureGroupCollection" = self.get_spec(
517-
self.CONST_FEATURE_GROUP
518-
)
519-
feature_groups: List["FeatureGroup"] = []
520-
if collection and collection.items:
521-
for datasetFGSummary in collection.items:
522-
feature_groups.append(
523-
FeatureGroup.from_id(datasetFGSummary.feature_group_id)
524-
)
525-
526-
return feature_groups
527-
528-
@feature_groups.setter
529-
def feature_groups(self, feature_groups: List["FeatureGroup"]):
530-
self.with_feature_groups(feature_groups)
531-
532-
def with_feature_groups(self, feature_groups: List["FeatureGroup"]) -> "Dataset":
533-
"""Sets the model details for the dataset.
534-
535-
Parameters
536-
----------
537-
feature_groups: List of feature groups
538-
Returns
539-
-------
540-
Dataset
541-
The Dataset instance (self).
542-
543-
"""
544-
collection: List["DatasetFeatureGroupSummary"] = []
545-
for group in feature_groups:
546-
collection.append(DatasetFeatureGroupSummary(feature_group_id=group.id))
547-
548-
return self.set_spec(
549-
self.CONST_FEATURE_GROUP, DatasetFeatureGroupCollection(items=collection)
550-
)
551-
552506
@property
553507
def partition_keys(self) -> List[str]:
554508
return self.get_spec(self.CONST_PARTITION_KEYS)
@@ -606,9 +560,7 @@ def add_models(self, model_details: ModelDetails) -> "Dataset":
606560
f"Dataset update Failed with : {type(ex)} with error message: {ex}"
607561
)
608562
if existing_model_details:
609-
self.with_model_details(
610-
ModelDetails().with_items(existing_model_details["items"])
611-
)
563+
self.with_model_details(ModelDetails().with_items(existing_model_details["items"]))
612564
else:
613565
self.with_model_details(ModelDetails().with_items([]))
614566
return self
@@ -700,7 +652,6 @@ def create(self, **kwargs) -> "Dataset":
700652
# Create dataset
701653
logger.info("Saving dataset.")
702654
self.oci_dataset = self._to_oci_dataset(**kwargs).create()
703-
self._update_from_oci_dataset_model(self.oci_dataset)
704655
self.with_id(self.oci_dataset.id)
705656
return self
706657

@@ -778,10 +729,11 @@ def _update_from_oci_dataset_model(self, oci_dataset: OCIDataset) -> "Dataset":
778729

779730
# Update the main properties
780731
self.oci_dataset = oci_dataset
732+
dataset_details = oci_dataset.to_dict()
781733

782734
for infra_attr, dsc_attr in self.attribute_map.items():
783-
if dsc_attr in self.oci_dataset.attribute_map:
784-
self.set_spec(infra_attr, getattr(self.oci_dataset, dsc_attr))
735+
if infra_attr in dataset_details:
736+
self.set_spec(infra_attr, dataset_details[infra_attr])
785737

786738
return self
787739

@@ -1061,10 +1013,6 @@ def to_dict(self) -> Dict:
10611013
for key, value in spec.items():
10621014
if hasattr(value, "to_dict"):
10631015
value = value.to_dict()
1064-
if hasattr(value, "attribute_map"):
1065-
value = self.oci_dataset.client.base_client.sanitize_for_serialization(
1066-
value
1067-
)
10681016
spec[key] = value
10691017

10701018
return {

ads/feature_store/execution_strategy/spark/spark_execution.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
show_validation_summary,
1717
)
1818
from ads.feature_store.execution_strategy.engine.spark_engine import SparkEngine
19-
import traceback
2019

2120
try:
2221
from pyspark.sql import DataFrame
@@ -292,9 +291,8 @@ def _save_offline_dataframe(
292291

293292
except Exception as ex:
294293
error_details = str(ex)
295-
tb = traceback.format_exc()
296294
logger.error(
297-
f"FeatureGroup Materialization Failed with : {type(ex)} with error message: {ex} and stacktrace {tb}",
295+
f"FeatureGroup Materialization Failed with : {type(ex)} with error message: {ex}"
298296
)
299297

300298
show_ingestion_summary(
@@ -429,9 +427,8 @@ def _save_dataset_input(self, dataset, dataset_job: DatasetJob):
429427

430428
except Exception as ex:
431429
error_details = str(ex)
432-
tb = traceback.format_exc()
433430
logger.error(
434-
f"Dataset Materialization Failed with : {type(ex)} with error message: {ex} and stacktrace {tb}"
431+
f"Dataset Materialization Failed with : {type(ex)} with error message: {ex}"
435432
)
436433

437434
show_ingestion_summary(

ads/feature_store/feature_group.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,7 @@ def get_features_df(self) -> "pd.DataFrame":
748748
{
749749
"name": feature.feature_name,
750750
"type": feature.feature_type,
751+
"feature_group_id": feature.feature_group_id,
751752
}
752753
)
753754
return pd.DataFrame.from_records(records)

tests/integration/feature_store/test_base.py

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import oci
1212
import pandas as pd
13-
from ads.feature_store.entity import Entity
1413
from great_expectations.core import ExpectationSuite, ExpectationConfiguration
1514
import ads
1615
import os
@@ -23,7 +22,7 @@
2322

2423
client_kwargs = dict(
2524
retry_strategy=oci.retry.NoneRetryStrategy,
26-
service_endpoint="http://127.0.0.1:21000/20230101",
25+
service_endpoint=os.getenv("service_endpoint"),
2726
)
2827
ads.set_auth(client_kwargs=client_kwargs)
2928

@@ -37,26 +36,20 @@
3736

3837

3938
def transformation_with_kwargs(data_frame, **kwargs):
40-
is_area_enabled = kwargs.get("is_area_enabled")
39+
is_area_enabled = kwargs.get('is_area_enabled')
4140

4241
if is_area_enabled:
4342
# Calculate petal area and sepal area
44-
data_frame["petal_area"] = (
45-
data_frame["petal_length"] * data_frame["petal_width"]
46-
)
47-
data_frame["sepal_area"] = (
48-
data_frame["sepal_length"] * data_frame["sepal_width"]
49-
)
43+
data_frame["petal_area"] = data_frame["petal_length"] * data_frame["petal_width"]
44+
data_frame["sepal_area"] = data_frame["sepal_length"] * data_frame["sepal_width"]
5045

5146
# Return the updated DataFrame
5247
return data_frame
5348

5449

5550
class FeatureStoreTestCase:
5651
# networks compartment in feature store
57-
TIME_NOW = str.format(
58-
"{}_{}", datetime.utcnow().strftime("%Y_%m_%d_%H_%M_%S"), int(random() * 1000)
59-
)
52+
TIME_NOW = str.format("{}_{}",datetime.utcnow().strftime("%Y_%m_%d_%H_%M_%S"),int(random()*1000))
6053
TENANCY_ID = "ocid1.tenancy.oc1..aaaaaaaa462hfhplpx652b32ix62xrdijppq2c7okwcqjlgrbknhgtj2kofa"
6154
COMPARTMENT_ID = "ocid1.tenancy.oc1..aaaaaaaa462hfhplpx652b32ix62xrdijppq2c7okwcqjlgrbknhgtj2kofa"
6255
METASTORE_ID = "ocid1.datacatalogmetastore.oc1.iad.amaaaaaabiudgxyap7tizm4gscwz7amu7dixz7ml3mtesqzzwwg3urvvdgua"
@@ -383,11 +376,9 @@ def create_entity_resource(self, feature_store) -> "Entity":
383376
return entity
384377

385378
def create_transformation_resource(self, feature_store) -> "Transformation":
386-
transformation = feature_store.create_transformation(
387-
source_code_func=transformation_with_kwargs,
388-
display_name="transformation_with_kwargs",
389-
transformation_mode=TransformationMode.PANDAS,
390-
)
379+
transformation = feature_store.create_transformation(source_code_func=transformation_with_kwargs,
380+
display_name="transformation_with_kwargs",
381+
transformation_mode=TransformationMode.PANDAS)
391382
return transformation
392383

393384
def define_feature_group_resource(

tests/integration/feature_store/test_dataset_complex.py

Lines changed: 0 additions & 76 deletions
This file was deleted.

tests/integration/feature_store/test_dataset_delta.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
import pytest
88
import unittest
99

10-
from ads.feature_store.dataset import Dataset
11-
1210
from ads.feature_store.feature_option_details import FeatureOptionDetails
1311
from tests.integration.feature_store.test_base import FeatureStoreTestCase
1412

@@ -127,9 +125,6 @@ def test_dataset_materialise_overwrite(self, feature_group, dataset):
127125
dataset.materialise(ingestion_mode=IngestionMode.OVERWRITE)
128126

129127
df = dataset.preview(row_count=50)
130-
assert (
131-
dataset.get_spec(Dataset.CONST_FEATURE_GROUP).is_manual_association == False
132-
)
133128
assert df.count() == 14
134129
assert len(df.columns) == 6
135130

tests/unitary/with_extras/feature_store/test_dataset.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,12 @@ def test__to_oci_fs_entity(self, mock_load_key_file, mock_config_from_file):
259259
@patch.object(SparkSessionSingleton, "__init__", return_value=None)
260260
@patch.object(SparkSessionSingleton, "get_spark_session")
261261
def test_materialise(self, spark, get_spark_session, mock_update):
262-
with patch.object(DatasetJob, "create") as mock_dataset_job:
263-
with patch.object(FeatureStore, "from_id"):
264-
with patch.object(DatasetJob, "_mark_job_complete"):
265-
mock_dataset_job.return_value = self.mock_dsc_dataset_job
266-
self.mock_dsc_dataset.with_id(DATASET_OCID)
267-
self.mock_dsc_dataset.materialise()
262+
with patch.object(DatasetJob, "create") as mock_dataset_job:
263+
with patch.object(FeatureStore, "from_id"):
264+
with patch.object(DatasetJob, "_mark_job_complete"):
265+
mock_dataset_job.return_value = self.mock_dsc_dataset_job
266+
self.mock_dsc_dataset.with_id(DATASET_OCID)
267+
self.mock_dsc_dataset.materialise()
268268

269269
@patch.object(SparkSessionSingleton, "__init__", return_value=None)
270270
@patch.object(SparkSessionSingleton, "get_spark_session")

0 commit comments

Comments
 (0)