fix bug crash when days are missing
This commit is contained in:
Binary file not shown.
@@ -10,6 +10,7 @@ from tqdm import tqdm
|
||||
from collections import OrderedDict
|
||||
import numpy as np
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
def get_data(emeis:list[str],scraper:DataScraper) -> list[pd.DataFrame]:
|
||||
dataframes = []
|
||||
@@ -52,7 +53,7 @@ def fill_column(elements:list[str],column_index:int,img):
|
||||
delta = 85
|
||||
column_shift = [1500,1500+delta*1,1500+delta*2,1500+delta*3,1500+delta*4,1500+delta*5,1500+delta*6]
|
||||
dist = 37
|
||||
row_shift = [720,760,925,1120,1295,1470,1510,1650,1650+dist,1650+dist*2,1650+dist*3,1650+dist*4,1650+dist*5,1650+dist*6,1650+dist*7,1650+dist*8,1650+dist*9,2135,2315,2315+dist*1,2315+dist*2,2315+dist*3,2560,2750,2750+dist]
|
||||
row_shift = [720,760,925,1120,1295,1470,1510,1650,1650+dist,1650+dist*2,1650+dist*3,1650+dist*4,1650+dist*5,1650+dist*6,1650+dist*7,1650+dist*8,1650+dist*9,2135,2315,2315+dist*1,2315+dist*2,2315+dist*3,2560,2560+dist*1,2750,2750+dist]
|
||||
|
||||
for row_index,elem in enumerate(elements):
|
||||
add_elem(elem,column_shift[column_index],row_shift[row_index],img)
|
||||
@@ -74,8 +75,8 @@ Sv5 static
|
||||
"""
|
||||
|
||||
"""
|
||||
Supposedly this script will only be run on friday.
|
||||
DO NOT RUN IT ON ANY OTHER DAY THAN THURSDAY!!!
|
||||
ONLY RUN ON THURSDAY
|
||||
The data represented will not include any data from today. (It will always look 7 days back)
|
||||
"""
|
||||
if __name__ == "__main__":
|
||||
pd.options.mode.copy_on_write = True
|
||||
@@ -83,7 +84,7 @@ if __name__ == "__main__":
|
||||
week_number = date.isocalendar(current_date)[1]
|
||||
|
||||
scraper = DataScraper(USERNAME,PASSWORD,BASE_URL)
|
||||
imeis = OrderedDict([("KW1100-0070","86620705863754"),("KW1100-0071","86620705863410"),("KW1100-0080", "86620705863765"),("KW1100-0069","86620705863772"),("KW1100-0065","86620705864160"),("KW1100-0078","86620705863735"),("KW1100-0061","86620705863782"),("KW1100-0059","86620705863392"),("KW1100-0062","86620705863715"),("KW1100-0075","86620705863575"),("KW1100-0073","86620705864180"),("KW1100-0064","86620705863719"),("KW1100-0063","86620705863729"),("KW1100-0066","86620705863736"),("KW1100-0052","86366306494384"),("KW1100-0054","86366306494401"),("KW1100-0074","86620705864162"),("KW1100-0060","86620705863639"),("KW1100-0055","86620705863526"),("KW1100-0058","86620705864178"),("KW1100-0057","86620705864123") , ("KW1100-0056","86620705864099"),("KW1100-0051","86366306494409"),("KW1100-0079","86620705864105"),("KW1100-0049","86366306491069")])
|
||||
imeis = OrderedDict([("KW1100-0070","86620705863754"),("KW1100-0071","86620705863410"),("KW1100-0080", "86620705863765"),("KW1100-0069","86620705863772"),("KW1100-0065","86620705864160"),("KW1100-0078","86620705863735"),("KW1100-0061","86620705863782"),("KW1100-0059","86620705863392"),("KW1100-0062","86620705863715"),("KW1100-0075","86620705863575"),("KW1100-0073","86620705864180"),("KW1100-0064","86620705863719"),("KW1100-0063","86620705863729"),("KW1100-0066","86620705863736"),("KW1100-0053","86366306494398"),("KW1100-0054","86366306494401"),("KW1100-0074","86620705864162"),("KW1100-0060","86620705863639"),("KW1100-0055","86620705863526"),("KW1100-0058","86620705864178"),("KW1100-0057","86620705864123") , ("KW1100-0056","86620705864099"),("KW1100-0051","86366306494409"),("KW1100-0082", "86620705863403"),("KW1100-0079","86620705864105"),("KW1100-0049","86366306491069")])
|
||||
img = Image.open("template.png")
|
||||
img = add_elem(str(current_date),400,160,img,font_size=40)
|
||||
img = add_elem(str(week_number),400,110,img,font_size=40)
|
||||
@@ -97,12 +98,21 @@ if __name__ == "__main__":
|
||||
seven_day_dfs = [get_data_within_n_days(df,7,current_date) for df in dfs]
|
||||
counts_per_day = [df["MeasurementTime"].dt.floor('d').value_counts().sort_index().rename_axis("counts") for df in seven_day_dfs]
|
||||
|
||||
days = {"vr":[],"za":[],"zo":[],"ma":[],"di":[],"wo":[],"do":[]}
|
||||
days = {"do":[],"vr":[],"za":[],"zo":[],"ma":[],"di":[],"wo":[]}
|
||||
for count in counts_per_day:
|
||||
str_count_list = [str(elem) for elem in list(count)]
|
||||
last_7_days = list(reversed([(datetime.now()-timedelta(days=x)).strftime("%Y-%m-%d") for x in range(1,8)])) #if done on thursday it will always have [do,vr,za,zo,ma,di,wo]
|
||||
|
||||
str_count_list = []
|
||||
for day in last_7_days:
|
||||
try:
|
||||
str_count_list.append(str(count[day].item()))
|
||||
except:
|
||||
str_count_list.append(str(0))
|
||||
|
||||
for i,day in enumerate(["do","vr","za","zo","ma","di","wo"]):
|
||||
|
||||
days[day].append(str_count_list[i])
|
||||
|
||||
|
||||
img = fill_column(days["do"],0,img)
|
||||
img = fill_column(days["vr"],1,img)
|
||||
img = fill_column(days["za"],2,img)
|
||||
@@ -112,5 +122,6 @@ if __name__ == "__main__":
|
||||
img = fill_column(days["wo"],6,img)
|
||||
# plt.imshow(img)
|
||||
# plt.show()
|
||||
|
||||
img.save("report.pdf")
|
||||
|
||||
Reference in New Issue
Block a user