Skip to content

Commit 6e779b1

Browse files
Updating Feature store classes name and operations for private preview (Azure#29302)
* update progress * Remove kind property from worksace for release * Remove kind from constructor * Default kind for workspace * Update Default to default * Update get to pop method * update progress * Add _ prefix in load functions for feature store * Adding feature store classes for private preview * Fix Feature transformation code schema * Removing feature set operations and load functions * Remove from init files * Removing experimental for feature store operation classes * import operations from nested path in ml client * Remove load functions from init files * Fix tests
1 parent d49b4ce commit 6e779b1

40 files changed

+779
-206
lines changed

sdk/ml/azure-ai-ml/azure/ai/ml/_artifacts/_artifact_utilities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ def _update_gen2_metadata(name, version, indicator_file, storage_client) -> None
362362

363363
def _check_and_upload_path(
364364
artifact: T,
365-
asset_operations: Union["DataOperations", "ModelOperations", "CodeOperations", "FeatureSetOperations"],
365+
asset_operations: Union["DataOperations", "ModelOperations", "CodeOperations", "_FeatureSetOperations"],
366366
artifact_type: str,
367367
datastore_name: Optional[str] = None,
368368
sas_uri: Optional[str] = None,

sdk/ml/azure-ai-ml/azure/ai/ml/_ml_client.py

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
from azure.ai.ml._utils._experimental import experimental
6060
from azure.ai.ml._utils._http_utils import HttpPipeline
6161
from azure.ai.ml._utils._registry_utils import get_registry_client
62-
from azure.ai.ml._utils.utils import _is_https_url
62+
from azure.ai.ml._utils.utils import _is_https_url, is_private_preview_enabled
6363
from azure.ai.ml.constants._common import AzureMLResourceType
6464
from azure.ai.ml.entities import (
6565
BatchDeployment,
@@ -100,6 +100,9 @@
100100
from azure.ai.ml.operations._local_deployment_helper import _LocalDeploymentHelper
101101
from azure.ai.ml.operations._local_endpoint_helper import _LocalEndpointHelper
102102
from azure.ai.ml.operations._schedule_operations import ScheduleOperations
103+
from azure.ai.ml.operations._feature_set_operations import _FeatureSetOperations
104+
from azure.ai.ml.operations._feature_store_operations import _FeatureStoreOperations
105+
from azure.ai.ml.operations._feature_store_entity_operations import _FeatureStoreEntityOperations
103106

104107
module_logger = logging.getLogger(__name__)
105108

@@ -478,6 +481,31 @@ def __init__(
478481

479482
self._virtual_clusters = VirtualClusterOperations(self._operation_scope, self._credential, **ops_kwargs)
480483

484+
self._featurestores = _FeatureStoreOperations(
485+
self._operation_scope,
486+
self._rp_service_client,
487+
self._operation_container,
488+
self._credential,
489+
**app_insights_handler_kwargs,
490+
)
491+
492+
self._featuresets = _FeatureSetOperations(
493+
self._operation_scope,
494+
self._operation_config,
495+
self._service_client_02_2023_preview,
496+
self._datastores,
497+
**ops_kwargs,
498+
)
499+
500+
self._featurestoreentities = _FeatureStoreEntityOperations(
501+
self._operation_scope, self._operation_config, self._service_client_02_2023_preview, **ops_kwargs
502+
)
503+
504+
if is_private_preview_enabled():
505+
self._operation_container.add(AzureMLResourceType.FEATURE_STORE, self._featurestores)
506+
self._operation_container.add(AzureMLResourceType.FEATURE_SET, self._featuresets)
507+
self._operation_container.add(AzureMLResourceType.FEATURE_STORE_ENTITY, self._featurestoreentities)
508+
481509
@classmethod
482510
def from_config(
483511
cls,
@@ -603,6 +631,39 @@ def registries(self) -> RegistryOperations:
603631
"""
604632
return self._registries
605633

634+
@property
635+
@experimental
636+
def _feature_stores(self) -> _FeatureStoreOperations:
637+
"""A collection of feature-store related operations.
638+
:return: Featurestore operations
639+
:rtype: _FeatureStoreOperations
640+
"""
641+
if is_private_preview_enabled():
642+
return self._featurestores
643+
raise Exception("feature store operations not supported")
644+
645+
@property
646+
@experimental
647+
def _feature_sets(self) -> _FeatureSetOperations:
648+
"""A collection of feature set related operations.
649+
:return: FeatureSet operations
650+
:rtype: _FeatureSetOperations
651+
"""
652+
if is_private_preview_enabled():
653+
return self._featuresets
654+
raise Exception("feature set operations not supported")
655+
656+
@property
657+
@experimental
658+
def _feature_store_entities(self) -> _FeatureStoreEntityOperations:
659+
"""A collection of feature store entity related operations.
660+
:return: FeatureStoreEntity operations
661+
:rtype: _FeatureStoreEntityOperations
662+
"""
663+
if is_private_preview_enabled():
664+
return self._featurestoreentities
665+
raise Exception("feature store entity operations not supported")
666+
606667
@property
607668
def connections(self) -> WorkspaceConnectionsOperations:
608669
"""A collection of workspace connection related operations.

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from .feature_schema import FeatureSchema
99
from .feature_set_schema import FeatureSetSchema
1010
from .featureset_spec_schema import FeaturesetSpecSchema
11-
from .featureset_specification_schema import FeaturesetSpecificationSchema
11+
from .feature_set_specification_schema import FeatureSetSpecificationSchema
1212
from .materialization_settings_schema import MaterializationSettingsSchema
1313
from .source_metadata_schema import SourceMetadataSchema
1414
from .timestamp_column_metadata_schema import TimestampColumnMetadataSchema
@@ -18,7 +18,7 @@
1818
"FeatureSchema",
1919
"FeatureSetSchema",
2020
"FeaturesetSpecSchema",
21-
"FeaturesetSpecificationSchema",
21+
"FeatureSetSpecificationSchema",
2222
"MaterializationSettingsSchema",
2323
"SourceMetadataSchema",
2424
"TimestampColumnMetadataSchema",

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/feature_schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ class FeatureSchema(metaclass=PatchedSchemaMeta):
2323

2424
@post_load
2525
def make(self, data, **kwargs):
26-
from azure.ai.ml.entities._feature_set.feature import Feature
26+
from azure.ai.ml.entities._feature_set.feature import _Feature
2727

28-
return Feature(data_type=type, description=data.pop("description", None), **data)
28+
return _Feature(data_type=type, description=data.pop("description", None), **data)

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/feature_set_schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
from azure.ai.ml._schema.core.schema import YamlFileSchema
1111

1212
from .materialization_settings_schema import MaterializationSettingsSchema
13-
from .featureset_specification_schema import FeaturesetSpecificationSchema
13+
from .feature_set_specification_schema import FeatureSetSpecificationSchema
1414

1515

1616
class FeatureSetSchema(YamlFileSchema):
1717
name = fields.Str(required=True, allow_none=False)
1818
version = fields.Str(required=True, allow_none=False)
19-
specification = NestedField(FeaturesetSpecificationSchema, required=True, allow_none=False)
19+
specification = NestedField(FeatureSetSpecificationSchema, required=True, allow_none=False)
2020
entities = fields.List(fields.Str, required=True, allow_none=False)
2121
stage = fields.Str()
2222
description = fields.Str()

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/featureset_specification_schema.py renamed to sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/feature_set_specification_schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
from azure.ai.ml._schema.core.schema import PatchedSchemaMeta
1010

1111

12-
class FeaturesetSpecificationSchema(metaclass=PatchedSchemaMeta):
12+
class FeatureSetSpecificationSchema(metaclass=PatchedSchemaMeta):
1313
path = fields.Str(required=True, allow_none=False)
1414

1515
@post_load
1616
def make(self, data, **kwargs):
17-
from azure.ai.ml.entities._feature_set.featureset_specification import FeaturesetSpecification
17+
from azure.ai.ml.entities._feature_set.feature_set_specification import _FeatureSetSpecification
1818

19-
return FeaturesetSpecification(**data)
19+
return _FeatureSetSpecification(**data)

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/feature_transformation_code_schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ class FeatureTransformationCodeSchema(metaclass=PatchedSchemaMeta):
1515

1616
@post_load
1717
def make(self, data, **kwargs):
18-
from azure.ai.ml.entities._feature_set.delay_metadata import DelayMetadata
18+
from azure.ai.ml.entities._feature_set.feature_transformation_code import FeatureTransformationCode
1919

20-
return DelayMetadata(**data)
20+
return FeatureTransformationCode(**data)

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_set/materialization_settings_schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class MaterializationComputeResourceSchema(metaclass=PatchedSchemaMeta):
1717

1818
@post_load
1919
def make(self, data, **kwargs):
20-
from azure.ai.ml.entities._feature_set.materialization_compute_resource import MaterializationComputeResource
20+
from azure.ai.ml.entities._feature_set.materialization_compute_resource import _MaterializationComputeResource
2121

22-
return MaterializationComputeResource(instance_type=data.pop("instance_type"), **data)
22+
return _MaterializationComputeResource(instance_type=data.pop("instance_type"), **data)
2323

2424

2525
class MaterializationSettingsSchema(metaclass=PatchedSchemaMeta):
@@ -32,6 +32,6 @@ class MaterializationSettingsSchema(metaclass=PatchedSchemaMeta):
3232

3333
@post_load
3434
def make(self, data, **kwargs):
35-
from azure.ai.ml.entities._feature_set.materialization_settings import MaterializationSettings
35+
from azure.ai.ml.entities._feature_set.materialization_settings import _MaterializationSettings
3636

37-
return MaterializationSettings(**data)
37+
return _MaterializationSettings(**data)

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_store/compute_runtime_schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ class ComputeRuntimeSchema(metaclass=PatchedSchemaMeta):
1414

1515
@post_load
1616
def make(self, data, **kwargs):
17-
from azure.ai.ml.entities._workspace.compute_runtime import ComputeRuntime
17+
from azure.ai.ml.entities._workspace.compute_runtime import _ComputeRuntime
1818

19-
return ComputeRuntime(spark_runtime_version=data.pop("spark_runtime_version"))
19+
return _ComputeRuntime(spark_runtime_version=data.pop("spark_runtime_version"))

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/_feature_store/materialization_store_schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ class MaterializationStoreSchema(metaclass=PatchedSchemaMeta):
1515

1616
@post_load
1717
def make(self, data, **kwargs):
18-
from azure.ai.ml.entities._feature_store.materialization_store import MaterializationStore
18+
from azure.ai.ml.entities._feature_store.materialization_store import _MaterializationStore
1919

20-
return MaterializationStore(
20+
return _MaterializationStore(
2121
type=data.pop("type"),
2222
target=data.pop("target"),
2323
)

0 commit comments

Comments
 (0)