    def period(self) -> TimePeriod:
        """TimePeriod: Time period in which the task runs

        Note that this should not be considered as absolute truth but
        as a best estimate.
        """
        from rocketry.core.time import StaticInterval, All as AllTime
        from rocketry.conditions import TaskFinished, TaskSucceeded

        cond = self.start_cond
        session = self.session

        if isinstance(cond, (TaskSucceeded, TaskFinished)):
            if session[cond.kwargs["task"]] is self:
                return cond.period

        elif isinstance(cond, All):
            task_periods = []
            for sub_stmt in cond:
                if isinstance(sub_stmt, (TaskFinished, TaskFinished)) and session[sub_stmt.kwargs["task"]] is self:
                    task_periods.append(sub_stmt.period)
            if task_periods:
                return AllTime(*task_periods)

        # TimePeriod could not be determined
        return StaticInterval()
TimePeriod: Time period in which the task runs

Note that this should not be considered as absolute truth but
as a best estimate.
rocketry/core/task.py