[transform] Added transformVector and transformVectors methods to the Transform class. Similar to transformPoint but ignore the translation part (#2386).
4.26.0
[xmlWriter] Default to "\n" for newlinestr instead of platform-specific os.linesep (#2384).
[otData] Define COLRv1 ClipList and ClipBox (#2379).
[removeOverlaps/instancer] Added --ignore-overlap-errors option to work around Skia PathOps.Simplify bug (#2382, #2363, google/fonts#3365).
NOTE: This will be the last version to support Python 3.6. FontTools will require Python 3.7 or above from the next release (#2350).
4.25.2
[COLRv1] Various changes to sync with the latest CORLv1 draft spec. In particular:
define COLR.VarIndexMap, remove/inline ColorIndex struct, add VarIndexBase to PaintVar* tables (#2372);
add reduced-precicion specialized transform Paints;
define Angle as fraction of half circle encoded as F2Dot14;
use FWORD (int16) for all Paint center coordinates;
change PaintTransform to have an offset to Affine2x3 (#2359).
[ttLib] when importing XML, only set sfntVersion if the font has no reader and is empty (#2376)
4.25.1
[ttGlyphPen] Fixed bug in TTGlyphPointPen, whereby open contours (i.e. starting with segmentType "move") would throw NotImplementedError. They are now treated as if they are closed, like with the TTGlyphPen (#2365, #2366).
4.25.0
[tfmLib] Added new library for parsing TeX Font Metric (TFM) files (#2354).
[TupleVariation] Make shared tuples order deterministic on python < 3.7 where Counter (subclass of dict) doesn't remember insertion order (#2351, #2353).
[otData] Renamed COLRv1 structs to remove 'v1' suffix and match the updated draft spec: 'LayerV1List' -> 'LayerList', 'BaseGlyphV1List' -> 'BaseGlyphList', 'BaseGlyphV1Record' -> 'BaseGlyphPaintRecord' (#2346).
Added 8 new PaintScale* tables: with/without centers, uniform vs non-uniform.
Added *AroundCenter variants to PaintRotate and PaintSkew: the default versions no longer have centerX/Y, but default to origin.
PaintRotate, PaintSkew and PaintComposite formats were re-numbered.
NOTE: these are breaking changes; clients using the experimental COLRv1 API will have to be updated (#2348).
[pointPens] Allow GuessSmoothPointPen to accept a tolerance. Fixed call to math.atan2 with x/y parameters inverted. Sync the code with fontPens (#2344).
[post] Fixed parsing post table format 2.0 when it contains extra garbage at the end of the stringData array (#2314).
[subset] drop empty features unless 'size' with FeatureParams table (#2324).
[otlLib] Added otlLib.optimize module; added GPOS compaction algorithm. The compaction can be run on existing fonts with fonttools otlLib.optimize or using the snippet compact_gpos.py. There's experimental support for compacting fonts at compilation time using an environment variable, but that might be removed later (#2326).
4.24.4
[subset/instancer] Fixed AttributeError when instantiating a VF that contains GPOS ValueRecords with Device tables but without the respective non-Device values (e.g. XAdvDevice without XAdvance). When not explicitly set, the latter are assumed to be 0 (#2323).
4.24.3
[otTables] Fixed AttributeError in methods that split LigatureSubst, MultipleSubst and AlternateSubst subtables when an offset overflow occurs. The Format attribute was removed in v4.22.0 (#2319).
4.24.2
[ttGlyphPen] Fixed typing annotation of TTGlyphPen glyphSet parameter (#2315).
Fixed two instances of DeprecationWarning: invalid escape sequence (#2311).
4.24.1
[subset] Fixed AttributeError when SinglePos subtable has None Value (ValueFormat 0) (#2312, #2313).
[transform] Added transformVector and transformVectors methods to the
Transform class. Similar to transformPoint but ignore the translation
part (#2386).
4.26.0 (released 2021-08-03)
[xmlWriter] Default to "\n" for newlinestr instead of platform-specific
os.linesep (#2384).
[otData] Define COLRv1 ClipList and ClipBox (#2379).
[removeOverlaps/instancer] Added --ignore-overlap-errors option to work around
Skia PathOps.Simplify bug (#2382, #2363, google/fonts#3365).
NOTE: This will be the last version to support Python 3.6. FontTools will require
Python 3.7 or above from the next release (#2350)
4.25.2 (released 2021-07-26)
[COLRv1] Various changes to sync with the latest CORLv1 draft spec. In particular:
define COLR.VarIndexMap, remove/inline ColorIndex struct, add VarIndexBase to PaintVar* tables (#2372);
add reduced-precicion specialized transform Paints;
define Angle as fraction of half circle encoded as F2Dot14;
use FWORD (int16) for all Paint center coordinates;
change PaintTransform to have an offset to Affine2x3;
[ttLib] when importing XML, only set sfntVersion if the font has no reader and is empty (#2376)
4.25.1 (released 2021-07-16)
[ttGlyphPen] Fixed bug in TTGlyphPointPen, whereby open contours (i.e. starting
with segmentType "move") would throw NotImplementedError. They are now treated
as if they are closed, like with the TTGlyphPen (#2364, #2366).
4.25.0 (released 2021-07-05)
[tfmLib] Added new library for parsing TeX Font Metric (TFM) files (#2354).
[TupleVariation] Make shared tuples order deterministic on python < 3.7 where
Counter (subclass of dict) doesn't remember insertion order (#2351, #2353).
[otData] Renamed COLRv1 structs to remove 'v1' suffix and match the updated draft
spec: 'LayerV1List' -> 'LayerList', 'BaseGlyphV1List' -> 'BaseGlyphList',
'BaseGlyphV1Record' -> 'BaseGlyphPaintRecord' (#2346).
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps fonttools[woff] from 4.23.0 to 4.26.2.
Release notes
Sourced from fonttools[woff]'s releases.
... (truncated)
Changelog
Sourced from fonttools[woff]'s changelog.
... (truncated)
Commits
02cd740
Release 4.26.28f34fcc
Update changelog [skip ci]6d3bd94
Merge pull request #2390 from fonttools/fix-colr-composite-moded025bb8
fix NameError while decompiling ClipList9f7a4ea
otTables: fix CompositeMode enum missing PLUS mode627d8e6
fontBuilder: pass through varIndexMap and clipBoxes parameters in setupCOLR032befd
Bump version: 4.26.1 → 4.26.2.dev06a1eaa1
Release 4.26.1f18ccce
Update changelog [skip ci]e49c1df
Merge pull request #2386 from fonttools/transform-vectorDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)