feat: Make udf optional if agg defined (#5689) by nquinn408 · Pull Request #6328 · feast-dev/feast
Fixes ruff I001 import ordering violation introduced with the aggregations-without-udf test. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Nick Quinn <nicholas_quinn@apple.com>
_parse_transformation_from_proto fell through to _handle_backward_compatible_udf when feature_transformation was absent, crashing on dill.loads(b"") for ODFVs that have no transformation but do have aggregations. Return None early when transformation_type is None and proto.spec.aggregations is non-empty. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Nick Quinn <nicholas_quinn@apple.com>
infer_features() unconditionally asserted feature_transformation is not None, crashing during apply() for aggregation-only ODFVs. Add an early return when aggregations are present and feature_transformation is None; features are explicitly declared via schema so inference via transformation execution is not needed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Nick Quinn <nicholas_quinn@apple.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Nick Quinn <nicholas_quinn@apple.com>
- Redirect feast.types.Value_pb2 stub imports to
feast.protos.feast.types.Value_pb2 where typed .pyi stubs live
- Add # type: ignore[arg-type] where .value (int) is passed to a
proto field typed as NewType("ValueType", int)
- Add # type: ignore[arg-type] for getattr call with Optional[str]
from WhichOneof in remote.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Nick Quinn <nicholas_quinn@apple.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters