#!/usr/bin/env python3 # Eryn Wells import datetime from typing import Optional def next_sunday_noon(from_date: Optional[datetime.date] = None) -> datetime.datetime: ''' Return a `datetime` for noon on the upcoming Sunday. Use today if no `from_date` is given. ''' today = from_date or datetime.date.today() current_weekday = today.weekday() if current_weekday == 6: days_to_next_sunday = 6 else: days_to_next_sunday = 6 - current_weekday delta = datetime.timedelta(days=days_to_next_sunday) noon = datetime.time(hour=12) timezone = datetime.datetime.now().astimezone().tzinfo next_sunday_noon = datetime.datetime.combine( today + delta, noon, tzinfo=timezone ) return next_sunday_noon