docs: def calculate_sunrise_sunset_from_datetime(self, datetime, depression=0.833,
                                                 is_solar_time=False):
          """Calculate sunrise, sunset and noon for a day of year."""
          # TODO(mostapha): This should be more generic and based on a method
          if datetime.year != 2016 and self.is_leap_year:
              datetime = DateTime(datetime.month, datetime.day, datetime.hour,
                                  datetime.minute, True)
          sol_dec, eq_of_time = self._calculate_solar_geometry(datetime)
          # calculate sunrise and sunset hour
          if is_solar_time:
              noon = .5
          else:
              noon = (720 -
                      4 * math.degrees(self._longitude) -
                      eq_of_time +
                      self.time_zone * 60
                      ) / 1440.0
  
          try:
              sunrise_hour_angle = self._calculate_sunrise_hour_angle(
                  sol_dec, depression)
          except ValueError:
              # no sun rise and sunset at this hour
              noon = 24 * noon
              return {
                  "sunrise": None,
                  "noon": DateTime(datetime.month, datetime.day,
                                   *self._calculate_hour_and_minute(noon),
                                   leap_year=self.is_leap_year),
                  "sunset": None
              }
          else:
              sunrise = noon - sunrise_hour_angle * 4 / 1440.0
              sunset = noon + sunrise_hour_angle * 4 / 1440.0
              noon = 24 * noon
              sunrise = 24 * sunrise
              sunset = 24 * sunset
  
              return {
                  "sunrise": DateTime(datetime.month, datetime.day,
                                      *self._calculate_hour_and_minute(sunrise),
                                      leap_year=self.is_leap_year),
                  "noon": DateTime(datetime.month, datetime.day,
                                   *self._calculate_hour_and_minute(noon),
                                   leap_year=self.is_leap_year),
                  "sunset": DateTime(datetime.month, datetime.day,
                                     *self._calculate_hour_and_minute(sunset),
                                     leap_year=self.is_leap_year)
              }