@@ -695,25 +695,32 @@ def _internal_run(self) -> State:
695
695
self ._setup_engine ()
696
696
697
697
time_taken = self ._run_once_on_dataset ()
698
+ # time is available for handlers but must be update after fire
699
+ self .state .times [Events .EPOCH_COMPLETED .name ] = time_taken
700
+ handlers_start_time = time .time ()
701
+ if self .should_terminate :
702
+ self ._fire_event (Events .TERMINATE )
703
+ else :
704
+ self ._fire_event (Events .EPOCH_COMPLETED )
705
+ time_taken += time .time () - handlers_start_time
706
+ # update time wrt handlers
698
707
self .state .times [Events .EPOCH_COMPLETED .name ] = time_taken
699
708
hours , mins , secs = _to_hours_mins_secs (time_taken )
700
- elapsed_time_message = "Epoch[%s] Complete. Time taken: %02d:%02d:%02d" % (
701
- self .state .epoch ,
702
- hours ,
703
- mins ,
704
- secs ,
709
+ self .logger .info (
710
+ "Epoch[%s] Complete. Time taken: %02d:%02d:%02d" % (self .state .epoch , hours , mins , secs )
705
711
)
706
712
if self .should_terminate :
707
- self ._fire_event (Events .TERMINATE )
708
- self .logger .info (elapsed_time_message )
709
713
break
710
- self ._fire_event (Events .EPOCH_COMPLETED )
711
- self .logger .info (elapsed_time_message )
712
714
713
715
time_taken = time .time () - start_time
714
- hours , mins , secs = _to_hours_mins_secs ( time_taken )
716
+ # time is available for handlers but must be update after fire
715
717
self .state .times [Events .COMPLETED .name ] = time_taken
718
+ handlers_start_time = time .time ()
716
719
self ._fire_event (Events .COMPLETED )
720
+ time_taken += time .time () - handlers_start_time
721
+ # update time wrt handlers
722
+ self .state .times [Events .COMPLETED .name ] = time_taken
723
+ hours , mins , secs = _to_hours_mins_secs (time_taken )
717
724
self .logger .info ("Engine run complete. Time taken: %02d:%02d:%02d" % (hours , mins , secs ))
718
725
719
726
except BaseException as e :
0 commit comments