Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions schedule/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -635,7 +635,12 @@ def until(
"until() takes a string, datetime.datetime, datetime.timedelta, "
"datetime.time parameter"
)
if self.cancel_after < datetime.datetime.now():
now = (
datetime.datetime.now(tz=self.cancel_after.tzinfo)
if self.cancel_after.tzinfo is not None
else datetime.datetime.now()
)
if self.cancel_after < now:
raise ScheduleValueError(
"Cannot schedule a job to run until a time in the past"
)
Expand Down Expand Up @@ -817,7 +822,13 @@ def _correct_utc_offset(
return moment

def _is_overdue(self, when: datetime.datetime):
return self.cancel_after is not None and when > self.cancel_after
if self.cancel_after is None:
return False
# When cancel_after is timezone-aware but `when` is naive, localize `when`
# so the comparison does not raise TypeError.
if self.cancel_after.tzinfo is not None and when.tzinfo is None:
when = when.astimezone(self.cancel_after.tzinfo)
return when > self.cancel_after

def _decode_datetimestr(
self, datetime_str: str, formats: List[str]
Expand Down