2024-11-25 14:01:09 +03:00
|
|
|
from typing import Union
|
2025-01-20 14:38:41 +03:00
|
|
|
|
|
|
|
|
import pandas as pd
|
2024-11-25 14:01:09 +03:00
|
|
|
from PyQt5.QtWidgets import QWidget
|
|
|
|
|
|
2025-01-22 18:24:19 +03:00
|
|
|
from base.base import (BaseMediator, BaseFileManager,
|
2024-12-18 10:16:50 +03:00
|
|
|
BaseDataConverter, BasePlotWidget,
|
2025-01-21 16:45:53 +03:00
|
|
|
BasePointPassportFormer,
|
|
|
|
|
BaseController)
|
2024-11-25 14:01:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class Mediator(BaseMediator):
|
|
|
|
|
|
|
|
|
|
def notify(self,
|
2025-01-22 18:24:19 +03:00
|
|
|
source: Union[BaseFileManager, BaseDataConverter, BasePointPassportFormer, BasePlotWidget, BaseController],
|
2025-01-21 16:45:53 +03:00
|
|
|
data: Union[list[str], list[pd.DataFrame], list[list], list[QWidget], list[dict]]):
|
2024-12-09 16:05:34 +03:00
|
|
|
|
2025-01-22 18:24:19 +03:00
|
|
|
if issubclass(source.__class__, BaseFileManager):
|
2025-01-20 14:38:41 +03:00
|
|
|
self._controller.update_status("CSV found! Calculating...")
|
2024-11-25 14:01:09 +03:00
|
|
|
self._converter.convert_data(data)
|
|
|
|
|
|
|
|
|
|
if issubclass(source.__class__, BaseDataConverter):
|
2025-01-21 16:45:53 +03:00
|
|
|
self._controller.update_progress(1)
|
2024-12-04 20:01:30 +03:00
|
|
|
self._passportFormer.form_passports(data)
|
|
|
|
|
|
|
|
|
|
if issubclass(source.__class__, BasePointPassportFormer):
|
2025-01-21 16:45:53 +03:00
|
|
|
self._controller.update_progress(2)
|
2024-11-25 14:01:09 +03:00
|
|
|
self._plot.build(data)
|
|
|
|
|
|
|
|
|
|
if issubclass(source.__class__, BasePlotWidget):
|
2025-01-21 16:45:53 +03:00
|
|
|
self._controller.update_progress(100)
|
2024-11-25 14:01:09 +03:00
|
|
|
self._controller.send_widgets(data)
|
2025-01-21 16:45:53 +03:00
|
|
|
|
|
|
|
|
if issubclass(source.__class__, BaseController):
|
|
|
|
|
self._file_manager.update_monitor_settings(data)
|
|
|
|
|
self._passportFormer.update_settings(data)
|
2025-01-20 14:38:41 +03:00
|
|
|
|
2024-11-25 17:20:00 +03:00
|
|
|
|
|
|
|
|
|