docs: def start(self):
          """Determine what data file and suffix to contribute to and start coverage."""
  
          # Determine whether we are collocated with master.
          self.is_collocated = bool(socket.gethostname() == self.config.slaveinput['cov_master_host'] and
                                    self.topdir == self.config.slaveinput['cov_master_topdir'])
  
          # If we are not collocated then rewrite master paths to slave paths.
          if not self.is_collocated:
              master_topdir = self.config.slaveinput['cov_master_topdir']
              slave_topdir = self.topdir
              self.cov_source = [source.replace(master_topdir, slave_topdir) for source in self.cov_source]
              self.cov_data_file = self.cov_data_file.replace(master_topdir, slave_topdir)
              self.cov_config = self.cov_config.replace(master_topdir, slave_topdir)
  
          # Our slave node id makes us unique from all other slaves so
          # adjust the data file that we contribute to and the master
          # will combine our data with other slaves later.
          self.cov_data_file += '.%s' % self.nodeid
  
          # Erase any previous data and start coverage.
          self.cov = coverage.coverage(source=self.cov_source,
                                       data_file=self.cov_data_file,
                                       config_file=self.cov_config)
          self.cov.erase()
          self.cov.start()
          self.set_env()