code: def register(self, signal, plugin, description=""):
          
          if signal in self.signals.keys():
              raise Exception("Signal %s was already registered by %s" % (signal, self.signals[signal].plugin.name))
  
          self.signals[signal] = Signal(signal, plugin, self._namespace, description)
          self.__log.debug("Signal %s registered by %s" % (signal, plugin.name))
          return self.signals[signal]
docs: Registers a new signal.
  
          :param signal: Unique name of the signal
          :param plugin: Plugin, which registers the new signal
          :param description: Description of the reason or use case, why this signal is needed.
                              Used for documentation.