<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def elapsed_time(self) -> float: """ The number of seconds that has elapsed since the step started running if the step is still running. Or, if the step has already finished running, the amount of time that elapsed during the last execution of the step. """

        current_time = datetime.utcnow()
        start = self.start_time or current_time
        end = self.end_time or current_time
        return (end - start).total_seconds()