Add -a switch for running averages
This commit is contained in:
parent
b112632d5e
commit
c66931d713
1 changed files with 35 additions and 4 deletions
35
getdates.py
35
getdates.py
|
@ -19,7 +19,7 @@ def dateArgs(argv = sys.argv[1:]):
|
||||||
mode = 0
|
mode = 0
|
||||||
|
|
||||||
for arg in argv:
|
for arg in argv:
|
||||||
if mode == 0 or (mode == 3 and not isinstance(arg,int)):
|
if mode == 0:
|
||||||
if arg == "-f":
|
if arg == "-f":
|
||||||
mode = 1
|
mode = 1
|
||||||
elif arg == "-t":
|
elif arg == "-t":
|
||||||
|
@ -30,7 +30,10 @@ def dateArgs(argv = sys.argv[1:]):
|
||||||
strings += [arg]
|
strings += [arg]
|
||||||
mode = 0
|
mode = 0
|
||||||
elif mode == 3:
|
elif mode == 3:
|
||||||
av = arg
|
try:
|
||||||
|
av = int(arg)
|
||||||
|
except ValueError:
|
||||||
|
raise ValueError("Number of days for running average must be an integer.")
|
||||||
mode = 0
|
mode = 0
|
||||||
elif mode == 1:
|
elif mode == 1:
|
||||||
fr = getDate(arg)
|
fr = getDate(arg)
|
||||||
|
@ -65,16 +68,44 @@ def dateList(fr, to):
|
||||||
return [[(fr+datetime.timedelta(days=i)).strftime('%Y-%m-%d')] for i in range((to+datetime.timedelta(days=1)-fr).days)]
|
return [[(fr+datetime.timedelta(days=i)).strftime('%Y-%m-%d')] for i in range((to+datetime.timedelta(days=1)-fr).days)]
|
||||||
|
|
||||||
|
|
||||||
|
def avg(list):
|
||||||
|
sum = 0
|
||||||
|
|
||||||
|
for i in list:
|
||||||
|
sum += i
|
||||||
|
|
||||||
|
return int(sum / len(list))
|
||||||
|
|
||||||
|
|
||||||
|
def fillAverage(cur, av):
|
||||||
|
vals = []
|
||||||
|
for day in cur:
|
||||||
|
vals = ([day[len(day)-1]] + vals)[:av]
|
||||||
|
day += [avg(vals)]
|
||||||
|
return cur
|
||||||
|
|
||||||
|
|
||||||
def fillList(db, string, cur, av):
|
def fillList(db, string, cur, av):
|
||||||
for day in cur:
|
for day in cur:
|
||||||
day += list(db.executeQuery(queryBuilder(day[0], string)))[0]
|
day += list(db.executeQuery(queryBuilder(day[0], string)))[0]
|
||||||
|
|
||||||
|
if not av == 0:
|
||||||
|
cur = fillAverage(cur, av)
|
||||||
|
|
||||||
return cur
|
return cur
|
||||||
|
|
||||||
|
|
||||||
def getHeaders(strings, av):
|
def getHeaders(strings, av):
|
||||||
|
if av == 0:
|
||||||
return [["Date", "Tweets"] + [string for string in strings]]
|
return [["Date", "Tweets"] + [string for string in strings]]
|
||||||
|
|
||||||
|
headers = ["Date", "Tweets", "Average"]
|
||||||
|
|
||||||
|
for string in strings:
|
||||||
|
headers += [string, "Average " + string]
|
||||||
|
|
||||||
|
return [headers]
|
||||||
|
|
||||||
|
|
||||||
def getTweetsByDate(strings = [], fr = None, to = None, av = 0, path = tools.config.dbpath, headers = False):
|
def getTweetsByDate(strings = [], fr = None, to = None, av = 0, path = tools.config.dbpath, headers = False):
|
||||||
db = tools.dbHelper(path)
|
db = tools.dbHelper(path)
|
||||||
|
|
Loading…
Reference in a new issue