Skip to content

Instantly share code, notes, and snippets.

@vansika
Created August 2, 2019 15:47
Show Gist options
  • Save vansika/0d609d47fb8c16b015aacbcdcb0d54e9 to your computer and use it in GitHub Desktop.
Save vansika/0d609d47fb8c16b015aacbcdcb0d54e9 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
from datetime import datetime
from dateutil.relativedelta import relativedelta
# in days
RECOMMENDATION_GENERATION_WINDOW = 60
STEPS_TO_REACH_NEXT_MONTH = 32
def adjust_days(date, days, shift_backwards=True):
if shift_backwards:
date = date + relativedelta(days=-days)
else:
date = date + relativedelta(days=days)
return date
def replace_days(date, day):
date = date.replace(day=day)
return date
if __name__ == "__main__":
begin_date = datetime.utcnow()
from_date = adjust_days(begin_date, RECOMMENDATION_GENERATION_WINDOW)
# shift to the first of month
from_date = replace_days(from_date, 1)
parquets = []
while from_date <= begin_date:
parquets.append((from_date.year, from_date.month))
from_date = adjust_days(from_date, STEPS_TO_REACH_NEXT_MONTH, shift_backwards=False)
from_date = replace_days(from_date, 1)
print(parquets)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment