/
fgtmenow
/
tb
Обзор
Документация
Войти
/
fgtmenow
/
tb
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
bot/actions/base/BaseAction.py
63 строки
2 KB
Azarev Artem
add base bot sources
25 мар 2025, 20:11
25 мар 2025, 20:11
184b0c6
Код
Авторство
О чём код?
import sys import time import traceback from bot.objects.BacktestStat import BacktestStat from bot.objects.InstrumentCache import InstrumentCache from bot.objects.Store import Store """ Базовый класс для всех действий в системе. Предоставляет общую функциональность для выполнения действий и обработки ошибок. Attributes: name (str): Название действия instrumentCache (InstrumentCache): Кэш инструментов store (Store): Хранилище данных stat (BacktestStat): Статистика бэктеста """ class BaseAction: def __init__(self, name: str): """ Инициализация базового действия. Args: name (str): Название действия """ self.name = name self.instrumentCache = InstrumentCache() self.store = Store() self.stat = BacktestStat() def run(self, processor): """ Запускает выполнение действия с замером времени и обработкой ошибок. Args: processor: Процессор событий """ try: start = time.time_ns() self.work(processor) task_time = (time.time_ns() - start) / 1000000 self.stat.log_task(self.name, int(task_time)) except Exception as e: error_message = repr(e) print(error_message) traceback.print_exc(file=sys.stdout) def work(self, processor): """ Абстрактный метод для реализации конкретного действия. Должен быть переопределен в дочерних классах. Args: processor: Процессор событий Raises: NotImplementedError: Если метод не переопределен """ raise NotImplementedError("This method should be implemented by subclasses")