@@ -139,7 +139,7 @@ def __init__(
139139 self ._include_unmodified = include_unmodified
140140 self ._restate_models = set (restate_models ) if restate_models is not None else None
141141 self ._effective_from = effective_from
142- self ._execution_time = execution_time
142+ self ._execution_time = execution_time or now ()
143143 self ._backfill_models = backfill_models
144144 self ._end = end or default_end
145145 self ._apply = apply
@@ -176,20 +176,16 @@ def is_start_and_end_allowed(self) -> bool:
176176
177177 @property
178178 def start (self ) -> t .Optional [TimeLike ]:
179- if self ._start and self . _execution_time :
179+ if self ._start :
180180 return to_datetime (self ._start , relative_base = to_datetime (self ._execution_time ))
181181 return self ._start
182182
183183 @property
184184 def end (self ) -> t .Optional [TimeLike ]:
185- if self ._end and self . _execution_time :
185+ if self ._end :
186186 return to_datetime (self ._end , relative_base = to_datetime (self ._execution_time ))
187187 return self ._end
188188
189- @property
190- def execution_time (self ) -> TimeLike :
191- return self ._execution_time or now ()
192-
193189 def set_start (self , new_start : TimeLike ) -> PlanBuilder :
194190 self ._start = new_start
195191 self .override_start = True
@@ -274,7 +270,8 @@ def build(self) -> Plan:
274270 )
275271
276272 restatements = self ._build_restatements (
277- dag , earliest_interval_start (self ._context_diff .snapshots .values (), self .execution_time )
273+ dag ,
274+ earliest_interval_start (self ._context_diff .snapshots .values (), self ._execution_time ),
278275 )
279276 models_to_backfill = self ._build_models_to_backfill (dag , restatements )
280277
@@ -307,7 +304,7 @@ def build(self) -> Plan:
307304 selected_models_to_backfill = self ._backfill_models ,
308305 models_to_backfill = models_to_backfill ,
309306 effective_from = self ._effective_from ,
310- execution_time = self .execution_time ,
307+ execution_time = self ._execution_time ,
311308 end_bounded = self ._end_bounded ,
312309 ensure_finalized_snapshots = self ._ensure_finalized_snapshots ,
313310 user_provided_flags = self ._user_provided_flags ,
@@ -764,9 +761,9 @@ def _ensure_valid_date_range(self) -> None:
764761 )
765762
766763 if end := self .end :
767- if to_datetime (end ) > to_datetime (self .execution_time ):
764+ if to_datetime (end ) > to_datetime (self ._execution_time ):
768765 raise PlanError (
769- f"Plan end date: '{ time_like_to_str (end )} ' cannot be in the future (execution time: '{ time_like_to_str (self .execution_time )} ')"
766+ f"Plan end date: '{ time_like_to_str (end )} ' cannot be in the future (execution time: '{ time_like_to_str (self ._execution_time )} ')"
770767 )
771768
772769 def _ensure_no_forward_only_revert (self ) -> None :
0 commit comments