Spaces:
Sleeping
Sleeping
| """ | |
| Базовый класс коллектора | |
| """ | |
| from abc import ABC, abstractmethod | |
| from typing import TYPE_CHECKING | |
| if TYPE_CHECKING: | |
| from ..core import DebugSession, DebugStep | |
| class BaseCollector(ABC): | |
| """ | |
| Базовый класс для всех коллекторов данных. | |
| Коллектор отвечает за: | |
| 1. Инжект перехватчиков в страницу (inject) | |
| 2. Периодический сбор данных (collect) | |
| 3. Обработку начала/конца шага (on_step_start/on_step_end) | |
| """ | |
| name: str = "base" | |
| def __init__(self, session: 'DebugSession'): | |
| self.session = session | |
| self._data = [] | |
| def page(self): | |
| return self.session.page | |
| def log(self, msg: str): | |
| """Логирование через сессию""" | |
| self.session._log(f" [{self.name}] {msg}") | |
| def inject(self): | |
| """Инжектит перехватчики в страницу""" | |
| pass | |
| def collect(self) -> list: | |
| """Собирает накопленные данные""" | |
| pass | |
| def on_step_start(self, step_name: str): | |
| """Вызывается при начале шага""" | |
| pass | |
| def on_step_end(self, step: 'DebugStep'): | |
| """Вызывается при завершении шага""" | |
| pass | |