code: def from_files(cls, ID, datafiles, parser='name',
                     position_mapper=None,
                     readdata_kwargs={}, readmeta_kwargs={}, ID_kwargs={}, **kwargs):
          
          if position_mapper is None:
              if isinstance(parser, six.string_types):
                  position_mapper = parser
              else:
                  msg = "When using a custom parser, you must specify the position_mapper keyword."
                  raise ValueError(msg)
          d = _assign_IDS_to_datafiles(datafiles, parser, cls._measurement_class, **ID_kwargs)
          measurements = []
          for sID, dfile in d.items():
              try:
                  measurements.append(cls._measurement_class(sID, datafile=dfile,
                                                             readdata_kwargs=readdata_kwargs,
                                                             readmeta_kwargs=readmeta_kwargs))
              except:
                  msg = 'Error occured while trying to parse file: %s' % dfile
                  raise IOError(msg)
          return cls(ID, measurements, position_mapper, **kwargs)
docs: Create an OrderedCollection of measurements from a set of data files.
  
          Parameters
          ----------
          {_bases_ID}
          {_bases_data_files}
          {_bases_filename_parser}
          {_bases_position_mapper}
          {_bases_ID_kwargs}
          kwargs : dict
              Additional key word arguments to be passed to constructor.