42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
import logging
|
|
from typing import List
|
|
|
|
import openpyxl
|
|
|
|
logger = logging.getLogger("desktopenv.metrics.calc")
|
|
|
|
|
|
def compare_conference_city_in_order(actual_city_list_path, expected_city):
|
|
expected_city_list = expected_city["expected"]
|
|
wb = openpyxl.load_workbook(actual_city_list_path)
|
|
sheet = wb.active
|
|
actual_city_list = []
|
|
for row in sheet["C2:C22"]:
|
|
for cell in row:
|
|
actual_city_list.append(cell.value)
|
|
# expected_city is the city that we want to compare with the actual city list
|
|
# must in order index
|
|
# debug
|
|
try:
|
|
for i in range(len(actual_city_list)):
|
|
if isinstance(expected_city_list[i], str):
|
|
if expected_city_list[i] not in actual_city_list[i]:
|
|
logger.debug(f"Expected city {expected_city_list[i]}; Actual city {actual_city_list[i]}")
|
|
print(f"Expected city {expected_city_list[i]}; Actual city {actual_city_list[i]}")
|
|
return 0.
|
|
|
|
|
|
elif isinstance(expected_city_list[i], List):
|
|
if not any(possible_str in actual_city_list[i] for possible_str in expected_city_list[i]):
|
|
logger.debug(f"Expected city {expected_city_list[i]}; Actual city {actual_city_list[i]}")
|
|
print(f"Expected city {expected_city_list[i]}; Actual city {actual_city_list[i]}")
|
|
return 0.
|
|
|
|
else:
|
|
raise TypeError("Expected city should be a string or a list of strings")
|
|
|
|
except:
|
|
return 0.
|
|
|
|
return 1.
|