HEX
Server: Apache
System: Linux beluga.o2switch.net 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: sc3naki1272 (1113)
PHP: 8.3.33
Disabled: NONE
Upload Files
File: //opt/alt/python35/lib64/python3.5/site-packages/aiohttp/signals.py
from aiohttp.frozenlist import FrozenList


__all__ = ('Signal',)


class Signal(FrozenList):
    """Coroutine-based signal implementation.

    To connect a callback to a signal, use any list method.

    Signals are fired using the send() coroutine, which takes named
    arguments.
    """

    __slots__ = ('_owner',)

    def __init__(self, owner):
        super().__init__()
        self._owner = owner

    def __repr__(self):
        return '<Signal owner={}, frozen={}, {!r}>'.format(self._owner,
                                                           self.frozen,
                                                           list(self))

    async def send(self, *args, **kwargs):
        """
        Sends data to all registered receivers.
        """
        if not self.frozen:
            raise RuntimeError("Cannot send non-frozen signal.")

        for receiver in self:
            await receiver(*args, **kwargs)