code: def get_glyph(glyph_name, data=None):
      
  
      # Read data on first use.
      if data is None:
          global GLYPHDATA
          if GLYPHDATA is None:
              GLYPHDATA = GlyphData.from_files(
                  os.path.join(
                      os.path.dirname(glyphsLib.__file__), "data", "GlyphData.xml"
                  ),
                  os.path.join(
                      os.path.dirname(glyphsLib.__file__),
                      "data",
                      "GlyphData_Ideographs.xml",
                  ),
              )
          data = GLYPHDATA
  
      # Look up data by full glyph name first.
      attributes = _lookup_attributes(glyph_name, data)
  
      production_name = attributes.get("production")
      if production_name is None:
          production_name = _construct_production_name(glyph_name, data=data)
  
      unicode_value = attributes.get("unicode")
  
      category = attributes.get("category")
      sub_category = attributes.get("subCategory")
      if category is None:
          category, sub_category = _construct_category(glyph_name, data)
  
      # TODO: Determine script in ligatures.
      script = attributes.get("script")
      description = attributes.get("description")
  
      return Glyph(
          glyph_name,
          production_name,
          unicode_value,
          category,
          sub_category,
          script,
          description,
      )
docs: Return a named tuple (Glyph) containing information derived from a glyph
      name akin to GSGlyphInfo.
  
      The information is derived from an included copy of GlyphData.xml
      and GlyphData_Ideographs.xml, going purely by the glyph name.