Исходный код EJIO.ctk_extender.event.base

## /ctk_extender/event/base.py

from typing import Any

__all__ = [
    'Event',
]


[документация] class Event: """ Базовый абстрактный класс для всех событий. Каждое конкретное событие должно наследоваться от этого класса. """ __slots__ = ('_timestamp', '_sender_thread_name', '_sender') def __init__(self, sender: Any = None) -> None: """ Инициализирует базовые метаданные события. :param sender: Отправитель события. """ import time import threading self._timestamp: float = time.time() self._sender_thread_name: str = threading.current_thread().name self._sender: Any = sender @property def timestamp(self) -> float: """Возвращает UNIX-время создания события.""" return self._timestamp @property def sender_thread_name(self) -> str: """Возвращает имя потока, отправившего событие.""" return self._sender_thread_name @property def sender(self) -> Any: """Возвращает отправителя события.""" return self._sender def __repr__(self) -> str: """Возвращает строковое представление события с его атрибутами.""" attrs = ", ".join(f"{k}={v!r}" for k, v in self.__dict__.items() if not k.startswith("_")) return f"{self.__class__.__name__}({attrs})"