feast
feast copied to clipboard
fix: OnDemandFeatureView type inference for array types
What and Why
OnDemandFeatureView.feature_transformation.infer_features
should be able to infer features from python types for all supported feast data types, for all transformation backends. This PR passes values to python_type_to_feast_value_type
so that list types can be inferred correctly.
Tests
- Unit tests passing in CI for all Python versions on my fork.
- Tested against a local project by patching
PandasTransformation.infer_features
, e.g.
from feast.transformation.pandas_transformation import PandasTransformation
def __patched_infer_features(
self, random_input: dict[str, list[Any]]
) -> list[Field]:
df = pd.DataFrame.from_dict(random_input)
output_df: pd.DataFrame = self.transform(df)
return [
Field(
name=f,
dtype=from_value_type(
python_type_to_feast_value_type(
f, value=output_df[f].tolist()[0], type_name=str(dt)
)
),
)
for f, dt in zip(output_df.columns, output_df.dtypes)
]
PandasTransformation.infer_features = __patched_infer_features
Note to reviewers If you can point me to where I could add some feature repository tests to catch any regressions in the future that would be great 🙏
Fixes
Fixes #4308