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.