Skip to content

Commit 6c97d03

Browse files
lewymatiManul from Pathway
authored andcommitted
Refactor, better memory management
GitOrigin-RevId: 10fe91a016f94d5fe69ad0899b9f71ec366dc57f
1 parent 018f046 commit 6c97d03

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

python/pathway/stdlib/temporal/time_utils.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,21 @@ class TimestampSchema(pw.Schema):
1616

1717
class TimestampSubject(io.python.ConnectorSubject):
1818
_refresh_rate: datetime.timedelta
19+
_initial_delay: datetime.timedelta
1920

20-
def __init__(self, refresh_rate: datetime.timedelta) -> None:
21+
def __init__(
22+
self, refresh_rate: datetime.timedelta, initial_delay: datetime.timedelta
23+
) -> None:
2124
super().__init__()
2225
self._refresh_rate = refresh_rate
26+
self._initial_delay = initial_delay
2327

2428
@property
2529
def _deletions_enabled(self) -> bool:
2630
return False
2731

2832
def run(self) -> None:
33+
time.sleep(self._initial_delay.total_seconds())
2934
while True:
3035
now_utc = datetime.datetime.now(tz=datetime.timezone.utc)
3136
self.next(timestamp_utc=now_utc)
@@ -34,7 +39,10 @@ def run(self) -> None:
3439

3540

3641
@cache
37-
def utc_now(refresh_rate: datetime.timedelta = datetime.timedelta(seconds=60)):
42+
def utc_now(
43+
refresh_rate: datetime.timedelta = datetime.timedelta(seconds=60),
44+
initial_delay: datetime.timedelta = datetime.timedelta(seconds=0),
45+
):
3846
"""
3947
Provides a continuously updating stream of the current UTC time.
4048
@@ -50,7 +58,7 @@ def utc_now(refresh_rate: datetime.timedelta = datetime.timedelta(seconds=60)):
5058
according to the specified refresh rate.
5159
"""
5260
return io.python.read(
53-
TimestampSubject(refresh_rate=refresh_rate),
61+
TimestampSubject(refresh_rate=refresh_rate, initial_delay=initial_delay),
5462
schema=TimestampSchema,
5563
)
5664

0 commit comments

Comments
 (0)