code: def get_font_glyph_data(font):
      
      from fontbakery.constants import (PlatformID,
                                        WindowsEncodingID)
      font_data = []
  
      try:
          subtable = font['cmap'].getcmap(PlatformID.WINDOWS,
                                          WindowsEncodingID.UNICODE_BMP)
          if not subtable:
            # Well... Give it a chance here...
            # It may be using a different Encoding_ID value
            subtable = font['cmap'].tables[0]
  
          cmap = subtable.cmap
      except:
          return None
  
      cmap_reversed = dict(zip(cmap.values(), cmap.keys()))
  
      for glyph_name in font.getGlyphSet().keys():
          if glyph_name in cmap_reversed:
              uni_glyph = cmap_reversed[glyph_name]
              contours = glyph_contour_count(font, glyph_name)
              font_data.append({
                  'unicode': uni_glyph,
                  'name': glyph_name,
                  'contours': {contours}
              })
      return font_data
docs: Return information for each glyph in a font