from typing import Union import pandas as pd from PyQt5.QtWidgets import QWidget from base.base import (BaseMediator, BaseFileManager, BaseDataConverter, BasePlotWidget, BasePointPassportFormer, BaseController) class Mediator(BaseMediator): def notify(self, source: Union[BaseFileManager, BaseDataConverter, BasePointPassportFormer, BasePlotWidget, BaseController], data: Union[list[str], list[pd.DataFrame], list[list], list[QWidget], list[dict]]): if issubclass(source.__class__, BaseFileManager): self._controller.update_status("CSV found! Calculating...") self._converter.convert_data(data) if issubclass(source.__class__, BaseDataConverter): self._controller.update_progress(1) self._passportFormer.form_passports(data) if issubclass(source.__class__, BasePointPassportFormer): self._controller.update_progress(2) self._plot.build(data) if issubclass(source.__class__, BasePlotWidget): self._controller.update_progress(100) self._controller.send_widgets(data) if issubclass(source.__class__, BaseController): self._file_manager.update_monitor_settings(data) self._passportFormer.update_settings(data)