Changelog
### 4.33.0
```
----------------------------
- [OS/2 / merge] Automatically recalculate ``OS/2.xAvgCharWidth`` after merging
fonts with ``fontTools.merge`` (2591, 2538).
- [misc/config] Added ``fontTools.misc.configTools`` module, a generic configuration
system (2416, 2439).
Added ``fontTools.config`` module, a fontTools-specific configuration
system using ``configTools`` above.
Attached a ``Config`` object to ``TTFont``.
- [otlLib] Replaced environment variable for GPOS compression level with an
equivalent option using the new config system.
- [designspaceLib] Incremented format version to 5.0 (2436).
Added discrete axes, variable fonts, STAT information, either design- or
user-space location on instances.
Added ``fontTools.designspaceLib.split`` module to split a designspace
into sub-spaces that interpolate and that represent the variable fonts
listed in the document.
Made instance names optional and allow computing them from STAT data instead.
Added ``fontTools.designspaceLib.statNames`` module.
Allow instances to have the same location as a previously defined STAT label.
Deprecated some attributes:
``SourceDescriptor``: ``copyLib``, ``copyInfo``, ``copyGroups``, ``copyFeatures``.
``InstanceDescriptor``: ``kerning``, ``info``; ``glyphs``: use rules or sparse
sources.
For both, ``location``: use the more explicit designLocation.
Note: all are soft deprecations and existing code should keep working.
Updated documentation for Python methods and the XML format.
- [varLib] Added ``build_many`` to build several variable fonts from a single
designspace document (2436).
Added ``fontTools.varLib.stat`` module to build STAT tables from a designspace
document.
- [otBase] Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables when
``uharfbuzz`` python bindings are available (2552). Disable it by setting the
"fontTools.ttLib.tables.otBase:USE_HARFBUZZ_REPACKER" config option to ``False``.
If the option is set explicitly to ``True`` but ``uharfbuzz`` can't be imported
or fails to serialize for any reasons, an error will be raised (ImportError or
uharfbuzz errors).
- [CFF/T2] Ensure that ``pen.closePath()`` gets called for CFF2 charstrings (2577).
Handle implicit CFF2 closePath within ``T2OutlineExtractor`` (2580).
```
### 4.32.0
```
----------------------------
- [otlLib] Disable GPOS7 optimization to work around bug in Apple CoreText.
Always force Chaining GPOS8 for now (2540).
- [glifLib] Added ``outputImpliedClosingLine=False`` parameter to ``Glyph.draw()``,
to control behaviour of ``PointToSegmentPen`` (6b4e2e7).
- [varLib.interpolatable] Check for wrong contour starting point (2571).
- [cffLib] Remove leftover ``GlobalState`` class and fix calls to ``TopDictIndex()``
(2569, 2570).
- [instancer] Clear ``AxisValueArray`` if it is empty after instantiating (2563).
```
### 4.31.2
```
----------------------------
- [varLib] fix instantiation of GPOS SinglePos values (2555).
```
### 4.31.1
```
----------------------------
- [subset] fix subsetting OT-SVG when glyph id attribute is on the root ``<svg>``
element (2553).
```
### 4.31.0
```
----------------------------
- [ttCollection] Fixed 'ResourceWarning: unclosed file' warning (2549).
- [varLib.merger] Handle merging SinglePos with valueformat=0 (2550).
- [ttFont] Update glyf's glyphOrder when calling TTFont.setGlyphOrder() (2544).
- [ttFont] Added ``ensureDecompiled`` method to load all tables irrespective
of the ``lazy`` attribute (2551).
- [otBase] Added ``iterSubTable`` method to iterate over BaseTable's children of
type BaseTable; useful for traversing a tree of otTables (2551).
```
Links
- PyPI: https://pypi.org/project/fonttools
- Changelog: https://pyup.io/changelogs/fonttools/
- Repo: http://github.com/fonttools/fonttools
This PR updates FontTools[unicode,ufo,lxml] from 4.30.0 to 4.33.0.
Changelog
### 4.33.0 ``` ---------------------------- - [OS/2 / merge] Automatically recalculate ``OS/2.xAvgCharWidth`` after merging fonts with ``fontTools.merge`` (2591, 2538). - [misc/config] Added ``fontTools.misc.configTools`` module, a generic configuration system (2416, 2439). Added ``fontTools.config`` module, a fontTools-specific configuration system using ``configTools`` above. Attached a ``Config`` object to ``TTFont``. - [otlLib] Replaced environment variable for GPOS compression level with an equivalent option using the new config system. - [designspaceLib] Incremented format version to 5.0 (2436). Added discrete axes, variable fonts, STAT information, either design- or user-space location on instances. Added ``fontTools.designspaceLib.split`` module to split a designspace into sub-spaces that interpolate and that represent the variable fonts listed in the document. Made instance names optional and allow computing them from STAT data instead. Added ``fontTools.designspaceLib.statNames`` module. Allow instances to have the same location as a previously defined STAT label. Deprecated some attributes: ``SourceDescriptor``: ``copyLib``, ``copyInfo``, ``copyGroups``, ``copyFeatures``. ``InstanceDescriptor``: ``kerning``, ``info``; ``glyphs``: use rules or sparse sources. For both, ``location``: use the more explicit designLocation. Note: all are soft deprecations and existing code should keep working. Updated documentation for Python methods and the XML format. - [varLib] Added ``build_many`` to build several variable fonts from a single designspace document (2436). Added ``fontTools.varLib.stat`` module to build STAT tables from a designspace document. - [otBase] Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables when ``uharfbuzz`` python bindings are available (2552). Disable it by setting the "fontTools.ttLib.tables.otBase:USE_HARFBUZZ_REPACKER" config option to ``False``. If the option is set explicitly to ``True`` but ``uharfbuzz`` can't be imported or fails to serialize for any reasons, an error will be raised (ImportError or uharfbuzz errors). - [CFF/T2] Ensure that ``pen.closePath()`` gets called for CFF2 charstrings (2577). Handle implicit CFF2 closePath within ``T2OutlineExtractor`` (2580). ``` ### 4.32.0 ``` ---------------------------- - [otlLib] Disable GPOS7 optimization to work around bug in Apple CoreText. Always force Chaining GPOS8 for now (2540). - [glifLib] Added ``outputImpliedClosingLine=False`` parameter to ``Glyph.draw()``, to control behaviour of ``PointToSegmentPen`` (6b4e2e7). - [varLib.interpolatable] Check for wrong contour starting point (2571). - [cffLib] Remove leftover ``GlobalState`` class and fix calls to ``TopDictIndex()`` (2569, 2570). - [instancer] Clear ``AxisValueArray`` if it is empty after instantiating (2563). ``` ### 4.31.2 ``` ---------------------------- - [varLib] fix instantiation of GPOS SinglePos values (2555). ``` ### 4.31.1 ``` ---------------------------- - [subset] fix subsetting OT-SVG when glyph id attribute is on the root ``<svg>`` element (2553). ``` ### 4.31.0 ``` ---------------------------- - [ttCollection] Fixed 'ResourceWarning: unclosed file' warning (2549). - [varLib.merger] Handle merging SinglePos with valueformat=0 (2550). - [ttFont] Update glyf's glyphOrder when calling TTFont.setGlyphOrder() (2544). - [ttFont] Added ``ensureDecompiled`` method to load all tables irrespective of the ``lazy`` attribute (2551). - [otBase] Added ``iterSubTable`` method to iterate over BaseTable's children of type BaseTable; useful for traversing a tree of otTables (2551). ```Links
- PyPI: https://pypi.org/project/fonttools - Changelog: https://pyup.io/changelogs/fonttools/ - Repo: http://github.com/fonttools/fonttools