wip
This commit is contained in:
25
common.py
25
common.py
@@ -5,29 +5,36 @@ import matplotlib.pyplot as plt
|
||||
|
||||
from loader import dmt
|
||||
|
||||
printnoln = lambda text: print(text, end='', flush=True)
|
||||
rprint = lambda text: print('\r' + text)
|
||||
|
||||
def calc_intervals(posts):
|
||||
DAYS_NEW_USER = 7
|
||||
IMAGE_MAGICK = "magick"
|
||||
|
||||
|
||||
def calc_intervals(posts, months=3):
|
||||
firstpost = dmt(posts).reduce(lambda acc, e: acc if acc < e['CreationDate'] else e['CreationDate'], lambda acc, e: acc if acc < e else e, lambda: posts[0]['CreationDate'],
|
||||
"firstpost").getresults()
|
||||
lastpost = dmt(posts).reduce(lambda acc, e: acc if acc > e['CreationDate'] else e['CreationDate'], lambda acc, e: acc if acc > e else e, lambda: posts[0]['CreationDate'], "lastpost").getresults()
|
||||
|
||||
# calc quarter beginning
|
||||
firstpost = firstpost.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
|
||||
if firstpost.month not in (1, 4, 7, 10):
|
||||
firstpost = firstpost.replace(month={1: 1, 2: 1, 3: 1, 4: 4, 5: 4, 6: 4, 7: 7, 8: 7, 9: 7, 10: 10, 11: 10, 12: 10}[firstpost.month])
|
||||
if (firstpost.month - 1) % months != 0:
|
||||
firstpost = firstpost.replace(month=firstpost.month - ((firstpost.month - 1) % months))
|
||||
lastpost = lastpost.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
|
||||
if lastpost.month not in (1, 4, 7, 10):
|
||||
lastpost = lastpost.replace(month={1: 1, 2: 1, 3: 1, 4: 4, 5: 4, 6: 4, 7: 7, 8: 7, 9: 7, 10: 10, 11: 10, 12: 10}[lastpost.month])
|
||||
if (lastpost.month - 1) % months != 0:
|
||||
lastpost = lastpost.replace(month=lastpost.month - ((lastpost.month - 1) % months))
|
||||
# add 3 months to last post
|
||||
if lastpost.month == 10:
|
||||
lastpost = lastpost.replace(month=1, year=lastpost.year + 1)
|
||||
if lastpost.month + months > 12:
|
||||
lastpost = lastpost.replace(month=lastpost.month + months - 12, year=lastpost.year + 1)
|
||||
else:
|
||||
lastpost = lastpost.replace(month=lastpost.month + 3)
|
||||
lastpost = lastpost.replace(month=lastpost.month + months)
|
||||
|
||||
cdate = firstpost
|
||||
intervals = []
|
||||
while cdate < lastpost:
|
||||
nextquarter = cdate.replace(month=(cdate.month + 3) % 12, year=cdate.year + (0 if cdate.month + 3 < 12 else 1))
|
||||
nextmon = cdate.month + months
|
||||
nextquarter = cdate.replace(month=nextmon if nextmon <=12 else nextmon-12, year=cdate.year + (0 if nextmon <= 12 else 1))
|
||||
print("adding interval: " + cdate.strftime("%d-%m-%Y") + " - " + nextquarter.strftime("%d-%m-%Y"))
|
||||
intervals.append((cdate, nextquarter))
|
||||
cdate = nextquarter
|
||||
|
||||
Reference in New Issue
Block a user