def testShortFileNameScheme_clashes(self): # test for the condition in code.robofab.com ticket #5 name1 = glyphNameToShortFileName('Adieresis', None) name2 = glyphNameToShortFileName('a_dieresis', None) self.assertNotEqual(name1, name2) name1 = glyphNameToShortFileName('AE', None) name2 = glyphNameToShortFileName('aE', None) self.assertNotEqual(name1, name2)
def testShortFileNameScheme(self): self.assertEqual(glyphNameToShortFileName("a", None), "a.glif") self.assertEqual(glyphNameToShortFileName("A", None), "A_.glif") self.assertEqual(glyphNameToShortFileName("a.alt", None), "a_alt.glif") self.assertEqual(glyphNameToShortFileName("A.alt", None), "A__alt.glif") self.assertEqual(glyphNameToShortFileName("a.alt#swash", None), "a_alt_swash.glif") self.assertEqual(glyphNameToShortFileName("A.alt", None), "A__alt.glif") self.assertEqual(glyphNameToShortFileName(".notdef", None), "_notdef.glif") self.assertEqual(glyphNameToShortFileName("f_f_i", None), "f_f_i.glif") self.assertEqual(glyphNameToShortFileName("F_F_I", None), "F__F__I_.glif") self.assertEqual(glyphNameToShortFileName("acircumflexdieresis.swash.alt1", None), "acircumflexdieresi0cfc8352.glif") self.assertEqual(glyphNameToShortFileName("acircumflexdieresis.swash.alt2", None), "acircumflexdieresi95f5d2e8.glif") self.assertEqual(glyphNameToShortFileName("Acircumflexdieresis.swash.alt1", None), "A_circumflexdieresed24fb56.glif") self.assertEqual(glyphNameToShortFileName("F#weight0.800_width0.425", None), "F__weight0_800_width0_425.glif") self.assertEqual(glyphNameToShortFileName("F#weight0.83245511_width0.425693567", None), "F__weight0_8324551c9a4143c.glif") self.assertEqual(len(glyphNameToShortFileName("F#weight0.83245511_width0.425693567", None)), 31)
def nameToFileName(name): return glyphNameToShortFileName(name, None)
def testShortFileNameScheme(self): print "testShortFileNameScheme" self.assertEqual(glyphNameToShortFileName("a", None), "a.glif") self.assertEqual(glyphNameToShortFileName("A", None), "A_.glif") self.assertEqual(glyphNameToShortFileName("aE", None), "aE_.glif") self.assertEqual(glyphNameToShortFileName("AE", None), "A_E_.glif") self.assertEqual(glyphNameToShortFileName("a.alt", None), "a_alt.glif") self.assertEqual(glyphNameToShortFileName("A.alt", None), "A__alt.glif") self.assertEqual(glyphNameToShortFileName("a.alt#swash", None), "a_alt_swash.glif") self.assertEqual(glyphNameToShortFileName("A.alt", None), "A__alt.glif") self.assertEqual(glyphNameToShortFileName(".notdef", None), "_notdef.glif") self.assertEqual(glyphNameToShortFileName("f_f_i", None), "f_f_i.glif") self.assertEqual(glyphNameToShortFileName("F_F_I", None), "F__F__I_.glif") self.assertEqual( glyphNameToShortFileName("acircumflexdieresis.swash.alt1", None), "acircumflexdieresi0cfc8352.glif") self.assertEqual( glyphNameToShortFileName("acircumflexdieresis.swash.alt2", None), "acircumflexdieresi95f5d2e8.glif") self.assertEqual( glyphNameToShortFileName("Acircumflexdieresis.swash.alt1", None), "A_circumflexdieresed24fb56.glif") self.assertEqual( glyphNameToShortFileName("F#weight0.800_width0.425", None), "F__weight0_800_width0_425.glif") self.assertEqual( glyphNameToShortFileName("F#weight0.83245511_width0.425693567", None), "F__weight0_8324551c9a4143c.glif") self.assertEqual( len( glyphNameToShortFileName("F#weight0.83245511_width0.425693567", None)), 31)
# robofab manual # Glifnames howto # glyphNameToShortFileName examples # examples of glyphname to glif name transformations from robofab.tools.glyphNameSchemes import glyphNameToShortFileName # a short name print glyphNameToShortFileName("accent", None) # a short name, starting with capital letter print glyphNameToShortFileName("Accent", None) # a really long name - note the hexadecimal hash at the end print glyphNameToShortFileName("this_is_a_very_long_glyph_name.altswash2", None) # a name with a period in it, 1 print glyphNameToShortFileName("a.alt", None) # a name with a period in it, 2 print glyphNameToShortFileName(".notdef", None)
from robofab.glifLib import writeGlyphToString from robofab.world import CurrentFont, CurrentGlyph from robofab.interface.all.dialogs import PutFile from robofab.tools.glyphNameSchemes import glyphNameToShortFileName import os f = CurrentFont() g = CurrentGlyph() if g is not None: todo = [g.name] else: todo = f.selection for c in todo: g = f[c] result = True data = writeGlyphToString(g.name, g, g.drawPoints) filename = glyphNameToShortFileName(g.name, None) file = PutFile("Save this glif as:") if file is not None: path = os.path.join(os.path.dirname(file), filename) print "saving to", path f = open(path, "w") f.write(data) f.close() print 'done'
""" from robofab.glifLib import writeGlyphToString from robofab.world import CurrentFont, CurrentGlyph from robofab.interface.all.dialogs import PutFile from robofab.tools.glyphNameSchemes import glyphNameToShortFileName import os f = CurrentFont() g = CurrentGlyph() if g is not None: todo = [g.name] else: todo = f.selection for c in todo: g = f[c] result = True data = writeGlyphToString(g.name, g, g.drawPoints) filename = glyphNameToShortFileName(g.name, None) file = PutFile("Save this glif as:") if file is not None: path = os.path.join(os.path.dirname(file), filename) print "saving to", path f = open(path, "w") f.write(data) f.close() print 'done'