4297 Commits

Author SHA1 Message Date
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
Cosimo Lupo
d570fc038a
use otRound when rounding visual coordinates or deltas
So we now round towards +Infinity in:

- floatToFixed (which fully examplify that quotes from OT spec)
- psCharStrings: when packing floats as fixed 16.16
- t2CharStringPen: when rounding coordinates and advance widths
- subset: when rounding advance widths to compute average
- TupleVariation: rounding gvar deltas
- _g_l_y_f: when rounding coordinates: both in GlyphComponent.{x,y}
  and for GlyphCoordinates.toInt()
- _h_m_t_x: for rounding horiz/vert metrics
- varLib: rounding horiz metrics and deltas
2018-06-14 17:40:11 +01:00
Cosimo Lupo
585b87023f
fixedTools: add otRound to round floats to nearest int towards +Infinity
https://github.com/fonttools/fonttools/issues/1248
2018-06-14 17:15:47 +01: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
Cosimo Lupo
e75d6a8ca1
[varLib.models] add assertion debug message
Fixes #1268
2018-06-14 15:34:27 +01:00
Cosimo Lupo
03c57a0f5f
Merge pull request #1240 from fonttools/add-feature-variations
[varLib] Add Feature Variations
2018-06-14 15:25:30 +01:00
Cosimo Lupo
6e9a24b45b
featureVars: mark module as experimental/subject-to-change 2018-06-14 15:25:09 +01: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
c54c54b2ce Remove slice from splitlines that isn't needed for lxml 2018-06-13 16:22:40 -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
Tal Leming
34681b8a38 Remove some validation escaping when it comes to file existence tests. Those should always fail. 2018-06-12 17:40:25 -04:00
Cosimo Lupo
c4950ecc8b
py23: add 'zip' (alias to izip in py2) to __all__ 2018-06-12 17:29:10 +01:00
Ben Kiel
f81e9b8c6f Fix tests, needed named arg. 2018-06-12 09:15:36 -05:00
Behdad Esfahbod
2e28fa4a31 [subset] Remove activeLookup tracking during GSUB closure
The memoize handles this as well...

This alone contributes a 10% speedup to the closure op.
2018-06-12 01:01:41 -04:00
Ben Kiel
83303d56a7 Add in more valiator switches 2018-06-11 23:13:00 -05:00
Behdad Esfahbod
a856e83112 [subset] Another improvement to GSUB closure algorithm
Save number of subset-glyphs each lookup was closed at, and don't redo work
if number didn't change.  10% speedup with NotoNastaliqUrdu-Regular.
2018-06-11 23:53:22 -04:00
Behdad Esfahbod
40ca30a82b [subset] Improve GSUB closure memoize algorithm
Instead of memoizing the tuple of <lookup-idx,current-glyphs>, use a mapping of
lookup-idx->current-glyphs instead. Saves some work. Speeds up 5%ish on
NotoNastaliqUrdu-Regular.
2018-06-11 23:46:42 -04: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
Cosimo Lupo
1eddd0dcd2
Bump version: 3.27.1 → 3.27.2.dev0 2018-06-11 19:37:29 +01:00
Cosimo Lupo
05c3a6f44a
Release 3.27.1 2018-06-11 19:37:28 +01:00
Cosimo Lupo
79449bc2d4
ttGlyphPen: always skip non-existing components
It doesn't make sense to add components that reference non-existing base glyphs
(ie. glyphs not in the input glyphSet, hence missing from the generated glyf table).
Even if we let them in here, it will fail immediately as soon as we attempt to
compile this glyf table containing 'dangling' component references.
Better to warn and skip.
2018-06-11 19:25:15 +01:00
Cosimo Lupo
ae69133924
ttGlyphPen: gracefully handle missing components while decomposing 2018-06-11 18:40:11 +01: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
Ben Kiel
42b94f53fa UFOWriter validation turned on by default. 2018-06-11 11:59:16 -05:00
Ben Kiel
b8d4b5562b UFOReader validation turned off by default. Starting on UFOWriter 2018-06-11 11:07:29 -05:00
Cosimo Lupo
bf87025826
designspaceLib: fix formatting of DesigSpaceError exception
https://travis-ci.org/googlei18n/fontmake/jobs/390821469#L498
2018-06-11 16:35:02 +01:00
Cosimo Lupo
bf5c3a42c6
Bump version: 3.27.0 → 3.27.1.dev0 2018-06-11 14:05:04 +01:00
Cosimo Lupo
4cfb4f8389
Release 3.27.0 2018-06-11 14:05:03 +01:00
Cosimo Lupo
e35151a051
Merge remote-tracking branch 'origin/master' into add-feature-variations 2018-06-11 12:49:31 +01:00
ReadRoberts
c239d1a03d
[cffLib] Fix bug in cffLib.py.CFFFontSet.convertCFFToCFF2() that broke converting name-keyed fonts.
Also clean up setting FontDict to support CFF2.
2018-06-11 12:09:00 +01:00
ReadRoberts
528bc8ff17
[cffLib] Use std operator delattr() instead of exec ("del ...") 2018-06-11 12:09:00 +01:00
ReadRoberts
942a7610fd
[cffLib] Fix bugs in converting CFF to CFF2 when the font has an FDArray.
The FontDict as well as the PrivateDict needs to have fields removed when these are deprecated in CFF2.
2018-06-11 12:09:00 +01:00
ReadRoberts
21bbb15cd0
[cffLib] Fix bugs in compiling a CFF2 font with an FDArray.
A FontDict in CFF2 is permitted only a subset of the fields supported by CFF 1.0.
2018-06-11 12:09:00 +01:00
Cosimo Lupo
846941c8ef
[glyf] ensure GlyphCoordinates never overflow
in _checkFloat (used whenever we're about to update the inner array) we check whether the value exceeds a short integer, and if so we convert the array to floats.
Also, we make sure we call __setitem__ (which in turn calls _checkFloat) instead of updating the inner array directly in the rest of the math methods.
2018-06-07 12:53:42 +01:00
Cosimo Lupo
e48e8ea7c9
Revert "models: convert delta array to float if overflows signed short integers"
This reverts commit 0055f9414ca5094b0c9beb0176ac4998cdbbba70.
2018-06-07 12:53:42 +01:00
Cosimo Lupo
565e835c92
designspaceLib: cleanup formatting, remove unused vars, etc. 2018-06-07 12:44:49 +01:00
Cosimo Lupo
d7714ead35
designspaceLib: use LogMixin; fix undefined name
'ruleObject' name in _readConditionElements was undefined
2018-06-07 11:43:14 +01:00