@property<EOL><INDENT>def masters(self):<DEDENT>
if self._sources:<EOL><INDENT>for source in self._sources.values():<EOL><INDENT>yield source.font<EOL><DEDENT>return<EOL><DEDENT>master_layer_ids = {m.id for m in self.font.masters}<EOL>supplementary_layer_data = []<EOL>self.to_ufo_font_attributes(self.family_name)<EOL>for glyph in self.font.glyphs:<EOL><INDENT>for layer in glyph.layers.values():<EOL><INDENT>if layer.associatedMasterId != layer.layerId:<EOL><INDENT>supplementary_layer_data.append((glyph, layer))<EOL>continue<EOL><DEDENT>ufo_layer = self.to_ufo_layer(glyph, layer)<EOL>ufo_glyph = ufo_layer.newGlyph(glyph.name)<EOL>self.to_ufo_glyph(ufo_glyph, layer, glyph)<EOL><DEDENT><DEDENT>for glyph, layer in supplementary_layer_data:<EOL><INDENT>if (<EOL>layer.layerId not in master_layer_ids<EOL>and layer.associatedMasterId not in master_layer_ids<EOL>):<EOL><INDENT>if self.minimize_glyphs_diffs:<EOL><INDENT>self.logger.warning(<EOL>'<STR_LIT>'<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>".format(<EOL>self.font.familyName, glyph.name, layer.layerId<EOL>)<EOL>)<EOL><DEDENT>continue<EOL><DEDENT>if not layer.name:<EOL><INDENT>if self.minimize_glyphs_diffs:<EOL><INDENT>self.logger.warning(<EOL>'<STR_LIT>'<EOL>"<STR_LIT>".format(self.font.familyName, glyph.name)<EOL>)<EOL><DEDENT>continue<EOL><DEDENT>if (<EOL>"<STR_LIT:[>" in layer.name<EOL>and "<STR_LIT:]>" in layer.name<EOL>and "<STR_LIT>" not in layer.name<EOL>):<EOL><INDENT>self.bracket_layers.append(layer)<EOL><DEDENT>else:<EOL><INDENT>ufo_layer = self.to_ufo_layer(glyph, layer)<EOL>ufo_glyph = ufo_layer.newGlyph(glyph.name)<EOL>self.to_ufo_glyph(ufo_glyph, layer, layer.parent)<EOL><DEDENT><DEDENT>for source in self._sources.values():<EOL><INDENT>ufo = source.font<EOL>if self.propagate_anchors:<EOL><INDENT>self.to_ufo_propagate_font_anchors(ufo)<EOL><DEDENT>for layer in ufo.layers:<EOL><INDENT>self.to_ufo_layer_lib(layer)<EOL><DEDENT><DEDENT>skip_export_glyphs = self._designspace.lib.get("<STR_LIT>")<EOL>if skip_export_glyphs is not None:<EOL><INDENT>skip_export_glyphs = sorted(set(skip_export_glyphs))<EOL>self._designspace.lib["<STR_LIT>"] = skip_export_glyphs<EOL>for source in self._sources.values():<EOL><INDENT>source.font.lib["<STR_LIT>"] = skip_export_glyphs<EOL><DEDENT><DEDENT>self.to_ufo_features()  <EOL>self.to_ufo_groups()<EOL>self.to_ufo_kerning()<EOL>for source in self._sources.values():<EOL><INDENT>yield source.font<EOL><DEDENT>
Get an iterator over master UFOs that match the given family_name.