code: def from_files(cls, *glyphdata_files):
          
          name_mapping = {}
          alt_name_mapping = {}
          production_name_mapping = {}
  
          for glyphdata_file in glyphdata_files:
              glyph_data = xml.etree.ElementTree.parse(glyphdata_file).getroot()
              for glyph in glyph_data:
                  glyph_name = glyph.attrib["name"]
                  glyph_name_alternatives = glyph.attrib.get("altNames")
                  glyph_name_production = glyph.attrib.get("production")
  
                  name_mapping[glyph_name] = glyph.attrib
                  if glyph_name_alternatives:
                      alternatives = glyph_name_alternatives.replace(" ", "").split(",")
                      for glyph_name_alternative in alternatives:
                          alt_name_mapping[glyph_name_alternative] = glyph.attrib
                  if glyph_name_production:
                      production_name_mapping[glyph_name_production] = glyph.attrib
  
          return cls(name_mapping, alt_name_mapping, production_name_mapping)
docs: Return GlyphData holding data from a list of XML file paths.