code: async def send(self, sender, **kwargs):
          ''' send a signal from the sender to all connected receivers '''
          if not self.receivers:
              return []
          responses = []
          futures = []
          for receiver in self._get_receivers(sender):
              method = receiver()
              if callable(method):
                  futures.append(method(sender=sender, **kwargs))
          if len(futures) > 0:
              responses = await asyncio.gather(*futures)
          return responseync def send(self, sender, **kwargs):
          ''' send a signal from the sender to all connected receivers '''
          if not self.receivers:
              return []
          responses = []
          futures = []
          for receiver in self._get_receivers(sender):
              method = receiver()
              if callable(method):
                  futures.append(method(sender=sender, **kwargs))
          if len(futures) > 0:
              responses = await asyncio.gather(*futures)
          return responses
docs: send a signal from the sender to all connected receivers