docs: def _get_core_keywords(skw_matches, ckw_matches, spires=False):
      """Return the output for the field codes.
  
      :var skw_matches: dict of {keyword: [info,...]}
      :var ckw_matches: dict of {keyword: [info,...]}
      :keyword spires: bool, to get the spires output
      :return: list of formatted core keywords
      """
      output = {}
      category = {}
  
      def _get_value_kw(kw):
          """Help to sort the Core keywords."""
          i = 0
          while kw[i].isdigit():
              i += 1
          if i > 0:
              return int(kw[:i])
          else:
              return 0
  
      for skw, info in skw_matches:
          if skw.core:
              output[skw.output(spires)] = len(info[0])
              category[skw.output(spires)] = skw.type
      for ckw, info in ckw_matches:
          if ckw.core:
              output[ckw.output(spires)] = len(info[0])
          else:
              # test if one of the components is  not core
              i = 0
              for c in ckw.getComponents():
                  if c.core:
                      output[c.output(spires)] = info[1][i]
                  i += 1
      output = [{'keyword': key, 'number': value}
                for key, value in output.iteritems()]
      return sorted(output, key=lambda x: x['number'], reverse=True)