docs: def write(self, file_or_path, append=False, timeout=10):
          """
          Write Smother results to a file.
  
          Parameters
          ----------
          fiile_or_path : str
              Path to write report to
          append : bool
              If True, read an existing smother report from `outpath`
              and combine it with this file before writing.
          timeout : int
              Time in seconds to wait to acquire a file lock, before
              raising an error.
  
          Note
          ----
          Append mode is atomic when file_or_path is a path,
          and can be safely run in a multithreaded or
          multiprocess test environment.
  
          When using `parallel_mode`, file_or_path is given a unique
          suffix based on the machine name and process id.
          """
          if isinstance(file_or_path, six.string_types):
              if self.coverage:
                  file_or_path = get_smother_filename(
                      file_or_path, self.coverage.config.parallel)
  
              outfile = Lock(
                  file_or_path, mode='a+',
                  timeout=timeout,
                  fail_when_locked=False
              )
          else:
              outfile = noclose(file_or_path)
  
          with outfile as fh:
  
              if append:
                  fh.seek(0)
                  try:
                      other = Smother.load(fh)
                  except ValueError:  # no smother data
                      pass
                  else:
                      self |= other
  
              fh.seek(0)
              fh.truncate()  # required to overwrite data in a+ mode
              json.dump(self.data, fh)