Skip to content

Commit

Permalink
Fix proto for lookback (#534)
Browse files Browse the repository at this point in the history
fix proto for lookback
  • Loading branch information
nonibansal committed Aug 22, 2024
1 parent efa0bd7 commit 0e31b5d
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 23 deletions.
3 changes: 3 additions & 0 deletions fennel/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Changelog

## [1.5.7] - 2024-08-21
- Fix proto for lookback

## [1.5.6] - 2024-08-20
- Add support for expression based extractors

Expand Down
19 changes: 13 additions & 6 deletions fennel/dtypes/dtypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ def signature(self) -> str:
@dataclass
class Tumbling:
duration: str
lookback: Optional[str] = None
lookback: str = "0s"

def __post_init__(self):
"""
Expand All @@ -364,8 +364,10 @@ def __post_init__(self):
def to_proto(self) -> window_proto.Window:
duration = duration_proto.Duration()
duration.FromTimedelta(duration_to_timedelta(self.duration))
lookback = duration_proto.Duration()
lookback.FromTimedelta(duration_to_timedelta(self.lookback))
return window_proto.Window(
tumbling=window_proto.Tumbling(duration=duration)
tumbling=window_proto.Tumbling(duration=duration, lookback=lookback)
)

def signature(self) -> str:
Expand All @@ -387,7 +389,7 @@ def lookback_total_seconds(self) -> int:
class Hopping:
duration: str
stride: str
lookback: Optional[str] = None
lookback: str = "0s"

def __post_init__(self):
"""
Expand Down Expand Up @@ -415,16 +417,21 @@ def __post_init__(self):
def to_proto(self) -> window_proto.Window:
stride = duration_proto.Duration()
stride.FromTimedelta(duration_to_timedelta(self.stride))

lookback = duration_proto.Duration()
lookback.FromTimedelta(duration_to_timedelta(self.lookback))
if self.duration != "forever":
duration = duration_proto.Duration()
duration.FromTimedelta(duration_to_timedelta(self.duration))
return window_proto.Window(
hopping=window_proto.Hopping(duration=duration, stride=stride)
hopping=window_proto.Hopping(
duration=duration, stride=stride, lookback=lookback
)
)
else:
return window_proto.Window(
forever_hopping=window_proto.ForeverHopping(stride=stride)
forever_hopping=window_proto.ForeverHopping(
stride=stride, lookback=lookback
)
)

def signature(self) -> str:
Expand Down
20 changes: 10 additions & 10 deletions fennel/gen/window_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 18 additions & 6 deletions fennel/gen/window_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,19 @@ class Tumbling(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor

DURATION_FIELD_NUMBER: builtins.int
LOOKBACK_FIELD_NUMBER: builtins.int
@property
def duration(self) -> google.protobuf.duration_pb2.Duration: ...
@property
def lookback(self) -> google.protobuf.duration_pb2.Duration: ...
def __init__(
self,
*,
duration: google.protobuf.duration_pb2.Duration | None = ...,
lookback: google.protobuf.duration_pb2.Duration | None = ...,
) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["duration", b"duration"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["duration", b"duration"]) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["duration", b"duration", "lookback", b"lookback"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["duration", b"duration", "lookback", b"lookback"]) -> None: ...

global___Tumbling = Tumbling

Expand All @@ -109,18 +113,22 @@ class Hopping(google.protobuf.message.Message):

DURATION_FIELD_NUMBER: builtins.int
STRIDE_FIELD_NUMBER: builtins.int
LOOKBACK_FIELD_NUMBER: builtins.int
@property
def duration(self) -> google.protobuf.duration_pb2.Duration: ...
@property
def stride(self) -> google.protobuf.duration_pb2.Duration: ...
@property
def lookback(self) -> google.protobuf.duration_pb2.Duration: ...
def __init__(
self,
*,
duration: google.protobuf.duration_pb2.Duration | None = ...,
stride: google.protobuf.duration_pb2.Duration | None = ...,
lookback: google.protobuf.duration_pb2.Duration | None = ...,
) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["duration", b"duration", "stride", b"stride"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["duration", b"duration", "stride", b"stride"]) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["duration", b"duration", "lookback", b"lookback", "stride", b"stride"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["duration", b"duration", "lookback", b"lookback", "stride", b"stride"]) -> None: ...

global___Hopping = Hopping

Expand All @@ -129,15 +137,19 @@ class ForeverHopping(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor

STRIDE_FIELD_NUMBER: builtins.int
LOOKBACK_FIELD_NUMBER: builtins.int
@property
def stride(self) -> google.protobuf.duration_pb2.Duration: ...
@property
def lookback(self) -> google.protobuf.duration_pb2.Duration: ...
def __init__(
self,
*,
stride: google.protobuf.duration_pb2.Duration | None = ...,
lookback: google.protobuf.duration_pb2.Duration | None = ...,
) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["stride", b"stride"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["stride", b"stride"]) -> None: ...
def HasField(self, field_name: typing_extensions.Literal["lookback", b"lookback", "stride", b"stride"]) -> builtins.bool: ...
def ClearField(self, field_name: typing_extensions.Literal["lookback", b"lookback", "stride", b"stride"]) -> None: ...

global___ForeverHopping = ForeverHopping

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fennel-ai"
version = "1.5.6"
version = "1.5.7"
description = "The modern realtime feature engineering platform"
authors = ["Fennel AI <developers@fennel.ai>"]
packages = [{ include = "fennel" }]
Expand Down

0 comments on commit 0e31b5d

Please sign in to comment.