docs: def _subscribe_all(self):
          """
          Subscribes all streams to their input.
          Subscribes all plugins to all their inputs.
          Subscribes all plugin outputs to the plugin.
          """
          for stream in (self.inbound_streams + self.outbound_streams):
              for input_ in stream.inputs:
                  if not type(input_) is int and input_ is not None:
                      self._subscribe(stream, input_)
  
          for plugin in self.plugins:
              for input_ in plugin.inputs:
                  self._subscribe(plugin, input_)
  
              for output in plugin.outputs:
                  # Find output stream instance
                  subscriber = next((x for x in self.outbound_streams
                                    if x.name == output), None)
                  if subscriber is None:
                      log.warn('The outbound stream {} does not '
                               'exist so will not receive messages '
                               'from {}'.format(output, plugin))
                  else:
                      self._subscribe(subscriber, plugin.name)