5316 Commits

Author SHA1 Message Date
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
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
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 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
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
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
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
42a17500a3 [feaLib.ast] Restore compatibility with 4.9.0 2020-05-18 13:22:20 -04: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
Cosimo Lupo
d767061e8d
sfnt: add __getstate__ to SFNTReader to make it pickelable
Fixes https://github.com/fonttools/fonttools/issues/1962
2020-05-18 11:33:50 +01:00
Just van Rossum
db26cf804e
[ttLib.name] Fix findMultilingualName() (#1963)
* when reading from binary, name.string may be an encoded bytes sequence: we should call toUnicode() before we compare to the requested string

* fix expected output
2020-05-16 11:29:23 +02:00
Cosimo Lupo
e86988acc8
Bump version: 4.10.0 → 4.10.1.dev0 2020-05-15 19:14:50 +01:00
Cosimo Lupo
9d281adfa8
Release 4.10.0 2020-05-15 19:14:49 +01:00
Nikolaus Waxweiler
45a8fcefc2
[varLib] Allow feature variations to be active across the entire space (#1957)
* Allow feature variations to be active across the entire space

* Add test with empty condition set

* Skip initial box instead of removing it

* Correct comment
2020-05-15 09:27:15 -07:00
Simon Cozens
ecc764ecc0
[docs] Document cu2qu library (#1937)
[docs] Document cu2qu library

Reorganise the documentation so that everything is in one place and users are more clearly pointed to the modules which are likely to be useful for their purposes. (I still think it’s worth having at least a brief reference to ``cu2qu.cli`` in there, as a way of reminding users that there is a command-line implementation.) Docstrings are provided for non-API methods where I could understand them - trusting these will be useful for future maintainers.
2020-05-15 10:53:41 +01:00
Simon Cozens
8d32a24710
[docs] Source documentation for cffLib (#1935)
* [docs] Source documentation for cffLib

* Address feedback
2020-05-14 17:04:34 +01:00
Cosimo Lupo
f4752fd412
Merge remote-tracking branch 'origin/master' into ufo-minor-format-version 2020-05-14 11:01:39 +01:00
Simon Cozens
f3f2793444
[docs] Document fontTools.merge (#1949)
[docs] Document fontTools.merge
2020-05-14 10:06:13 +01:00
Cosimo Lupo
abf70934bc
Merge pull request #1952 from anthrotype/fix-merge-os2-mixed-versions
[merge] Fix merging different versions of OS/2 table
2020-05-13 14:33:01 +01:00
Cosimo Lupo
b6601f61ec
merge: handle OS/2 attributes only present in subsequent versions
Also, implement merging version 5 (by taking the min/max of the optical
point sizes), and rename `usMaxContex` to the correct name `usMaxContext`.
The typo was fixed in the OS/2 table some time ago, but we forgot to
also update the merge module.

Fixes #1865
2020-05-13 13:12:31 +01:00
Cosimo Lupo
842289c00e
Merge pull request #1944 from anthrotype/fix-subset-context-format-3
subset: fix AttributeError while subsetting Context{Subst,Pos} Format 3
2020-05-13 10:19:10 +01:00
Simon Cozens
ca8703f653
[docs] Document feaLib (#1941)
[docs] Document feaLib

* Rearrange docs by user intention, highlighting the things you can do with each component.
* Remove reference to lexer and error modules from documentation tree, since they’re not user-facing.
* I’ve added docstrings to the parser even though we only provide access to the user-facing part of the API in the main documentation, just to clarify what some of the more obscure methods do and provide links to the spec.
* AST *is* user-facing if you’re building your own feature files in code, so all classes are documented with the user in mind.
2020-05-12 23:11:17 +01:00
Simon Cozens
089f24da6b
Ensure all fonttools CLI tools have help documentation (#1948)
Note UI change : `fonttools varLib.models` now takes prefixed options `-d` or `-l` instead of guessing the intended feature from the number of arguments.

We have a number of command line tools which are somewhat opaque. (varLib.models in particular was very confusing.) This ensures that they all use argparse to have a consistent interface, and all have --help documentation which at least details their parameters, and hopefully therefore gives more of a clue about what they do. Those which use logging have had a command-line logging parameter added.
2020-05-12 15:11:30 +01:00
Simon Cozens
a114ec2c20
[docs] Reorganise colorLib docs (#1936)
Does not add any new documentation (there is already some documentation for user-facing functions). It just makes colorLib.builder the top-level documentation entry, because that’s the part the user needs to care about.
2020-05-12 11:19:17 +01:00
Simon Cozens
94cb1759f7
[docs] Document afmLib (#1933) 2020-05-12 11:18:36 +01:00
Simon Cozens
2cef07af80
[doc] Add help options to fonttools CLI (#1920)
This adds a `help` verb (and `--help` option) to the `fonttools` command line tool. Submodules will be listed in the help text if they have an importable `main` function with a docstring, and `main`'s docstring will be used as the one-line description for the help text.
2020-05-12 06:31:13 +01:00
Simon Cozens
b299bfb389
[feaLib] Support multiple lookups per glyph position (#1905)
This allows for more than one "lookup ..." chaining statements at each glyph position in a chaining contextual substitution or positioning rule: e.g.

    sub a b c' lookup lookup1 lookup lookup2 d;

The corresponding change in the Adobe OpenType Feature File Specification (and implementation in makeotf) happened in adobe-type-tools/afdko#1132.
2020-05-12 06:28:25 +01:00
Cosimo Lupo
0a26a8d287
glifLib: document default when formatVersion=None 2020-05-11 18:50:45 +01:00
Just van Rossum
a53bb37d8e
Merge pull request #1938 from justvanrossum/meta-comment
[ttLib.table._m_e_t_a] if data happens to be ascii, emit comment in TTX
2020-05-11 18:47:56 +02:00
Cosimo Lupo
890c5061b5
subset: fix issue subsetting Context{Subst,Pos}Format3
Fixes https://github.com/fonttools/fonttools/issues/1879

In ChainContext{Subst,Pos}Format3, the array of input coverages is called
InputCoverage, whereas in non-Chain Context{Subst,Pos}Format3 subtables it
is called simply Coverage.
2020-05-11 13:32:18 +01:00
Cosimo Lupo
b81d13952a
Merge pull request #1932 from simoncozens/pscharstring-repeated-init
[misc.psCharStrings] Use inheritance to avoid repeated code in initializer
2020-05-11 11:15:54 +01:00
Cosimo Lupo
74867c6ddb
Merge pull request #1931 from simoncozens/fix-typo
Fix typo in loggingTools variable name
2020-05-11 11:15:16 +01:00