Исходный код EJIO.ctk_extender.state.events

## /ctk_extender/state/events.py

from typing import Any
from ..event import Event

__all__ = [
    'StateChangedEvent',
    'CollectionChangedEvent',
    'DictionaryChangedEvent',
]


[документация] class StateChangedEvent[T](Event): """Событие, возникающее при изменении одиночного реактивного состояния.""" __slots__ = ('_sender', '_new_value') def __init__(self, sender: Any, new_value: T) -> None: """ :param sender: Ссылка на сам объект состояния State, породивший событие. :param new_value: Новое вычисленное значение состояния. """ super().__init__() self._sender: Any = sender self._new_value: T = new_value @property def sender(self) -> Any: return self._sender @property def new_value(self) -> T: return self._new_value
[документация] class CollectionChangedEvent[T](Event): """Событие, возникающее при изменении реактивной коллекции (добавление, удаление, очистка).""" __slots__ = ('_sender', '_operation', '_items') def __init__(self, sender: Any, operation: str, items: list[T]) -> None: """ :param sender: Ссылка на объект коллекции ReactiveList. :param operation: Строковый маркер операции ('append', 'extend', 'remove', 'pop', 'clear', 'set'). :param items: Список элементов, затронутых операцией. """ super().__init__() self._sender: Any = sender self._operation: str = operation self._items: list[T] = items @property def sender(self) -> Any: return self._sender @property def operation(self) -> str: return self._operation @property def items(self) -> list[T]: return self._items
[документация] class DictionaryChangedEvent[K, V](Event): """Событие, возникающее при изменении реактивного словаря (set, delete, clear).""" __slots__ = ('_sender', '_operation', '_key', '_value') def __init__(self, sender: Any, operation: str, key: K | None, value: V | None) -> None: super().__init__(sender) self._sender: Any = sender self._operation: str = operation self._key: K | None = key self._value: V | None = value @property def sender(self) -> Any: return self._sender @property def operation(self) -> str: return self._operation @property def key(self) -> K | None: return self._key @property def value(self) -> V | None: return self._value