Skip to content

Commit

Permalink
feat: add featurestore module including Featurestore, EntityType, and…
Browse files Browse the repository at this point in the history
… Feature classes; add get, update, delete, list methods in all featurestore classes; add search method in Feature class (#850)
  • Loading branch information
morgandu committed Nov 30, 2021
1 parent 6d5c7c4 commit 66745a6
Show file tree
Hide file tree
Showing 13 changed files with 2,190 additions and 2 deletions.
8 changes: 8 additions & 0 deletions google/cloud/aiplatform/__init__.py
Expand Up @@ -33,6 +33,11 @@
from google.cloud.aiplatform import explain
from google.cloud.aiplatform import gapic
from google.cloud.aiplatform import hyperparameter_tuning
from google.cloud.aiplatform.featurestore import (
EntityType,
Feature,
Featurestore,
)
from google.cloud.aiplatform.metadata import metadata
from google.cloud.aiplatform.models import Endpoint
from google.cloud.aiplatform.models import Model
Expand Down Expand Up @@ -92,6 +97,9 @@
"CustomContainerTrainingJob",
"CustomPythonPackageTrainingJob",
"Endpoint",
"EntityType",
"Feature",
"Featurestore",
"ImageDataset",
"HyperparameterTuningJob",
"Model",
Expand Down
12 changes: 10 additions & 2 deletions google/cloud/aiplatform/base.py
Expand Up @@ -898,6 +898,7 @@ def _list(
project: Optional[str] = None,
location: Optional[str] = None,
credentials: Optional[auth_credentials.Credentials] = None,
parent: Optional[str] = None,
) -> List[VertexAiResourceNoun]:
"""Private method to list all instances of this Vertex AI Resource,
takes a `cls_filter` arg to filter to a particular SDK resource
Expand Down Expand Up @@ -925,6 +926,8 @@ def _list(
credentials (auth_credentials.Credentials):
Optional. Custom credentials to use to retrieve list. Overrides
credentials set in aiplatform.init.
parent (str):
Optional. The parent resource name if any to retrieve resource list from.
Returns:
List[VertexAiResourceNoun] - A list of SDK resource objects
Expand All @@ -934,12 +937,13 @@ def _list(
)

# Fetch credentials once and re-use for all `_empty_constructor()` calls
creds = initializer.global_config.credentials
creds = resource.credentials

resource_list_method = getattr(resource.api_client, resource._list_method)

list_request = {
"parent": initializer.global_config.common_location_path(
"parent": parent
or initializer.global_config.common_location_path(
project=project, location=location
),
"filter": filter,
Expand Down Expand Up @@ -1029,6 +1033,7 @@ def list(
project: Optional[str] = None,
location: Optional[str] = None,
credentials: Optional[auth_credentials.Credentials] = None,
parent: Optional[str] = None,
) -> List[VertexAiResourceNoun]:
"""List all instances of this Vertex AI Resource.
Expand Down Expand Up @@ -1057,6 +1062,8 @@ def list(
credentials (auth_credentials.Credentials):
Optional. Custom credentials to use to retrieve list. Overrides
credentials set in aiplatform.init.
parent (str):
Optional. The parent resource name if any to retrieve list from.
Returns:
List[VertexAiResourceNoun] - A list of SDK resource objects
Expand All @@ -1068,6 +1075,7 @@ def list(
project=project,
location=location,
credentials=credentials,
parent=parent,
)

@optional_sync()
Expand Down
23 changes: 23 additions & 0 deletions google/cloud/aiplatform/compat/__init__.py
Expand Up @@ -27,6 +27,10 @@

services.dataset_service_client = services.dataset_service_client_v1beta1
services.endpoint_service_client = services.endpoint_service_client_v1beta1
services.featurestore_online_serving_service_client = (
services.featurestore_online_serving_service_client_v1beta1
)
services.featurestore_service_client = services.featurestore_service_client_v1beta1
services.job_service_client = services.job_service_client_v1beta1
services.model_service_client = services.model_service_client_v1beta1
services.pipeline_service_client = services.pipeline_service_client_v1beta1
Expand All @@ -53,11 +57,19 @@
types.encryption_spec = types.encryption_spec_v1beta1
types.endpoint = types.endpoint_v1beta1
types.endpoint_service = types.endpoint_service_v1beta1
types.entity_type = types.entity_type_v1beta1
types.env_var = types.env_var_v1beta1
types.event = types.event_v1beta1
types.execution = types.execution_v1beta1
types.explanation = types.explanation_v1beta1
types.explanation_metadata = types.explanation_metadata_v1beta1
types.feature = types.feature_v1beta1
types.feature_monitoring_stats = types.feature_monitoring_stats_v1beta1
types.feature_selector = types.feature_selector_v1beta1
types.featurestore = types.featurestore_v1beta1
types.featurestore_monitoring = types.featurestore_monitoring_v1beta1
types.featurestore_online_service = types.featurestore_online_service_v1beta1
types.featurestore_service = types.featurestore_service_v1beta1
types.hyperparameter_tuning_job = types.hyperparameter_tuning_job_v1beta1
types.io = types.io_v1beta1
types.job_service = types.job_service_v1beta1
Expand Down Expand Up @@ -90,6 +102,10 @@

services.dataset_service_client = services.dataset_service_client_v1
services.endpoint_service_client = services.endpoint_service_client_v1
services.featurestore_online_serving_service_client = (
services.featurestore_online_serving_service_client_v1
)
services.featurestore_service_client = services.featurestore_service_client_v1
services.job_service_client = services.job_service_client_v1
services.model_service_client = services.model_service_client_v1
services.pipeline_service_client = services.pipeline_service_client_v1
Expand All @@ -113,11 +129,18 @@
types.encryption_spec = types.encryption_spec_v1
types.endpoint = types.endpoint_v1
types.endpoint_service = types.endpoint_service_v1
types.entity_type = types.entity_type_v1
types.env_var = types.env_var_v1
types.event = types.event_v1
types.execution = types.execution_v1
types.explanation = types.explanation_v1
types.explanation_metadata = types.explanation_metadata_v1
types.feature = types.feature_v1
types.feature_monitoring_stats = types.feature_monitoring_stats_v1
types.feature_selector = types.feature_selector_v1
types.featurestore = types.featurestore_v1
types.featurestore_online_service = types.featurestore_online_service_v1
types.featurestore_service = types.featurestore_service_v1
types.hyperparameter_tuning_job = types.hyperparameter_tuning_job_v1
types.io = types.io_v1
types.job_service = types.job_service_v1
Expand Down
16 changes: 16 additions & 0 deletions google/cloud/aiplatform/compat/services/__init__.py
Expand Up @@ -21,6 +21,12 @@
from google.cloud.aiplatform_v1beta1.services.endpoint_service import (
client as endpoint_service_client_v1beta1,
)
from google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service import (
client as featurestore_online_serving_service_client_v1beta1,
)
from google.cloud.aiplatform_v1beta1.services.featurestore_service import (
client as featurestore_service_client_v1beta1,
)
from google.cloud.aiplatform_v1beta1.services.job_service import (
client as job_service_client_v1beta1,
)
Expand Down Expand Up @@ -49,6 +55,12 @@
from google.cloud.aiplatform_v1.services.endpoint_service import (
client as endpoint_service_client_v1,
)
from google.cloud.aiplatform_v1.services.featurestore_online_serving_service import (
client as featurestore_online_serving_service_client_v1,
)
from google.cloud.aiplatform_v1.services.featurestore_service import (
client as featurestore_service_client_v1,
)
from google.cloud.aiplatform_v1.services.job_service import (
client as job_service_client_v1,
)
Expand All @@ -75,6 +87,8 @@
# v1
dataset_service_client_v1,
endpoint_service_client_v1,
featurestore_online_serving_service_client_v1beta1,
featurestore_service_client_v1beta1,
job_service_client_v1,
metadata_service_client_v1,
model_service_client_v1,
Expand All @@ -85,6 +99,8 @@
# v1beta1
dataset_service_client_v1beta1,
endpoint_service_client_v1beta1,
featurestore_online_serving_service_client_v1,
featurestore_service_client_v1,
job_service_client_v1beta1,
model_service_client_v1beta1,
pipeline_service_client_v1beta1,
Expand Down
30 changes: 30 additions & 0 deletions google/cloud/aiplatform/compat/types/__init__.py
Expand Up @@ -32,11 +32,19 @@
encryption_spec as encryption_spec_v1beta1,
endpoint as endpoint_v1beta1,
endpoint_service as endpoint_service_v1beta1,
entity_type as entity_type_v1beta1,
env_var as env_var_v1beta1,
event as event_v1beta1,
execution as execution_v1beta1,
explanation as explanation_v1beta1,
explanation_metadata as explanation_metadata_v1beta1,
feature as feature_v1beta1,
feature_monitoring_stats as feature_monitoring_stats_v1beta1,
feature_selector as feature_selector_v1beta1,
featurestore as featurestore_v1beta1,
featurestore_monitoring as featurestore_monitoring_v1beta1,
featurestore_online_service as featurestore_online_service_v1beta1,
featurestore_service as featurestore_service_v1beta1,
hyperparameter_tuning_job as hyperparameter_tuning_job_v1beta1,
io as io_v1beta1,
job_service as job_service_v1beta1,
Expand Down Expand Up @@ -82,11 +90,18 @@
encryption_spec as encryption_spec_v1,
endpoint as endpoint_v1,
endpoint_service as endpoint_service_v1,
entity_type as entity_type_v1,
env_var as env_var_v1,
event as event_v1,
execution as execution_v1,
explanation as explanation_v1,
explanation_metadata as explanation_metadata_v1,
feature as feature_v1,
feature_monitoring_stats as feature_monitoring_stats_v1,
feature_selector as feature_selector_v1,
featurestore as featurestore_v1,
featurestore_online_service as featurestore_online_service_v1,
featurestore_service as featurestore_service_v1,
hyperparameter_tuning_job as hyperparameter_tuning_job_v1,
io as io_v1,
job_service as job_service_v1,
Expand Down Expand Up @@ -134,11 +149,18 @@
encryption_spec_v1,
endpoint_v1,
endpoint_service_v1,
entity_type_v1,
env_var_v1,
event_v1,
execution_v1,
explanation_v1,
explanation_metadata_v1,
feature_v1,
feature_monitoring_stats_v1,
feature_selector_v1,
featurestore_v1,
featurestore_online_service_v1,
featurestore_service_v1,
hyperparameter_tuning_job_v1,
io_v1,
job_service_v1,
Expand Down Expand Up @@ -182,11 +204,19 @@
encryption_spec_v1beta1,
endpoint_v1beta1,
endpoint_service_v1beta1,
entity_type_v1beta1,
env_var_v1beta1,
event_v1beta1,
execution_v1beta1,
explanation_v1beta1,
explanation_metadata_v1beta1,
feature_v1beta1,
feature_monitoring_stats_v1beta1,
feature_selector_v1beta1,
featurestore_v1beta1,
featurestore_monitoring_v1beta1,
featurestore_online_service_v1beta1,
featurestore_service_v1beta1,
hyperparameter_tuning_job_v1beta1,
io_v1beta1,
job_service_v1beta1,
Expand Down
26 changes: 26 additions & 0 deletions google/cloud/aiplatform/featurestore/__init__.py
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-

# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

from google.cloud.aiplatform.featurestore.entity_type import EntityType
from google.cloud.aiplatform.featurestore.feature import Feature
from google.cloud.aiplatform.featurestore.featurestore import Featurestore

__all__ = (
"EntityType",
"Feature",
"Featurestore",
)

0 comments on commit 66745a6

Please sign in to comment.