8198 Commits

Author SHA1 Message Date
Just van Rossum
dc7d016538
[ttLib.tables._n_a_m_e] Fix #1997: Only attempt to recovered malformed data from bytes (#1998)
* don't attempt to recover malformed data from str, only from bytes. Fixes #1997
2020-06-16 16:35:40 +02:00
Cosimo Lupo
6b4430a8a3
Bump version: 4.12.0 → 4.12.1.dev0 2020-06-09 12:15:34 +01:00
Cosimo Lupo
b1b8026c15
Release 4.12.0 2020-06-09 12:15:33 +01:00
Cosimo Lupo
4018a05762
Update changelog [skip ci] 2020-06-09 12:13:48 +01:00
Just van Rossum
90c7c7fae1
Fix for #1985: ensure that the AxisNameID in the STAT table is > 255 (#1986)
Fix for #1985:
* ensure that the AxisNameID in the STAT table is not less than 256. This needed an additional argument to the addMultiLingualName() name table method.
* fvar axis name IDs must also not be less than 256, just like STAT axis names.
2020-06-08 19:39:28 +02:00
Khaled Hosny
df1b499dbc
Merge pull request #1987 from khaledhosny/voltlib-options
[voltLib] Accept DO_NOT_TOUCH_CMAP keyword
2020-06-08 17:39:03 +02:00
Simon Cozens
775dc6074e
fontTools.misc.* documentation, part 2 (#1981)
* Document misc.filenames
* Document misc.fixedTools
* Document misc.intTools
* Document misc.loggingTools
* Document misc.macCreatorType
* Document misc.macRes
* Document misc.plistlib
2020-06-08 15:53:48 +01:00
Khaled Hosny
d2167235e0 [voltLib] Accept DO_NOT_TOUCH_CMAP keyword
Corresponds to the “Do not overwrite camp table” option in VOLT.
2020-06-08 03:19:06 +02:00
Khaled Hosny
80dac9c0f4 [voltLib] Accept False for LookupDefinition.reversal 2020-06-08 02:52:58 +02:00
Cosimo Lupo
babca162e5
Merge pull request #1984 from liZe/master
Don’t calculate whole sets of unicode codepoints
2020-06-05 10:42:06 +01:00
Guillaume Ayoub
2a1f09dbb2 Don’t calculate whole sets of unicode codepoints
_getUnicodeRangeSets used to calculate sets containing lots of numbers, only to
get intersections between a set and ranges. Creating and manipulating a lot of
big sets requires a lot of memory.

The function has been replaced by _getUnicodeRanges, returning a list of range
starts boundaries and a list of range stops + corresponding bits.

Tests on intersectUnicodeRanges save about 130 MB (!) of RAM, with no
significant speed penalty.
2020-06-05 11:28:18 +02:00
Khaled Hosny
66a7751bd7
Merge pull request #1983 from khaledhosny/voltlib-str
[voltLib] Support writing back ast as VOLT data
2020-06-04 20:25:02 +02:00
Khaled Hosny
2956772c62 [voltLib] Plain dict is good now 2020-06-04 14:08:20 +02:00
Khaled Hosny
a1df9175ee [voltLib] Support writing back ast as VOLT data
Adds __str__() method to ast classes that writes back VOLT data. Tries
to replicate VOLT syntax idiosyncrasies as much as possible for better
round-trip conversion.
2020-06-04 14:08:20 +02:00
Khaled Hosny
3c4f5a75bf [voltLib] Unescape new line in lookup comments 2020-06-04 14:08:20 +02:00
Khaled Hosny
18886da333 [voltLib] Use NamedTuple for pos
Using a plain tuple here is ugly, it should have been another ast class,
using NamedTuple to not break backward compatibility. Needed for next
commit.
2020-06-04 14:08:20 +02:00
Khaled Hosny
5cc5d80871 [voltLib] Deduplicate some ast code
In preparation for next commits. Also remove unused classes.
2020-06-04 14:08:12 +02:00
Behdad Esfahbod
26ac716a8d [subset/merge] Fix namespace clash
Fixes https://github.com/fonttools/fonttools/issues/1955
2020-06-02 15:13:30 -07:00
Nikolaus Waxweiler
7a723b7344
Merge pull request #1977 from fonttools/afmlib-dont-write-out-doctest
[afmLib] Do not write doctest file to disk
2020-05-29 16:59:17 +01:00
Nikolaus Waxweiler
b5d2952c23 [afmLib] Do not write doctest file to disk
It writes into the current working dir on test runs.
2020-05-29 16:50:42 +01:00
Nikolaus Waxweiler
fe17d5937a
[feaLib] Builder.build(): proper error msg on unsupported tables (#1976)
Raise NotImplementedError instead of an assertion error.
2020-05-29 16:44:19 +01:00
Nikolaus Waxweiler
d0ad754bbf Bump version: 4.11.0 → 4.11.1.dev0 2020-05-28 18:24:55 +01:00
Nikolaus Waxweiler
647d428b7b Release 4.11.0 2020-05-28 18:24:54 +01:00
Nikolaus Waxweiler
9287a8354f
Update NEWS.rst (#1974) 2020-05-28 18:21:06 +01:00
Nikolaus Waxweiler
0e7a4460f3
[feaLib] Introduce includeDir on Parser and IncludingLexer (#1973)
This makes the directory to search for included files explicit.

Also use Python 3's FileNotFoundError to catch non-existant files instead of a workaround for Python 2.
2020-05-28 17:43:19 +01:00
Nikolaus Waxweiler
097b255e68
Merge pull request #1970 from tomarcher101/master
Remove duplicate glyphs from kerning groups.
2020-05-26 11:23:15 +01:00
Tom Archer
0b93480808 Change startwith or statement to use tupple of strings rather than or. 2020-05-22 15:56:48 +01:00
Tom
5c8c6b3c92
Merge pull request #2 from tomarcher101/add-error-when-duplicate-in-kerning-group
Add code that removes duplicates when parsing groups.plist
2020-05-22 11:19:38 +01:00
Tom Archer
0e04e039cf Add more glyphs to test group to prove order is preserved 2020-05-22 10:41:10 +01:00
Tom Archer
6f72429150 Small changes 2020-05-22 09:55:16 +01:00
Tom Archer
b88f717885 Get test working that shows duplicates are removed 2020-05-22 09:53:40 +01:00
Cosimo Lupo
9d8a7e27fe
[COLR] should set self.version after decompiling COLRv1
we set self.version for COLRv0 already; makes easier to check COLR.version
2020-05-21 16:57:35 +01:00
Tom Archer
2b654a1d2a Add code that removes duplicates when parsing groups.plist 2020-05-20 11:59:16 +01:00
Cosimo Lupo
dfdab70e10
Bump version: 4.10.2 → 4.10.3.dev0 2020-05-20 09:26:00 +01:00
Cosimo Lupo
bf70e5679b
Release 4.10.2 2020-05-20 09:25:59 +01:00
Cosimo Lupo
5cf648364f
Update changelog [skip ci] 2020-05-20 09:25:55 +01:00
Cosimo Lupo
02e51072a4
sfnt: must import SimpleNamespace
Thanks Zachary for reporting this
7ca42f6623 (commitcomment-39299386)

Amazingly we have no tests for reading TTCs
2020-05-20 09:16:06 +01:00
Cosimo Lupo
d2c9f12260
Bump version: 4.10.1 → 4.10.2.dev0 2020-05-19 16:44:05 +01:00
Cosimo Lupo
0c397d9b59
Release 4.10.1 2020-05-19 16:44:04 +01:00
Cosimo Lupo
200838cbb6
Update changelog [skip ci] 2020-05-19 16:43:52 +01:00
Cosimo Lupo
7ca42f6623
Merge pull request #1967 from anthrotype/pickle
sfnt: add __getstate__ and __setstate__ to SFNTReader to make it pickelable
2020-05-19 14:03:52 +01:00
Cosimo Lupo
cdd10373f0
sfnt_test: add test for deepcopy and pickle 2020-05-19 13:19:01 +01:00
Cosimo Lupo
cbe84da8c3
varLib_test: comment why font.close() is needed 2020-05-19 10:57:09 +01:00
Cosimo Lupo
e838cd8dca
Merge pull request #1961 from fonttools/feaLib-ast-compat
[feaLib.ast] Restore compatibility with 4.9.0
2020-05-19 10:01:47 +01:00
Simon Cozens
76902b7129
[docs] fontTools.misc.* part 1 (#1956)
* Document misc.arrayTools
* Document misc.bezierTools
* Document cliTools
* Document eexec
2020-05-19 09:51:17 +01:00
David Corbett
d5ff621276 Add my name to README.rst 2020-05-18 13:22:20 -04:00
David Corbett
42a17500a3 [feaLib.ast] Restore compatibility with 4.9.0 2020-05-18 13:22:20 -04:00
Cosimo Lupo
a6612aa6b5
varLib_test: close TTFont otherwise shutil.rmtree fails on Win
https://ci.appveyor.com/project/fonttools/fonttools/builds/32948704/job/hc91qjisv4nv603m#L400
2020-05-18 13:16:05 +01:00
Cosimo Lupo
72f9e7794a
SFNTReader: define __getstate__/__setstate__ to reopen external file
Instead of copying to BytesIO, we can return the file name in getstate and reopen the file in setstate. This keeps the TTFont truly lazy as it avoids the extra copy
2020-05-18 12:41:25 +01:00
Cosimo Lupo
942fbfe07a
sfnt: custom __deepcopy__ not needed with __getstate__
also, we only need to copy file to stream when self.file is _not_ already an io.BytesIO.
2020-05-18 11:57:03 +01:00