def fire(self, name, entity, data):
"""
:param object obj: Object that is subscribed
:param str|Enum name: Name of the event. May be a string-valued enum.
:param entity: Entity, or ``None``.
:param data: Arbitrary data to add to the :py:class:`Event`.
Call all event handlers for the given *name* + *entity*, and pass *data*.
"""
if isinstance(name, Enum):
name = name.value
method_name = "on_" + name.lower()
event = Event(name, entity, data)
for (obj, required_entity) in self.handlers[name]:
if required_entity is None or entity is required_entity:
method = getattr(obj, method_name)
method(event)
if event._is_halted or self._is_halted:
break
self._is_halted = False
评论列表
文章目录