Exemplo n.º 1
0
 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')})
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
 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')})
Exemplo n.º 4
0
 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")})
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
 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')})
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 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")})
Exemplo n.º 10
0
 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')})
Exemplo n.º 11
0
 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')})
Exemplo n.º 12
0
 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 ')})
Exemplo n.º 13
0
 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 ")})
Exemplo n.º 14
0
 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")})
Exemplo n.º 15
0
 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')})
Exemplo n.º 16
0
 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 ")})
Exemplo n.º 17
0
 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")})
Exemplo n.º 18
0
 def test_languagesystem_none_specified(self):
     builder = Builder(None, makeTTFont())
     builder.start_feature(location=None, name="test")
     self.assertEqual(builder.language_systems, {("DFLT", "dflt")})
Exemplo n.º 19
0
 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 ')})
Exemplo n.º 20
0
 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)