Skip to content

Commit 46b1a35

Browse files
authored
Fix issue with numpy datetimes in feast_value_type_to_pandas_type (#2167)
Signed-off-by: Achal Shah <achals@gmail.com>
1 parent a8ad523 commit 46b1a35

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

sdk/python/feast/on_demand_feature_view.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,9 @@ def get_requested_odfvs(feature_refs, project, registry):
259259
return requested_on_demand_feature_views
260260

261261

262-
def on_demand_feature_view(features: List[Feature], inputs: Dict[str, FeatureView]):
262+
def on_demand_feature_view(
263+
features: List[Feature], inputs: Dict[str, Union[FeatureView, RequestDataSource]]
264+
):
263265
"""
264266
Declare an on-demand feature view
265267

sdk/python/feast/type_map.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def feast_value_type_to_pandas_type(value_type: ValueType) -> Any:
6464
ValueType.DOUBLE: "float",
6565
ValueType.BYTES: "bytes",
6666
ValueType.BOOL: "bool",
67-
ValueType.UNIX_TIMESTAMP: "datetime",
67+
ValueType.UNIX_TIMESTAMP: "datetime64[ns]",
6868
}
6969
if value_type.name.endswith("_LIST"):
7070
return "object"

sdk/python/tests/integration/registration/test_inference.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1+
import pandas as pd
12
import pytest
23

3-
from feast import Entity, RepoConfig, ValueType
4+
from feast import Entity, Feature, RepoConfig, ValueType
5+
from feast.data_source import RequestDataSource
46
from feast.errors import RegistryInferenceFailure
57
from feast.feature_view import FeatureView
68
from feast.inference import (
79
update_data_sources_with_inferred_event_timestamp_col,
810
update_entities_with_inferred_types_from_feature_views,
911
)
12+
from feast.on_demand_feature_view import on_demand_feature_view
1013
from tests.utils.data_source_utils import (
1114
prep_file_source,
1215
simple_bq_source_using_query_arg,
@@ -81,3 +84,21 @@ def test_update_data_sources_with_inferred_event_timestamp_col(simple_dataset_1)
8184
update_data_sources_with_inferred_event_timestamp_col(
8285
[file_source], RepoConfig(provider="local", project="test")
8386
)
87+
88+
89+
def test_modify_feature_views_success():
90+
# Create Feature Views
91+
date_request = RequestDataSource(
92+
name="date_request", schema={"some_date": ValueType.UNIX_TIMESTAMP}
93+
)
94+
95+
@on_demand_feature_view(
96+
inputs={"date_request": date_request},
97+
features=[Feature("output", ValueType.UNIX_TIMESTAMP)],
98+
)
99+
def test_view(features_df: pd.DataFrame) -> pd.DataFrame:
100+
data = pd.DataFrame()
101+
data["output"] = features_df["some_date"]
102+
return data
103+
104+
test_view.infer_features()

0 commit comments

Comments
 (0)