code: def process_data(self, stream, metadata):
          
          ch, metadata = self._get_column_headers_and_update_metadata(stream, metadata)
          df = self._convert_data_block_and_headers_to_df(stream)
  
          return df, metadata, ch
docs: Extract the tabulated data from the input file.
  
          Parameters
          ----------
          stream : Streamlike object
              A Streamlike object (nominally StringIO)
              containing the table to be extracted
          metadata : dict
              Metadata read in from the header and the namelist
  
          Returns
          -------
          (pandas.DataFrame, dict)
              The first element contains the data, processed to the standard
              MAGICCData format.
              The second element is th updated metadata based on the processing performed.