def put_font_all_glyphs(master, glyph=None, preload=False, force_update=False): gliflist = extract_gliflist_from_ufo(master, glyph=glyph, extract_first=preload) fontpath = op.join(master.get_ufo_path(), 'glyphs') glyphs = [] for ch1 in gliflist: glyphName, ext = buildfname(ch1) if not glyphName or glyphName.startswith('.') or ext not in ["glif"]: continue if force_update: glyph_obj = Glyph.get(name=glyphName, master_id=master.id) if glyph_obj: GlyphPointParam.filter(glyph_id=glyph_obj.id).delete() GlyphPoint.filter(glyph_id=glyph_obj.id).delete() Glyph.delete(glyph_obj) glif = etree.parse(op.join(fontpath, ch1)) newglyph_obj = create_glyph(glif, master) if newglyph_obj: glyphs.append(newglyph_obj.name) try: return glyphs[0] except IndexError: return
def write_glyph_list(self, master, glyphname=None, interpolated=False): fontdirectory = master.get_fonts_directory() ifile = open(op.join(fontdirectory, "glyphlist.mf"), "w") glyphsdir = "metaglyphs" if interpolated else "glyphs" dirnamep1 = op.join(fontdirectory, glyphsdir) charlist1 = [f for f in os.listdir(dirnamep1)] if glyphname: charlist1 = filter(lambda f: f == '%s.mf' % glyphname, charlist1) for ch1 in charlist1: fnb, ext = buildfname(ch1) if ext in ["mf"]: ifile.write("input %s/%s\n" % (glyphsdir, ch1)) ifile.close()