code: def finite_datetimes(self, finite_start, finite_stop):
          
          # Validate that the minutes_interval can divide 60 and it is greater than 0 and lesser than 60
          if not (0 < self.minutes_interval < 60):
              raise ParameterException('minutes-interval must be within 0..60')
          if (60 / self.minutes_interval) * self.minutes_interval != 60:
              raise ParameterException('minutes-interval does not evenly divide 60')
          # start of a complete interval, e.g. 20:13 and the interval is 5 -> 20:10
          start_minute = int(finite_start.minute/self.minutes_interval)*self.minutes_interval
          datehour_start = datetime(
              year=finite_start.year,
              month=finite_start.month,
              day=finite_start.day,
              hour=finite_start.hour,
              minute=start_minute)
          datehours = []
          for i in itertools.count():
              t = datehour_start + timedelta(minutes=i*self.minutes_interval)
              if t >= finite_stop:
                  return datehours
              if t >= finite_start:
                  datehours.append(t)
docs: Simply returns the points in time that correspond to a whole number of minutes intervals.