/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop-0.4
src/liquidcode/events.py
75 строк
2 KB
User
0.4.5 - feat: добавить Event Dispatcher и API слушателей для жизненного цикла запроса
05 июл 2026, 14:53
05 июл 2026, 14:53
67c6f20
Код
Авторство
О чём код?
""" Определения событий для LiquidCode. """ from dataclasses import dataclass, field from typing import Any, Optional from .contracts import Request, Response @dataclass class RequestEvent: """Событие, возникающее перед обработкой запроса.""" request: Request response: Optional[Response] = None propagation_stopped: bool = field(default=False, init=False) def set_response(self, response: Response) -> None: self.response = response def stop_propagation(self) -> None: self.propagation_stopped = True @property def name(self) -> str: return "request" @dataclass class ResponseEvent: """Событие, возникающее после получения ответа от контроллера.""" request: Request response: Response propagation_stopped: bool = field(default=False, init=False) def stop_propagation(self) -> None: self.propagation_stopped = True @property def name(self) -> str: return "response" @dataclass class ExceptionEvent: """Событие, возникающее при возникновении исключения.""" request: Request exception: Exception response: Optional[Response] = None propagation_stopped: bool = field(default=False, init=False) def set_response(self, response: Response) -> None: self.response = response def stop_propagation(self) -> None: self.propagation_stopped = True @property def name(self) -> str: return "exception" @dataclass class TerminateEvent: """Событие, возникающее после отправки ответа клиенту.""" request: Request response: Response propagation_stopped: bool = field(default=False, init=False) def stop_propagation(self) -> None: self.propagation_stopped = True @property def name(self) -> str: return "terminate"