import pandas as pd class DumpType: full_dump = False class Technology: gsm = False wcdma = False lte = False neighbors = False trx = False mrbts = False mal = False invunit = False # Dictionary of sheet groups to check sheets_to_check = { "gsm": ["BTS", "BCF", "TRX", "MAL"], "neighbors": ["ADCE", "ADJS", "ADJI", "ADJG", "ADJW", "BTS", "WCEL"], "wcdma": ["WCEL", "WBTS", "WNCEL"], "lte": ["LNBTS", "LNCEL", "LNCEL_FDD", "LNCEL_TDD"], "trx": ["TRX", "BTS"], "mrbts": ["MRBTS"], "mal": ["MAL", "BTS"], "invunit": ["INVUNIT"], } def load(file_path): # Load the Excel file xlsb_file = pd.ExcelFile(file_path, engine="calamine") # Get all sheet names in the file available_sheets = xlsb_file.sheet_names return available_sheets def check_sheets(technology_attr, sheet_list, file_path): """ Check if all sheets in the given sheet_list exist in the Excel file. Parameters ---------- technology_attr : str The attribute of the Technology class to set. sheet_list : list[str] The list of sheet names to check. Returns ------- None """ available_sheets = load(file_path) missing_sheets = [sheet for sheet in sheet_list if sheet not in available_sheets] available_sheets_in_list = [ sheet for sheet in sheet_list if sheet in available_sheets ] if not missing_sheets: setattr(Technology, technology_attr, True) # print(getattr(Technology, technology_attr)) # print(f"available:", available_sheets_in_list) # print("All sheets exist") # else: # print(f"Missing sheets: {missing_sheets}") # print(f"available:", available_sheets_in_list) # print(getattr(Technology, technology_attr)) # Check each technology's sheets def execute_checks_sheets_exist(file_path): Technology.gsm = False Technology.wcdma = False Technology.lte = False Technology.neighbors = False Technology.trx = False Technology.mrbts = False Technology.invunit = False Technology.mal = False DumpType.full_dump = False for tech_attr, sheets in sheets_to_check.items(): check_sheets(tech_attr, sheets, file_path) # execute_checks_sheets_exist( # r"C:\Users\David\Documents\PROJECTS\2023\PROJET 2023\DUMP\DUMP\2142\DUMP 2142.xlsb" # )