def test_parse_empty_glyphs(self): # data = '({glyphname="A";})' data = '({})' parser = Parser(GSGlyph) result = parser.parse(data) self.assertEqual(len(result), 1) glyph = result[0] self.assertIsInstance(glyph, GSGlyph) defaults_as_none = [ "category", "color", "lastChange", "leftKerningGroup", "leftMetricsKey", "name", "note", "rightKerningGroup", "rightMetricsKey", "script", "subCategory", "unicode", "widthMetricsKey", ] for attr in defaults_as_none: self.assertIsNone(getattr(glyph, attr)) self.assertIsNotNone(glyph.userData) defaults_as_true = [ "export", ] for attr in defaults_as_true: self.assertTrue(getattr(glyph, attr))
def loads(value): """Read a .glyphs file from a bytes object. Return the unpacked root object (an ordered dictionary). """ p = Parser() print('>>> Parsing .glyphs file') data = p.parse(value) print('>>> Casting parsed values') cast_data(data) return data
def loads(value, dict_type=dict): """Read a .glyphs file from a bytes object. Return the unpacked root object (which usually is a dictionary). """ p = Parser(dict_type=dict_type) print('>>> Parsing .glyphs file') data = p.parse(value) print('>>> Casting parsed values') cast_data(data) return data
def loads(value): """Read a .glyphs file from a bytes object. Return the unpacked root object (an ordered dictionary). """ p = Parser() logger.info('Parsing .glyphs file') data = p.parse(value) logger.info('Casting parsed values') cast_data(data) return data
def test_parse_glyphs(self): data = GLYPH_DATA parser = Parser(GSGlyph) result = parser.parse(data) glyph = result[0] self.assertEqual(glyph.name, "A") self.assertEqual(glyph.color, 5) self.assertEqual(glyph.lastChange, datetime.datetime(2017, 4, 30, 13, 57, 4)) self.assertEqual(glyph.leftKerningGroup, "A") self.assertEqual(glyph.rightKerningGroup, "A") self.assertEqual(glyph.unicode, "0041")
def run_test(self, text, expected): parser = Parser() self.assertEqual(parser.parse(text), collections.OrderedDict(expected))
def parse(fp, dict_type=dict): from glyphsLib.parser import Parser s = fp.read() p = Parser(current_type=dict_type) return p.parse(s)