def __init__(self, file, from_pickle=False): if from_pickle: data = pickle.load(file) Checker.clean_global_init(data["checker_meta"]) Seat.counters = data["seats_meta"] self.__dict__.update(data["controller"].__dict__) return self.email_handle = list() self.mode = {"people": "None"} self.last_change = None self.people = pd.DataFrame() self.auds = dict() self.inds = list() self.teams = list() self.seed = 1 found_main_settings = False excel_file = ExcelFile(file) for name in excel_file.sheet_names: raw_frame = excel_file.parse(name, index_col=None, header=None) unresolved_dict = splitter(raw_frame, named=True) if "main_settings" in unresolved_dict.keys(): if found_main_settings: raise ControllerException("Две страницы с общими настройками!") found_main_settings = True Checker.raw_global_init(unresolved_dict) self.checker = Checker() if not found_main_settings: raise TypeError("Настройки не найдены, на странице с настройками нужен ключ main_settings") for name in excel_file.sheet_names: raw_frame = excel_file.parse(name, index_col=None, header=None) unresolved_dict = splitter(raw_frame, named=True) if "main_settings" not in unresolved_dict.keys(): tmp = Auditory(unresolved_dict, outer_name=name) if tmp.inner_name in self.auds.keys(): del tmp raise TypeError("Есть одинаковые аудитории") else: self.auds[tmp.inner_name] = tmp self._message_upd()