13
13
from great_expectations .core import ExpectationSuite , ExpectationConfiguration
14
14
import ads
15
15
import os
16
- from ads .feature_store .common .enums import FeatureType
16
+ from ads .feature_store .common .enums import FeatureType , TransformationMode
17
17
from ads .feature_store .dataset import Dataset
18
18
from ads .feature_store .feature_group import FeatureGroup
19
19
from ads .feature_store .input_feature_detail import FeatureDetail
20
20
from ads .feature_store .statistics_config import StatisticsConfig
21
21
22
-
23
22
client_kwargs = dict (
24
23
retry_strategy = oci .retry .NoneRetryStrategy ,
25
24
service_endpoint = os .getenv ("service_endpoint" ),
35
34
SLEEP_INTERVAL = 60
36
35
37
36
37
+ def transformation_with_kwargs (data_frame , ** kwargs ):
38
+ is_area_enabled = kwargs .get ('is_area_enabled' )
39
+
40
+ if is_area_enabled :
41
+ # Calculate petal area and sepal area
42
+ data_frame ["petal_area" ] = data_frame ["petal_length" ] * data_frame ["petal_width" ]
43
+ data_frame ["sepal_area" ] = data_frame ["sepal_length" ] * data_frame ["sepal_width" ]
44
+
45
+ # Return the updated DataFrame
46
+ return data_frame
47
+
48
+
38
49
class FeatureStoreTestCase :
39
50
# networks compartment in feature store
40
- TIME_NOW = str .format ("{}_{}" ,datetime .utcnow ().strftime ("%Y_%m_%d_%H_%M_%S" ),int (random ()* 1000 ))
51
+ TIME_NOW = str .format ("{}_{}" , datetime .utcnow ().strftime ("%Y_%m_%d_%H_%M_%S" ), int (random () * 1000 ))
41
52
TENANCY_ID = "ocid1.tenancy.oc1..aaaaaaaa462hfhplpx652b32ix62xrdijppq2c7okwcqjlgrbknhgtj2kofa"
42
53
COMPARTMENT_ID = "ocid1.tenancy.oc1..aaaaaaaa462hfhplpx652b32ix62xrdijppq2c7okwcqjlgrbknhgtj2kofa"
43
54
METASTORE_ID = "ocid1.datacatalogmetastore.oc1.iad.amaaaaaabiudgxyap7tizm4gscwz7amu7dixz7ml3mtesqzzwwg3urvvdgua"
@@ -363,8 +374,15 @@ def create_entity_resource(self, feature_store) -> "Entity":
363
374
entity = feature_store .create_entity (display_name = self .get_name ("entity" ))
364
375
return entity
365
376
377
+ def create_transformation_resource (self , feature_store ) -> "Transformation" :
378
+ transformation = feature_store .create_transformation (source_code_func = transformation_with_kwargs ,
379
+ display_name = "transformation_with_kwargs" ,
380
+ transformation_mode = TransformationMode .PANDAS )
381
+
382
+ return transformation
383
+
366
384
def define_feature_group_resource (
367
- self , entity_id , feature_store_id
385
+ self , entity_id , feature_store_id
368
386
) -> "FeatureGroup" :
369
387
feature_group_resource = (
370
388
FeatureGroup ()
@@ -382,7 +400,7 @@ def define_feature_group_resource(
382
400
return feature_group_resource
383
401
384
402
def define_dataset_resource (
385
- self , entity_id , feature_store_id , feature_group_name
403
+ self , entity_id , feature_store_id , feature_group_name
386
404
) -> "Dataset" :
387
405
name = self .get_name ("petals_ds" )
388
406
dataset_resource = (
@@ -452,6 +470,13 @@ def clean_up_feature_group(feature_group):
452
470
except Exception as ex :
453
471
print ("Failed to delete feature group: " , str (ex ))
454
472
exit (1 )
473
+ @staticmethod
474
+ def clean_up_transformation (transformation ):
475
+ try :
476
+ transformation .delete ()
477
+ except Exception as ex :
478
+ print ("Failed to delete transformation: " , str (ex ))
479
+ exit (1 )
455
480
456
481
@staticmethod
457
482
def clean_up_dataset (dataset ):
0 commit comments