130 Commits

Author SHA1 Message Date
Ben Kiel
e1227441e4
Grammer 2018-07-04 15:02:26 -05:00
Ben Kiel
53b4352a3b
Turn on validation by default in glyphLib 2018-07-04 13:56:44 -05:00
Tal Leming
1d6dddc8f5 Unneeded import. 2018-06-14 13:34:19 -04:00
Tal Leming
c008e20854 Use lxml for reading. 2018-06-14 13:28:20 -04:00
Tal Leming
5ec6b5ef65 Use len(element). 2018-06-14 11:55:54 -04:00
Tal Leming
dab4800f12 Add indentation to the self-closing prevention. 2018-06-14 10:59:51 -04:00
Ben Kiel
e9df5bec13 fix writing lib with lxml 2018-06-14 09:22:24 -05:00
Tal Leming
5f39650425 Write the note the old way. 2018-06-14 08:43:30 -04:00
Tal Leming
4c52a516f4 Height before width. 2018-06-14 08:39:53 -04:00
Tal Leming
3cfb942441 Trick lxml into not writing self-closing tags for outline and contour elements. 2018-06-14 08:36:52 -04:00
Ben Kiel
3ae4f10092 Make attrs OrderedDicts
Get encoding right for py2 and py3
2018-06-14 00:31:29 -05:00
Tal Leming
213b90a4ba Found some attrib type errors. 2018-06-13 21:34:41 -04:00
Ben Kiel
c8608c2fd7 Need to pass an OrderedDict to get correct order. 2018-06-13 16:42:33 -05:00
Ben Kiel
f3b0703d03 Need to force text to a string and not bytes for Py3 2018-06-13 15:48:29 -05:00
Tal Leming
739ec8a169 Use lxml for writing. 2018-06-13 14:22:51 -04:00
Tal Leming
382271c706 Typo and fallback. 2018-06-13 12:46:40 -04:00
Tal Leming
5867e9bc8b Don't rebuild the list of existing file names each time a glyph is written. That's expensive. 2018-06-13 12:37:49 -04:00
Tal Leming
efd2575a6a Remove some validation escaping. 2018-06-12 20:40:32 -04:00
Ben Kiel
f81e9b8c6f Fix tests, needed named arg. 2018-06-12 09:15:36 -05:00
Ben Kiel
83303d56a7 Add in more valiator switches 2018-06-11 23:13:00 -05:00
Tal Leming
4c75212ee6 Relax the point data validation. 2018-06-11 21:44:50 -04:00
Ben Kiel
a7aa115fd8 Update glyphLib.
Update tests.
Fix errors.
Add documenation.
2018-06-11 15:03:54 -05:00
Ben Kiel
5f8b600221 Catch additonal calls to GlyphSet that need validation. Inital start of adding validation on/off to GlyphSet 2018-06-11 12:05:36 -05:00
Frederik Berlaen
4549c6a2d4 an anchor is a move point with a name
check if the point has a name

if no name is given its a single move point in a contour
2018-01-26 23:18:25 +01:00
Adrien Tétar
8946a5f753 More 2017-11-17 13:18:44 +01:00
Adrien Tétar
a2ffce8596 typo 2017-11-04 22:59:01 +01:00
Adrien Tétar
99c5c4fff5 Use dedicated Error 2017-11-04 22:56:12 +01:00
Adrien Tétar
f0d67574ab Some optimizations to glifLib 2017-11-04 22:18:20 +01:00
Ben Kiel
0bc4ab9497 Remove duplicate variable assignment 2017-02-27 10:18:02 -06:00
Denis Moyogo Jacquerye
e6a1a658f0 glifLib: try importing from fontTools.misc.xmlWriter first
fixes #41
2016-10-13 21:42:51 +01:00
Cosimo Lupo
ee38446982 glifLib.py: use +IGNORE_EXCEPTION_DETAIL to make doctest work on both Python2 and 3
http://python3porting.com/problems.html#handling-expected-exceptions
2016-09-11 17:00:13 +01:00
Denis Moyogo Jacquerye
bb21cb7c3a userNameToFileName expects userName to be unicode strings, let it raise
if not
2016-07-11 13:49:59 +01:00
Cosimo Lupo
f92dcf36c1 don't write layerinfo.plist if 'lib' element is empty 2016-06-28 13:52:23 +01:00
Cosimo Lupo
f6689faf5b glifLib: don't raise AttributeError if element.text attribute is None
When an element tree is built from code, or it is parsed from a string that was not pretty-printed (i.e. without indentation), the 'text' attribute of an Element instance can be None. So we must ensure it's not None before calling `strip()` method.
2016-06-25 19:04:24 +01:00
Cosimo Lupo
971a92bfe8 glifLib: use len() to check if ElementTree.Element is empty or contains children 2016-06-05 19:07:45 +01:00
Adrien Tétar
81e6c235af glifLib: fixup contour validation code 2016-05-31 09:59:02 -07:00
Denis Moyogo Jacquerye
b8f4145d76 glifLib: raise error when text is in <glyph> and in <outline> 2016-05-31 14:33:58 +01:00
Denis Moyogo Jacquerye
16e2c0f308 use unicode_literals 2016-05-31 11:23:05 +01:00
Adrien Tétar
8044d2fb88 Use ElementTree in glifLib and drop embedded XML parsing infrastructure 2016-05-20 11:11:15 -07:00
Cosimo Lupo
ace2a4a6bc [glifLib] use use repr() to stringify floats for py23 compat
Closes #19
2016-03-17 16:06:03 +00:00
Adrien Tétar
fab99c30e5 plistlib: reimplement as shim 2016-03-01 12:43:04 +01:00
Adrien Tétar
ded0d09cd1 plistlib API dispatch 2016-02-27 17:04:58 +01:00
Adrien Tétar
cb104104b0 glifLib: remove legacy workaround 2016-02-27 14:53:04 +01:00
Adrien Tétar
9e5dbff662 gliflib: use stdlib plistlib 2016-02-27 14:52:35 +01:00
Adrien Tétar
67414f21ff pointPen: add adapter pens
and annihilate remaining robofab dependency
2015-12-13 20:48:01 +01:00
Adrien Tétar
0d3cdb1ee4 glifLib: open files as binary to avoid line-endings normalization 2015-11-08 15:41:43 +01:00
Adrien Tétar
0b60503f4f test: fix a test on Windows 2015-11-08 11:49:06 +01:00
Denis Jacquerye
929ed4454c ufoLib: drop READ_MODE and WRITE_MODE 2015-11-06 15:06:52 +00:00
Denis Jacquerye
92bf29bd70 ufoLib.glifLib: add anchors to list of attributes in description of readGlyph() and writeGlyph() 2015-11-06 15:06:51 +00:00
Denis Jacquerye
c643b67f08 ufoLib.glifLib: glyph.drawPoints(None) should set attr anchors 2015-11-06 15:06:51 +00:00