docs: def from_raw(self, file_names=None, **kwargs):
          """Load a raw data-file.
  
          Args:
              file_names (list of raw-file names): uses CellpyData.file_names if
                  None. If the list contains more than one file name, then the
                  runs will be merged together.
          """
          # This function only loads one test at a time (but could contain several
          # files). The function from_res() also implements loading several
          # datasets (using list of lists as input).
  
          if file_names:
              self.file_names = file_names
  
          if not isinstance(file_names, (list, tuple)):
              self.file_names = [file_names, ]
  
          # file_type = self.tester
          raw_file_loader = self.loader
          set_number = 0
          test = None
          counter = 0
          self.logger.debug("start iterating through file(s)")
          for f in self.file_names:
              self.logger.debug("loading raw file:")
              self.logger.debug(f"{f}")
              new_tests = raw_file_loader(f, **kwargs)
              if new_tests:
                  if test is not None:
                      self.logger.debug("continuing reading files...")
                      _test = self._append(test[set_number], new_tests[set_number])
                      if not _test:
                          self.logger.warning(f"EMPTY TEST: {f}")
                          continue
                      test[set_number] = _test
                      self.logger.debug("added this test - started merging")
                      for j in range(len(new_tests[set_number].raw_data_files)):
                          raw_data_file = new_tests[set_number].raw_data_files[j]
                          file_size = new_tests[set_number].raw_data_files_length[j]
                          test[set_number].raw_data_files.append(raw_data_file)
                          test[set_number].raw_data_files_length.append(file_size)
                          counter += 1
                          if counter > 10:
                              self.logger.debug("ERROR? Too many files to merge")
                              raise ValueError("Too many files to merge - "
                                               "could be a p2-p3 zip thing")
                  else:
                      self.logger.debug("getting data from first file")
                      if new_tests[set_number].no_data:
                          self.logger.debug("NO DATA")
                      else:
                          test = new_tests
              else:
                  self.logger.debug("NOTHING LOADED")
  
          self.logger.debug("finished loading the raw-files")
  
          test_exists = False
          if test:
              if test[0].no_data:
                  self.logging.debug("the first dataset (or only dataset) loaded from the raw data file is empty")
              else:
                  test_exists = True
  
          if test_exists:
              if not prms.Reader.sorted_data:
                  self.logger.debug("sorting data")
                  test[set_number] = self._sort_data(test[set_number])
  
              self.datasets.append(test[set_number])
          else:
              self.logger.warning("No new datasets added!")
          self.number_of_datasets = len(self.datasets)
          self.status_datasets = self._validate_datasets()
          self._invent_a_name()
          return self