diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 9579346..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/meal.py b/meal.py index 81c6bf7..9b5af21 100644 --- a/meal.py +++ b/meal.py @@ -70,19 +70,35 @@ def __init__(self) -> None: column 예외 존재 (2023.2.6의 1학1층한글 엑셀보면 쓸모없는 col이 있을 수 있음) 이를 위해 요일 있는 행의 index로 접근 ''' -EXCEL_COL_BLDG0 = [2, 11] +EXCEL_COL_BLDG0 = [2, 7] EXCEL_COL_BLDG0_EXCEPT = [] EXCEL_COL_BLDG1 = [1, 6] EXCEL_COL_BLDG2 = [3, 10] -DATE_INDEX_BLDG0 = 4 # Bldg.1 1st +DATE_INDEX_BLDG0 = 5 # Bldg.1 1st DATE_INDEX_BLDG1 = 1 # Bldg.1 2nd -DATE_INDEX_BLDG2 = 1 # Bldg.2 1st +DATE_INDEX_BLDG2 = 5 # Bldg.2 1st -INDEX_ENDPOINTS_BLDG0 = [[5, 15], [15, 22], [23, 30], [22, 23]] # Bldg.1 1st +# INDEX_ENDPOINTS_BLDG0 = [[5, 15], [15, 22], [23, 30], [22, 23]] # Bldg.1 1st +# 2023.03.27 식단부터 조식에 '즉석라면코너' 신설됨 -> constant로 관리. 따로 파싱 row 안만듦. +# INDEX_ENDPOINTS_BLDG0 = [[6, 16], [17, 25], [26, 33], [25, 26]] # Bldg.1 1st +# 2023.12.24 dinner 메뉴 하나 줄음 +INDEX_ENDPOINTS_BLDG0 = [[6, 16], [17, 25], [26, 32], [25, 26]] # Bldg.1 1st + +# 2023.05.06 조식 '즉석라면코너' 삭제됨 +# INDEX_ENDPOINTS_BLDG0 = [[5, 15], [15, 22], [23, 30], [22, 23]] # Bldg.1 1st INDEX_ENDPOINTS_BLDG1 = [[0, 0], [2, 12], [0, 0], [0, 0]] # Bldg.1 2nd INDEX_ENDPOINTS_BLDG1_EXCEPT = [4, 6] # 1학2층 엑셀은 숨겨진 행(5,7번) 존재하고 dummy 들어가있어 제외해야함. -INDEX_ENDPOINTS_BLDG2 = [[2, 12], [12, 20], [22, 29], [20, 22]] # Bldg.2 1st +# INDEX_ENDPOINTS_BLDG2 = [[2, 12], [12, 20], [22, 29], [20, 22]] # Bldg.2 1st +# 2023.03.06 식단부터 조식 메뉴 1개 줄었음. +# INDEX_ENDPOINTS_BLDG2 = [[2, 11], [11, 18], [20, 27], [18, 20]] # Bldg.2 1st +# 2023.03.13 식단부터 조식은 되돌아오고, 중식 메뉴 1개 줄었음. +# INDEX_ENDPOINTS_BLDG2 = [[2, 12], [12, 19], [21, 28], [19, 21]] # Bldg.2 1st +# 2023.03.20 식단의 메뉴 바뀜. +# INDEX_ENDPOINTS_BLDG2 = [[2, 11], [11, 18], [20, 27], [18, 20]] # Bldg.2 1st +# 2023.11.25 2학 영양사님 바뀌셔서 양식 바뀜 +INDEX_ENDPOINTS_BLDG2 = [[6, 15], [17, 24], [24, 31], [15, 17]] # Bldg.2 1st + # allergy type according to allergy code ALGY_1_ING_KOR = ["난류", "우유", "메밀", "대두", "땅콩", "밀", diff --git a/parsing.py b/parsing.py index dcb0b9a..7cf85ae 100644 --- a/parsing.py +++ b/parsing.py @@ -8,7 +8,6 @@ from meal import KOR, ENG from meal import BREAKFAST, LUNCH, DINNER from meal import BLDG1_1ST, BLDG1_2ND, BLDG2_1ST -from meal import DATE_LEN, DATE_2nd,DATE_1st from meal import MEAL_KIND from meal import BLDG_KIND from meal import EXCEL_COL_BLDG, INDEX_ENDPOINTS, DATE_INDEX @@ -32,12 +31,12 @@ def parsing(excel_path: str, bldgType: int, langType: int) -> list: index_col=None, header=None, names=None, engine='openpyxl') # 맨 뒤에서 2번째 sheet가 이번주 sheet - last_sheet = list(xl.keys())[-2] + last_sheet = list(xl.keys())[-1] sheet = xl[last_sheet] # 짝수 column만 사용 sheet_keys = sheet.keys()[start_col_idx : end_col_idx] - sheet_keys = sheet_keys[0::2] + # sheet_keys = sheet_keys[0::2] for (dateType, date_str) in enumerate(sheet_keys): date_sheet = sheet[date_str] @@ -52,12 +51,16 @@ def parsing(excel_path: str, bldgType: int, langType: int) -> list: # 1학 1층 영어 elif bldgType == BLDG1_1ST and langType == 1: - sheet = pd.read_excel(excel_path, sheet_name=0, + xl = pd.read_excel(excel_path, sheet_name=None, index_col=None, header=None, names=None, engine='openpyxl') + # 맨 뒤에서 2번째 sheet가 이번주 sheet + last_sheet = list(xl.keys())[-1] + sheet = xl[last_sheet] + # 짝수 column만 사용 sheet_keys = sheet.keys()[start_col_idx: end_col_idx] - sheet_keys = sheet_keys[0::2] + # sheet_keys = sheet_keys[0::2] for (dateType, date_str) in enumerate(sheet_keys): date_sheet = sheet[date_str] @@ -85,18 +88,6 @@ def parsing(excel_path: str, bldgType: int, langType: int) -> list: bldg, date, kind, menu, special) parsing_result.append(meal.__dict__) return parsing_result - - - if bldgType == 0 & langType == 1: #1학 영어 엑셀 - for (dateType, date_str) in enumerate(DATE_1st): - date_sheet = sheet[date_str] - date = parsing_date(time_index, date_sheet) - for kindType in [BREAKFAST, LUNCH, DINNER]: - kind = MEAL_KIND[langType][kindType] - menu, special = parsing_meal[kindType](endpoint, date_sheet, langType, dateType, bldgType) - meal = Meal(bldgType, langType, dateType, kindType, - bldg, date, kind, menu, special) - parsing_result.append(meal.__dict__) # 2학 elif bldgType == BLDG2_1ST: @@ -147,18 +138,17 @@ def parsingTest(): print("-------------------------------------------------") print("parsing xlsx to json...") - if exists(filepath_bldg1_1_kor) and exists(filepath_bldg1_1_eng): + if exists(filepath_bldg1_1_kor): parsing_result.extend(parsing(filepath_bldg1_1_kor, BLDG1_1ST, KOR)) #1학 1층, 한글 + if exists(filepath_bldg1_1_eng): parsing_result.extend(parsing(filepath_bldg1_1_eng, BLDG1_1ST, ENG)) #1학 1층, 영어 - None - if exists(filepath_bldg1_2_kor) and exists(filepath_bldg1_2_eng): + if exists(filepath_bldg1_2_kor): parsing_result.extend(parsing(filepath_bldg1_2_kor, BLDG1_2ND, KOR)) #1학 2층, 한글 + if exists(filepath_bldg1_2_eng): parsing_result.extend(parsing(filepath_bldg1_2_eng, BLDG1_2ND, ENG)) #1학 2층, 영어 - None if exists(filepath_bldg2): parsing_result.extend(parsing(filepath_bldg2, BLDG2_1ST, KOR)) #2학 1층, 한글 - parsing_result.extend(parsing(filepath_bldg2, BLDG2_1ST, ENG)) #2학 1층, 영어 - None + # parsing_result.extend(parsing(filepath_bldg2, BLDG2_1ST, ENG)) #2학 1층, 영어 print("-------------------------------------------------") diff --git a/util.py b/util.py index fd0e3ca..4fcb4c3 100644 --- a/util.py +++ b/util.py @@ -8,6 +8,8 @@ def parsing_date(time_index: int, data_sheet: list): date = str(data_sheet[time_index]) + if '.' in date: + date = date.replace('.', '-') return date[:DATE_LEN] if len(date) > DATE_LEN else date @@ -28,6 +30,11 @@ def parsing_breakfast(endpoint: list, data_sheet: list, langType: int, dateType: row_range = endpoint[BREAKFAST] menu = parsing_menu(row_range, data_sheet, langType, bldgType) special = "" + if bldgType == 0: + if langType == 0: + special = "셀프 즉석라면코너(라면*계란*흰밥*김치*시리얼*우유*토스트*야채샐러드)\n" + else: + special += "self ramen corner(ramen*egg*rice*kimchi* salad*toast*serial)\n" return menu, special @@ -84,6 +91,9 @@ def sanitize_menu(menu: str): return "" if type(menu) != str: return "" + if "---" in menu: + # dummy data in Bldg.2 (2023.11.25) + return "" return menu.rstrip("0123456789. ")