@@ -16,16 +16,21 @@ class TimestampSchema(pw.Schema):
1616
1717class 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