def to_ufo_font_attributes(self, family_name):
font = self.font<EOL>date_created = getattr(font, "<STR_LIT:date>", None)<EOL>if date_created is not None:<EOL><INDENT>date_created = to_ufo_time(date_created)<EOL><DEDENT>units_per_em = font.upm<EOL>version_major = font.versionMajor<EOL>version_minor = font.versionMinor<EOL>copyright = font.copyright<EOL>designer = font.designer<EOL>designer_url = font.designerURL<EOL>manufacturer = font.manufacturer<EOL>manufacturer_url = font.manufacturerURL<EOL>glyph_order = list(glyph.name for glyph in font.glyphs)<EOL>for index, master in enumerate(font.masters):<EOL><INDENT>source = self._designspace.newSourceDescriptor()<EOL>ufo = self.ufo_module.Font()<EOL>source.font = ufo<EOL>ufo.lib[APP_VERSION_LIB_KEY] = font.appVersion<EOL>ufo.lib[KEYBOARD_INCREMENT_KEY] = font.keyboardIncrement<EOL>if date_created is not None:<EOL><INDENT>ufo.info.openTypeHeadCreated = date_created<EOL><DEDENT>ufo.info.unitsPerEm = units_per_em<EOL>ufo.info.versionMajor = version_major<EOL>ufo.info.versionMinor = version_minor<EOL>if copyright:<EOL><INDENT>ufo.info.copyright = copyright<EOL><DEDENT>if designer:<EOL><INDENT>ufo.info.openTypeNameDesigner = designer<EOL><DEDENT>if designer_url:<EOL><INDENT>ufo.info.openTypeNameDesignerURL = designer_url<EOL><DEDENT>if manufacturer:<EOL><INDENT>ufo.info.openTypeNameManufacturer = manufacturer<EOL><DEDENT>if manufacturer_url:<EOL><INDENT>ufo.info.openTypeNameManufacturerURL = manufacturer_url<EOL><DEDENT>ufo.glyphOrder = glyph_order<EOL>self.to_ufo_names(ufo, master, family_name)<EOL>self.to_ufo_family_user_data(ufo)<EOL>self.to_ufo_custom_params(ufo, font)<EOL>self.to_ufo_master_attributes(source, master)<EOL>ufo.lib[MASTER_ORDER_LIB_KEY] = index<EOL>self._designspace.addSource(source)<EOL>self._sources[master.id] = source<EOL><DEDENT>
Generate a list of UFOs with metadata loaded from .glyphs data.

    Modifies the list of UFOs in the UFOBuilder (self) in-place.