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-23 18:13:44 +03:00
|
|
|
from base.base import (
|
|
|
|
|
BaseMediator,
|
|
|
|
|
BaseFileManager,
|
|
|
|
|
BaseDataConverter,
|
|
|
|
|
BasePlotWidget,
|
|
|
|
|
BasePointPassportFormer,
|
|
|
|
|
BaseController,
|
|
|
|
|
GraphicPassport,
|
2025-01-30 16:08:42 +03:00
|
|
|
Settings,
|
|
|
|
|
BaseRawTraceProcessor
|
2025-01-23 18:13:44 +03:00
|
|
|
)
|
2024-11-25 14:01:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class Mediator(BaseMediator):
|
|
|
|
|
|
|
|
|
|
def notify(self,
|
2025-01-30 16:08:42 +03:00
|
|
|
source: Union[BaseFileManager, BaseDataConverter, BasePointPassportFormer, BasePlotWidget, BaseController, BaseRawTraceProcessor],
|
|
|
|
|
data: Union[list[str], list[pd.DataFrame], list[GraphicPassport], list[QWidget], Settings, pd.DataFrame]):
|
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)
|
2025-01-23 17:33:17 +03:00
|
|
|
self._passport_former.form_passports(data)
|
2024-12-04 20:01:30 +03:00
|
|
|
|
|
|
|
|
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)
|
2025-01-23 17:33:17 +03:00
|
|
|
self._passport_former.update_settings(data)
|
2025-02-05 18:52:04 +03:00
|
|
|
self._trace_processor.update_settings(data)
|
2025-01-20 14:38:41 +03:00
|
|
|
|
2025-01-30 16:08:42 +03:00
|
|
|
if issubclass(source.__class__, BaseRawTraceProcessor):
|
2025-02-05 18:52:04 +03:00
|
|
|
self._passport_former.form_customer_passport(data)
|
2025-01-30 16:08:42 +03:00
|
|
|
|
|
|
|
|
def prerender(self, data:list[str]) -> None:
|
|
|
|
|
self._trace_processor.prerender(data)
|
|
|
|
|
|
2024-11-25 17:20:00 +03:00
|
|
|
|
|
|
|
|
|