docs: def _analemma_suns(self):
          """Calculate times that should be used for drawing analemma_curves.
  
          Returns:
              A list of list of analemma suns.
          """
          for h in xrange(0, 24):
              if self._analemma_position(h) < 0:
                  continue
              elif self._analemma_position(h) == 0:
                  chours = []
                  # this is an hour that not all the hours are day or night
                  prevhour = self.latitude <= 0
                  num_of_days = 8760 if not self.is_leap_year else 8760 + 24
                  for hoy in xrange(h, num_of_days, 24):
                      thishour = self.calculate_sun_from_hoy(hoy).is_during_day
                      if thishour != prevhour:
                          if not thishour:
                              hoy -= 24
                          dt = DateTime.from_hoy(hoy, self.is_leap_year)
                          chours.append((dt.month, dt.day, dt.hour))
                      prevhour = thishour
                  tt = []
                  for hcount in range(int(len(chours) / 2)):
                      st = chours[2 * hcount]
                      en = chours[2 * hcount + 1]
                      if self.latitude >= 0:
                          tt = [self.calculate_sun(*st)] + \
                              [self.calculate_sun(st[0], d, h)
                               for d in xrange(st[1] + 1, 29, 7)] + \
                              [self.calculate_sun(m, d, h)
                               for m in xrange(st[0] + 1, en[0])
                               for d in xrange(3, 29, 7)] + \
                              [self.calculate_sun(en[0], d, h)
                               for d in xrange(3, en[1], 7)] + \
                              [self.calculate_sun(*en)]
                      else:
                          tt = [self.calculate_sun(*en)] + \
                              [self.calculate_sun(en[0], d, h)
                               for d in xrange(en[1] + 1, 29, 7)] + \
                              [self.calculate_sun(m, d, h) for m in xrange(en[0] +
                                                                           1, 13)
                               for d in xrange(3, 29, 7)] + \
                              [self.calculate_sun(m, d, h) for m in xrange(1, st[0])
                               for d in xrange(3, 29, 7)] + \
                              [self.calculate_sun(st[0], d, h)
                               for d in xrange(3, st[1], 7)] + \
                              [self.calculate_sun(*st)]
                      yield tt
              else:
                  yield tuple(self.calculate_sun((m % 12) + 1, d, h)
                              for m in xrange(0, 13) for d in (7, 14, 21))[:-2]