from typing import Union import pandas as pd from PyQt5.QtWidgets import QWidget from base.base import (BaseMediator, BaseDirectoryMonitor, BaseDataConverter, BasePlotWidget, BasePointPassportFormer) class Mediator(BaseMediator): def notify(self, source: Union[BaseDirectoryMonitor, BaseDataConverter, BasePointPassportFormer, BasePlotWidget], data: Union[list[str], list[pd.DataFrame], list[list], list[QWidget]]): if issubclass(source.__class__, BaseDirectoryMonitor): self._controller.update_status("CSV found! Calculating...") self._converter.convert_data(data) if issubclass(source.__class__, BaseDataConverter): self._controller.update_status(1) self._passportFormer.form_passports(data) if issubclass(source.__class__, BasePointPassportFormer): self._controller.update_status(2) self._plot.build(data) if issubclass(source.__class__, BasePlotWidget): self._controller.update_status(100) self._controller.send_widgets(data) def update_settings(self, settings: list[dict]): # TODO: А дописать self.notify не? # if issubclass(source.__class__, BaseController): # self._monitor.update_settings(data) # self._passportFormer.update_settings(data) self._monitor.update_settings(settings) self._passportFormer.update_settings(settings)