docs: def _update_libdata(self, line):
          """Update the library meta data from the current line being parsed
  
          Args:
              line (str): The current line of the of the file being parsed
          """
          ####################################################
          # parse MONA Comments line
          ####################################################
          # The mona msp files contain a "comments" line that contains lots of other information normally separated
          # into by ""
          if re.match('^Comment.*$', line, re.IGNORECASE):
              comments = re.findall('"([^"]*)"', line)
              for c in comments:
                  self._parse_meta_info(c)
                  self._parse_compound_info(c)
  
          ####################################################
          # parse meta and compound info lines
          ####################################################
          # check the current line for both general meta data
          # and compound information
          self._parse_meta_info(line)
          self._parse_compound_info(line)
  
          ####################################################
          # End of meta data
          ####################################################
          # Most MSP files have the a standard line of text before the spectra information begins. Here we check
          # for this line and store the relevant details for the compound and meta information to be ready for insertion
          # into the database
          if self.collect_meta and (re.match('^Num Peaks(.*)$', line, re.IGNORECASE) or re.match('^PK\$PEAK:(.*)', line,
                  re.IGNORECASE) or re.match('^PK\$ANNOTATION(.*)', line, re.IGNORECASE)):
  
              self._store_compound_info()
  
              self._store_meta_info()
  
              # Reset the temp meta and compound information
              self.meta_info = get_blank_dict(self.meta_regex)
              self.compound_info = get_blank_dict(self.compound_regex)
              self.other_names = []
              self.collect_meta = False
  
          # ignore additional information in the 3rd column if using the MassBank spectra schema
          if re.match('^PK\$PEAK: m/z int\. rel\.int\.$', line, re.IGNORECASE):
              self.ignore_additional_spectra_info = True
  
          # Check if annnotation or spectra is to be in the next lines to be parsed
          if re.match('^Num Peaks(.*)$', line, re.IGNORECASE) or re.match('^PK\$PEAK:(.*)', line, re.IGNORECASE):
              self.start_spectra = True
              return
          elif re.match('^PK\$ANNOTATION(.*)', line, re.IGNORECASE):
              self.start_spectra_annotation = True
  
              match = re.match('^PK\$ANNOTATION:(.*)', line, re.IGNORECASE)
              columns = match.group(1)
              cl = columns.split()
  
              self.spectra_annotation_indexes = {i: cl.index(i) for i in cl}
              return
  
          ####################################################
          # Process annotation details
          ####################################################
          # e.g. molecular formula for each peak in the spectra
          if self.start_spectra_annotation:
              self._parse_spectra_annotation(line)
  
          ####################################################
          # Process spectra
          ####################################################
          if self.start_spectra:
              self._parse_spectra(line)