(dow, past_period=0)
return date.today() + timedelta(days=days_till_due - 7 * past_period)
compute the next due date on a weekly schedule, where reports are
    due on 'dow' day of the week (0:sunday, 6:saturday). 'next' due date
    is the first due date that occurs today or in the future. if past_period
    is non-zero, return the due date that occured N before the next due date
compute the next due date on a weekly schedule, where reports are
    due on 'dow' day of the week (0:sunday, 6:saturday). 'next' due date
    is the first due date that occurs today or in the future. if past_period
    is non-zero, return the due date that occured N before the next due date
compute the next due date on a weekly schedule where reports are due on dow day of the week ( 0 : sunday 6 : saturday ) . next due date is the first due date that occurs today or in the future . if past_period is non - zero return the due date that occured N before the next due date
def due_date_weekly(dow, past_period=0):  # 0 == sunday
    """compute the next due date on a weekly schedule, where reports are
    due on 'dow' day of the week (0:sunday, 6:saturday). 'next' due date
    is the first due date that occurs today or in the future. if past_period
    is non-zero, return the due date that occured N before the next due date
    """
    cur_weekday = date.today().isoweekday()
    days_till_due = (dow - cur_weekday) % 7
    return date.today() + timedelta(days=days_till_due - 7 * past_period)
def due_date_weekly ( dow , past_period = 0 ) : # 0 == sunday cur_weekday = date . today ( ) . isoweekday ( ) days_till_due = ( dow - cur_weekday ) % 7 return date . today ( ) + timedelta ( days = days_till_due - 7 * past_period )