code: def restart(self, soft=False):
          
          log.info("BitfinexWSS.restart(): Restarting client..")
          super(BitfinexWSS, self).restart()
  
          # cache channel labels temporarily if soft == True
          channel_labels = [self.channel_labels[k] for k in self.channel_labels] if soft else None
  
          # clear previous channel caches
          self.channels = {}
          self.channel_labels = {}
          self.channel_states = {}
  
          if channel_labels:
              # re-subscribe to channels
              for channel_name, kwargs in channel_labels:
                  self._subscribe(channel_name, **kwargs)
docs: Restarts client. If soft is True, the client attempts to re-subscribe
          to all channels which it was previously subscribed to.
          :return: