6224 Commits

Author SHA1 Message Date
justvanrossum
25f29841b7 rename setupDSIG to setupDummyDSIG and added a doc string to clarify the legacy status of this 2018-11-01 13:19:27 +01:00
justvanrossum
8d2615e9c8 document the required setup method call order 2018-11-01 12:37:37 +01:00
justvanrossum
723afd626d mark module as experimental 2018-11-01 12:32:17 +01:00
justvanrossum
3e051f582e added a note about the order of setup method calls 2018-11-01 12:21:38 +01:00
justvanrossum
d10dc87527 test DSIG 2018-11-01 12:13:47 +01:00
justvanrossum
7a084bd016 added assert message, fixed DSIG issue 2018-11-01 12:13:35 +01:00
justvanrossum
a81bcbf8a2 remove redundant method call 2018-11-01 12:08:20 +01:00
justvanrossum
277c7da951 added __all__ module attr 2018-11-01 10:28:05 +01:00
justvanrossum
a259d31109 added module doc string with two examples 2018-11-01 10:19:51 +01:00
justvanrossum
cabce338c7 calculate glyph bounds implicitly (unless asked not to do that) 2018-11-01 10:17:07 +01:00
justvanrossum
cfd00ef3dd don't need to specify keepGlyphNames, esp. if it matches defsult behavior 2018-11-01 09:57:35 +01:00
justvanrossum
19eac2e00a test localized name table entries 2018-11-01 09:55:27 +01:00
justvanrossum
a442ce627d work towards making name strings localizable 2018-11-01 09:52:06 +01:00
justvanrossum
3ebde1bda5 allow localized name table entries 2018-11-01 09:44:56 +01:00
justvanrossum
53d743f427 adjust expected test output: we no longer output mac names 2018-11-01 09:41:58 +01:00
justvanrossum
53761c5e03 use more existing name table logic 2018-11-01 09:40:54 +01:00
justvanrossum
0a6cbc0be0 use existing helper func 2018-11-01 09:36:37 +01:00
justvanrossum
0ae6b7f777 workaround path object issue on py 2.7 2018-10-31 21:09:27 +01:00
justvanrossum
f1d5ed1c51 add filename and tables arguments to addOpenTypeFeatures method 2018-10-31 21:01:00 +01:00
justvanrossum
96cdf116ee initial commit, with rudimentary tests 2018-10-31 20:54:34 +01:00
Cosimo Lupo
50dae4cc90 subset: don't error if STAT has no AxisValue tables
the minimalist STAT table that varLib produces only contains one DesignAxisRecord
for each fvar axis, and has AxisValueCount=0, thus the AxisValueArray offset is None.
2018-10-30 10:32:36 +00:00
Cosimo Lupo
f3e928c5c3
Merge pull request #1352 from fonttools/pointpen-fixes
Some Pointpen fixes, and a point pen test file
2018-10-29 20:21:45 +00:00
Cosimo Lupo
139030e1fb
travis/appveyor: only build from master or wip/* branches 2018-10-29 19:50:11 +00:00
Cosimo Lupo
7654895e46
appveyor: only run tests on 2.7 and 3.7 (too slow\!) 2018-10-29 19:49:30 +00:00
justvanrossum
7bcb67f0cc avoid %r to eliminate unicode repr problems in the tests 2018-10-29 20:47:17 +01:00
justvanrossum
6b4a4e3087 don't use unicode literals in pointPen 2018-10-29 19:58:33 +01:00
justvanrossum
c9d4b65fd4 add some component tests 2018-10-29 19:54:52 +01:00
Cosimo Lupo
622131a415
Update changelog [skip ci] 2018-10-29 18:45:20 +00:00
justvanrossum
b5b8a776fe one more identifier test 2018-10-29 19:45:06 +01:00
justvanrossum
25f3dbfb85 test identifier kwarg behavior 2018-10-29 19:43:27 +01:00
justvanrossum
f8ff962490 added some point pen tests 2018-10-29 19:37:50 +01:00
justvanrossum
7d5530ec91 more pointpen method signature consistency fixes 2018-10-29 16:42:07 +01:00
justvanrossum
186e4615ab fix some PointPen method signatures 2018-10-29 16:23:54 +01:00
Behdad Esfahbod
62003f492f [varLib] If multiple axes have the same range ratio, cut across both
The symmetry is desired.

Before:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
 {'A': (0, 0.5, 1.0)},
 {'B': (0, 0.5, 1.0)},
 {'A': (0, 0.5, 1.0), 'B': (0, 0.5, 1.0)},
 {'A': (0.5, 1.0, 1.0), 'B': (0, 1.0, 1.0)}]

Note the last line assymetry.

After:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
 {'A': (0, 0.5, 1.0)},
 {'B': (0, 0.5, 1.0)},
 {'A': (0, 0.5, 1.0), 'B': (0, 0.5, 1.0)},
 {'A': (0.5, 1.0, 1.0), 'B': (0.5, 1.0, 1.0)}]

7ee81c8821 (commitcomment-31054804)
2018-10-28 09:30:09 -07:00
Cosimo Lupo
1ac4d2a427
Revert "Merge pull request #1351 from anthrotype/transform-properties"
This reverts commit 70b0fbf9cfb3e2e1e2fc25fd75ddb71814cd62fb, reversing
changes made to 6a5a4c742219d0590f77d1a35163760e5c98a5a9.
2018-10-26 18:10:33 +01:00
Cosimo Lupo
70b0fbf9cf
Merge pull request #1351 from anthrotype/transform-properties
transform: add getters for xScale, xyScale, yxScale, yScale, xOffset …
2018-10-26 17:29:34 +01:00
Cosimo Lupo
a9f0c89585
transform: add getters for xScale, xyScale, yxScale, yScale, xOffset and yOffset
UFO images have a transformation matrix with those names.
This makes the Transform look more like a namedtuple, in that it can be accessed both by
index and by property name.
2018-10-26 17:10:40 +01:00
Cosimo Lupo
6a5a4c7422
varLib.models: fix TypeError comparing float with None 2018-10-26 11:07:12 +01:00
Cosimo Lupo
638ed05d85
setup.py: add matplotlib to 'plot' extra, used by varLib.plot 2018-10-26 11:05:58 +01:00
Behdad Esfahbod
7ee81c8821 [varLib] Take total bounding box into account when resolving model
Umm. Not sure how useful this is, but helps with cases where there
were not masters on extremes and people expected this to work.
Happens in Higher-Order Interpolation since the axis extremes
are not interesting.

Fixes https://github.com/googlei18n/fontmake/issues/473

Test case (in case someone wants to add it to test suite!):

Before:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
 {'A': (0, 0.5, 0.5)},
 {'B': (0, 0.5, 0.5)},
 {'A': (0, 0.5, 0.5), 'B': (0, 0.5, 0.5)},
 {'A': (0.5, 1.0, 1.0), 'B': (0, 1.0, 1.0)}]

After:
$ ./fonttools varLib.models 0,0 .5,0 0,.5 .5,.5 1,1
Sorted locations:
[{}, {'A': 0.5}, {'B': 0.5}, {'A': 0.5, 'B': 0.5}, {'A': 1.0, 'B': 1.0}]
Supports:
[{},
 {'A': (0, 0.5, 1.0)},
 {'B': (0, 0.5, 1.0)},
 {'A': (0, 0.5, 1.0), 'B': (0, 0.5, 1.0)},
 {'A': (0.5, 1.0, 1.0), 'B': (0, 1.0, 1.0)}]
2018-10-25 19:46:44 -07:00
Cosimo Lupo
10e10a2c82
Merge pull request #1344 from anthrotype/ufo-reader-and-writer
make UFOWriter a subclass of UFOReader, use mixins for shared methods
2018-10-25 17:12:27 +01:00
Cosimo Lupo
78f572294f
Revert "UFOReader: have readInfo return a dict"
This reverts commit 440c71345a88f32ccad06d662fb30272f9253f07.
2018-10-25 16:55:59 +01:00
Cosimo Lupo
440c71345a
UFOReader: have readInfo return a dict
but keep current behavior whereby caller can pass an Info object.
The readInfo method was the only one that takes an output argument,
all the others just return some raw data.
I like to fully construct my classes in their __init__ method.
E.g. Info(**reader.readInfo())
2018-10-25 15:36:08 +01:00
Cosimo Lupo
9adb0226de
Merge pull request #1347 from MrBrezina/master
Fix normalization error when condition’s minimum/maximum are missing in designspace, update test too
2018-10-24 18:21:25 +01:00
David Březina
7e33c427db Better test for none-ness 2018-10-24 19:08:11 +02:00
David Březina
28245afe1e Fix normalization error when condition’s minimum/maximum are missing in designspace, update test too
Fixes #1346
2018-10-24 18:46:45 +02:00
Cosimo Lupo
59d9abf5f3
UFOReader: getFileModificationTime should be without leading underscore
that's what it's currently in UFOReader. The UFOWriter and GlyphSet will gain that one for free.
2018-10-24 17:43:47 +01:00
Cosimo Lupo
46ffe7ef42
reuse __enter__, __exit__ and close methods from UFOReader superclass 2018-10-24 14:14:37 +01:00
Cosimo Lupo
8cc613fda3
ufoLib: remove stray print()
I forgot this in a previous commit
2018-10-24 12:37:37 +01:00
Cosimo Lupo
7f3bf46096
ufoLib: use a single (abstract) base class for sharing methods between UFOReader, UFOWriter and GlyphSet 2018-10-23 20:41:35 +01:00