Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Switch from inputs to sources and from features to schema for…
… odfv

Signed-off-by: Felix Wang <wangfelix98@gmail.com>
  • Loading branch information
felixwang9817 committed Aug 5, 2022
commit 54695462ea12e0c03639f3057e9366df4e9e9c04
31 changes: 12 additions & 19 deletions sdk/python/tests/unit/infra/test_inference_unit_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from feast.data_source import RequestSource
from feast.entity import Entity
from feast.errors import DataSourceNoNameException, SpecifiedFeaturesNotPresentError
from feast.feature import Feature
from feast.feature_service import FeatureService
from feast.feature_view import FeatureView
from feast.field import Field
Expand All @@ -15,7 +14,7 @@
)
from feast.on_demand_feature_view import on_demand_feature_view
from feast.repo_config import RepoConfig
from feast.types import Float32, Float64, Int64, String, UnixTimestamp, ValueType
from feast.types import Float32, Float64, Int64, String, UnixTimestamp
from tests.utils.data_source_test_creator import prep_file_source


Expand Down Expand Up @@ -74,13 +73,10 @@ def test_view(features_df: pd.DataFrame) -> pd.DataFrame:
test_view.infer_features()

@on_demand_feature_view(
# Note: we deliberately use `inputs` instead of `sources` to test that `inputs`
# still works correctly, even though it is deprecated.
# TODO(felixwang9817): Remove references to `inputs` once it is fully deprecated.
inputs={"date_request": date_request},
features=[
Feature(name="output", dtype=ValueType.UNIX_TIMESTAMP),
Feature(name="object_output", dtype=ValueType.STRING),
sources=[date_request],
schema=[
Field(name="output", dtype=UnixTimestamp),
Field(name="object_output", dtype=String),
],
)
def invalid_test_view(features_df: pd.DataFrame) -> pd.DataFrame:
Expand All @@ -93,14 +89,11 @@ def invalid_test_view(features_df: pd.DataFrame) -> pd.DataFrame:
invalid_test_view.infer_features()

@on_demand_feature_view(
# Note: we deliberately use positional arguments here to test that they work correctly,
# even though positional arguments are deprecated in favor of keyword arguments.
# TODO(felixwang9817): Remove positional arguments once they are fully deprecated.
[
Feature(name="output", dtype=ValueType.UNIX_TIMESTAMP),
Feature(name="missing", dtype=ValueType.STRING),
schema=[
Field(name="output", dtype=UnixTimestamp),
Field(name="missing", dtype=String),
],
{"date_request": date_request},
sources=[date_request],
)
def test_view_with_missing_feature(features_df: pd.DataFrame) -> pd.DataFrame:
data = pd.DataFrame()
Expand Down Expand Up @@ -151,9 +144,9 @@ def invalid_test_view(features_df: pd.DataFrame) -> pd.DataFrame:

@on_demand_feature_view(
sources=[date_request],
features=[
Feature(name="output", dtype=ValueType.UNIX_TIMESTAMP),
Feature(name="missing", dtype=ValueType.STRING),
schema=[
Field(name="output", dtype=UnixTimestamp),
Field(name="missing", dtype=String),
],
)
def test_view_with_missing_feature(features_df: pd.DataFrame) -> pd.DataFrame:
Expand Down
13 changes: 6 additions & 7 deletions sdk/python/tests/unit/infra/test_local_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
from feast.data_format import AvroFormat, ParquetFormat
from feast.data_source import KafkaSource
from feast.entity import Entity
from feast.feature import Feature
from feast.feature_view import FeatureView
from feast.field import Field
from feast.on_demand_feature_view import RequestSource, on_demand_feature_view
Expand Down Expand Up @@ -340,9 +339,9 @@ def test_modify_feature_views_success(test_registry):
)

@on_demand_feature_view(
features=[
Feature(name="odfv1_my_feature_1", dtype=ValueType.STRING),
Feature(name="odfv1_my_feature_2", dtype=ValueType.INT32),
schema=[
Field(name="odfv1_my_feature_1", dtype=String),
Field(name="odfv1_my_feature_2", dtype=Int32),
],
sources=[request_source],
)
Expand All @@ -360,9 +359,9 @@ def odfv1(feature_df: pd.DataFrame) -> pd.DataFrame:

# Modify odfv by changing a single feature dtype
@on_demand_feature_view(
features=[
Feature(name="odfv1_my_feature_1", dtype=ValueType.FLOAT),
Feature(name="odfv1_my_feature_2", dtype=ValueType.INT32),
schema=[
Field(name="odfv1_my_feature_1", dtype=Float32),
Field(name="odfv1_my_feature_2", dtype=Int32),
],
sources=[request_source],
)
Expand Down
11 changes: 4 additions & 7 deletions sdk/python/tests/unit/test_on_demand_feature_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@
# limitations under the License.

import pandas as pd
import pytest

from feast import RequestSource
from feast.feature_view import FeatureView
from feast.field import Field
from feast.infra.offline_stores.file_source import FileSource
from feast.on_demand_feature_view import OnDemandFeatureView, on_demand_feature_view
from feast.types import Float32, String, UnixTimestamp
from feast.on_demand_feature_view import OnDemandFeatureView
from feast.types import Float32


def udf1(features_df: pd.DataFrame) -> pd.DataFrame:
Expand Down Expand Up @@ -113,7 +111,7 @@ def test_inputs_parameter_deprecation_in_odfv():
with pytest.warns(DeprecationWarning):

@on_demand_feature_view(
inputs={"date_request": date_request},
sources=[date_request],
schema=[
Field(name="output", dtype=UnixTimestamp),
Field(name="string_output", dtype=String),
Expand All @@ -134,7 +132,6 @@ def test_view(features_df: pd.DataFrame) -> pd.DataFrame:
with pytest.raises(ValueError):

@on_demand_feature_view(
inputs={"date_request": date_request},
sources=[date_request],
schema=[
Field(name="output", dtype=UnixTimestamp),
Expand All @@ -148,7 +145,7 @@ def incorrect_testview(features_df: pd.DataFrame) -> pd.DataFrame:
return data

@on_demand_feature_view(
inputs={"odfv": date_request},
sources=[date_request],
schema=[
Field(name="output", dtype=UnixTimestamp),
Field(name="string_output", dtype=String),
Expand Down
14 changes: 7 additions & 7 deletions sdk/python/tests/unit/test_sql_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from testcontainers.core.container import DockerContainer
from testcontainers.core.waiting_utils import wait_for_logs

from feast import Feature, FileSource, RequestSource
from feast import FileSource, RequestSource
from feast.data_format import ParquetFormat
from feast.entity import Entity
from feast.errors import FeatureViewNotFoundException
Expand Down Expand Up @@ -389,9 +389,9 @@ def test_modify_feature_views_success(sql_registry):
)

@on_demand_feature_view(
features=[
Feature(name="odfv1_my_feature_1", dtype=ValueType.STRING),
Feature(name="odfv1_my_feature_2", dtype=ValueType.INT32),
schema=[
Field(name="odfv1_my_feature_1", dtype=String),
Field(name="odfv1_my_feature_2", dtype=Int32),
],
sources=[request_source],
)
Expand All @@ -409,9 +409,9 @@ def odfv1(feature_df: pd.DataFrame) -> pd.DataFrame:

# Modify odfv by changing a single feature dtype
@on_demand_feature_view(
features=[
Feature(name="odfv1_my_feature_1", dtype=ValueType.FLOAT),
Feature(name="odfv1_my_feature_2", dtype=ValueType.INT32),
schema=[
Field(name="odfv1_my_feature_1", dtype=Float32),
Field(name="odfv1_my_feature_2", dtype=Int32),
],
sources=[request_source],
)
Expand Down