def test_languagesystem(self): builder = Builder(makeTTFont(), (None, None)) builder.add_language_system(None, 'latn', 'FRA') builder.add_language_system(None, 'cyrl', 'RUS') builder.start_feature(location=None, name='test') self.assertEqual(builder.language_systems, {('latn', 'FRA'), ('cyrl', 'RUS')})
def doit(args): levels = ["WARNING", "INFO", "DEBUG"] configLogger(level=levels[min(len(levels) - 1, args.verbose)]) font = TTFont(args.input_font) builder = Builder(font, args.input_fea) builder.build() if args.lookupmap: with open(args.lookupmap, "w") as outf: for n, l in sorted(builder.named_lookups_.items()): outf.write("{},{},{}\n".format(n, l.table, l.lookup_index)) font.save(args.output)
def test_languagesystem(self): builder = Builder(makeTTFont(), (None, None)) builder.add_language_system(None, "latn", "FRA") builder.add_language_system(None, "cyrl", "RUS") builder.start_feature(location=None, name="test") self.assertEqual(builder.language_systems, {("latn", "FRA"), ("cyrl", "RUS")})
def saveOTF(self, filename): try: self.font.save(filename) ttfont = TTFont(filename) featurefile = UnicodeIO(self.fontfeatures.asFea()) builder = Builder(ttfont, featurefile) catmap = {"base": 1, "ligature": 2, "mark": 3, "component": 4} for g in self.font: if g.category in catmap: builder.setGlyphClass_(None, g.name, catmap[g.category]) builder.build() ttfont.save(filename) except Exception as e: print(e) return str(e)
def main(dropOldGSUB, dropOldGPOS, fea, fontTarget): target = ttLib.TTFont(fontTarget) # make a font that only has the tables from the fea feaFont = ttLib.TTFont() Builder(fea, feaFont).build() merger = Merger() merger.duplicateGlyphsPerFont = [{}] tables = [(k, feaFont[k]) for k in feaFont.keys() if k != 'GlyphOrder'] for k, table in tables: if k not in target \ or (k == 'GSUB' and dropOldGSUB) \ or (k == 'GPOS' and dropOldGPOS): print('replacing:', k, 'of', fontTarget) target[k] = table else: # merge print('merging:', k, 'into', fontTarget) target[k].merge(merger, [table]) target.save(fontTarget) target.close()
def test_languagesystem_none_specified(self): builder = Builder(makeTTFont(), (None, None)) builder.start_feature(location=None, name='test') self.assertEqual(builder.language_systems, {('DFLT', 'dflt')})
def test_language(self): builder = Builder(makeTTFont(), (None, None)) builder.add_language_system(None, 'latn', 'FRA ') builder.start_feature(location=None, name='test') builder.set_script(location=None, script='cyrl') builder.set_language(location=None, language='RUS ', include_default=False, required=False) self.assertEqual(builder.language_systems, {('cyrl', 'RUS ')}) builder.set_language(location=None, language='BGR ', include_default=True, required=False) self.assertEqual(builder.language_systems, {('cyrl', 'BGR ')}) builder.start_feature(location=None, name='test2') self.assertRaisesRegex( FeatureLibError, "Need non-DFLT script when using non-dflt language " "\(was: \"FRA \"\)", builder.set_language, None, 'FRA ', True, False)
def test_script(self): builder = Builder(makeTTFont(), (None, None)) builder.start_feature(location=None, name="test") builder.set_script(location=None, script="cyrl") self.assertEqual(builder.language_systems, {("cyrl", "dflt")})
def test_script(self): builder = Builder(makeTTFont(), (None, None)) builder.start_feature(location=None, name='test') builder.set_script(location=None, script='cyrl') self.assertEqual(builder.language_systems, {('cyrl', 'dflt')})
def test_language(self): builder = Builder(makeTTFont(), (None, None)) builder.add_language_system(None, 'latn', 'FRA ') builder.start_feature(location=None, name='test') builder.set_script(location=None, script='cyrl') builder.set_language(location=None, language='RUS ', include_default=False, required=False) self.assertEqual(builder.language_systems, {('cyrl', 'RUS ')}) builder.set_language(location=None, language='BGR ', include_default=True, required=False) self.assertEqual(builder.language_systems, {('latn', 'FRA '), ('cyrl', 'BGR ')})
def test_language(self): builder = Builder(makeTTFont(), (None, None)) builder.add_language_system(None, "latn", "FRA ") builder.start_feature(location=None, name="test") builder.set_script(location=None, script="cyrl") builder.set_language(location=None, language="RUS ", include_default=False, required=False) self.assertEqual(builder.language_systems, {("cyrl", "RUS ")}) builder.set_language(location=None, language="BGR ", include_default=True, required=False) self.assertEqual(builder.language_systems, {("cyrl", "BGR ")}) builder.start_feature(location=None, name="test2") self.assertEqual(builder.language_systems, {("latn", "FRA ")})
def test_languagesystem(self): builder = Builder(None, makeTTFont()) builder.add_language_system(None, "latn", "FRA") builder.add_language_system(None, "cyrl", "RUS") builder.start_feature(location=None, name="test") self.assertEqual(builder.language_systems, {("latn", "FRA"), ("cyrl", "RUS")})
def test_language(self): builder = Builder(None, makeTTFont()) builder.add_language_system(None, "latn", "FRA ") builder.start_feature(location=None, name="test") builder.set_script(location=None, script="cyrl") builder.set_language(location=None, language="RUS ", include_default=False, required=False) self.assertEqual(builder.language_systems, {("cyrl", "RUS ")}) builder.set_language(location=None, language="BGR ", include_default=True, required=False) self.assertEqual(builder.language_systems, {("latn", "FRA "), ("cyrl", "BGR ")})
def test_script(self): builder = Builder(None, makeTTFont()) builder.start_feature(location=None, name="test") builder.set_script(location=None, script="cyrl") self.assertEqual(builder.language_systems, {("DFLT", "dflt"), ("cyrl", "dflt")})
def test_languagesystem_none_specified(self): builder = Builder(None, makeTTFont()) builder.start_feature(location=None, name="test") self.assertEqual(builder.language_systems, {("DFLT", "dflt")})
def test_language(self): builder = Builder(makeTTFont(), (None, None)) builder.add_language_system(None, 'latn', 'FRA ') builder.start_feature(location=None, name='test') builder.set_script(location=None, script='cyrl') builder.set_language(location=None, language='RUS ', include_default=False, required=False) self.assertEqual(builder.language_systems, {('cyrl', 'RUS ')}) builder.set_language(location=None, language='BGR ', include_default=True, required=False) self.assertEqual(builder.language_systems, {('cyrl', 'BGR ')}) builder.start_feature(location=None, name='test2') self.assertEqual(builder.language_systems, {('latn', 'FRA ')})