weeks_within(start, end) misses last week if the start weekday is bigger then the end weekday
This code fragment omits sometimes the last week.
while current < end:
weeks.append(cls.from_date(current))
current += timedelta(days=7)
Example: A Sunday as the start, and the following Monday as end. You will only return the week of the sunday, the monday will be omited. Same with Tuesday and Monday and so on. If your start weekday is before the end weekday everything works as expected.