code: def run(self, *args, **kwargs):
          
          if self._source is not None:
              return self._source.run(*args, **kwargs)
          else:
              self.queue(*args, **kwargs)
              return self.wait()
docs: Queue a first item to execute, then wait for the queue to
          be empty before returning. This should be the default way of
          starting any scraper.