- Update to 4.47.0
- [varLib.models] New API for VariationModel: getMasterScalars and interpolateFromValuesAndScalars.
- [varLib.interpolatable] Various bugfixes and rendering improvements.
In particular, add a Summary page in the front, and an Index and Table-of-Contents in the back.
Change the page size to Letter.
- [Docs/designspaceLib] Defined a new public.fontInfo lib key, not used anywhere yet (#3358).
- Changes from 4.46.0
- [featureVars] Allow to register the same set of substitution rules to multiple features.
The addFeatureVariations function can now take a list of featureTags; similarly, the lib key 'com.github.fonttools.varLib.featureVarsFeatureTag' can now take a comma-separateed string
of feature tags (e.g. "salt,ss01") instead of a single tag (#3360).
- [featureVars] Don't overwrite GSUB FeatureVariations, but append new records to it
for features which are not already there. But raise VarLibError if the feature tag
already has feature variations associated with it (#3363).
- [varLib] Added addGSUBFeatureVariations function to add GSUB Feature Variations to
an existing variable font from rules defined in a DesignSpace document (#3362).
- [varLib.interpolatable] Various bugfixes and rendering improvements. In particular,
a new test for "underweight" glyphs. The new test reports quite a few false-positives though.
Please send feedback.
- Changes from 4.45.1
- [varLib.interpolatable] Various bugfixes and improvements, better reporting, reduced false positives.
- [ttGlyphSet] Added option to not recalculate glyf bounds (#3348).
- Changes from 4.45.0
- [varLib.interpolator] Vastly improved algorithms. Also available now is --pdf and
--html options to generate a PDF or HTML report of the interpolation issues.
- The PDF/HTML report showcases the problematic masters, the interpolated broken glyph,
as well as the proposed fixed version.
- Changes from 4.44.3
- [subset] Only prune codepage ranges for OS/2.version >= 1, ignore otherwise (#3334).
- [instancer] Ensure hhea vertical metrics stay in sync with OS/2 ones after
instancing MVAR table containing 'hasc', 'hdsc' or 'hlgp' tags (#3297).
- Changes from 4.44.2
- [glyf] Have Glyph.recalcBounds skip empty components (base glyph with no contours)
when computing the bounding box of composite glyphs. This simply restores the existing behavior
before some changes were introduced in fonttools 4.44.0 (#3333).
- Changes from 4.44.1
- [feaLib] Ensure variable mark anchors are deep-copied while building
since they get modified in-place and later reused (#3330).
- [OS/2|subset] Added method to recalcCodePageRanges to OS/2 table class;
added --prune-codepage-ranges to fonttools subset command (#3328, #2607).
NOTE: this release was "yanked" from PyPI because it introduced a regression: #3334
- Changes from 4.44.0
- [instancer] Recalc OS/2 AvgCharWidth after instancing if default changes (#3317).
- [otlLib] Make ClassDefBuilder class order match varLib.merger's, i.e. large classes first,
then glyph lexicographic order (#3321, #3324).
- [instancer] Allow not specifying any of min:default:max values and let be filled up with fvar's values (#3322, #3323).
- [instancer] When running --update-name-table ignore axes that have no STAT axis values (#3318, #3319).
- [Debg] When dumping to ttx, write the embedded JSON as multi-line string with indentation (92cbfee).
- [varStore] Handle > 65535 items per encoding by splitting VarData subtable (#3310).
- [subset] Handle null-offsets in MarkLigPos subtables.
- [subset] Keep East Asian spacing fatures vhal, halt, chws, vchw by default (#3305).
- [instancer.solver] Fixed case where axisDef < lower and upper < axisMax (#3304).
- [glyf] Speed up compilation, mostly around recalcBounds (#3301).
- [varLib.interpolatable] Speed it up when working on variable fonts, plus various micro-optimizations (#3300).
- Require unicodedata2 >= 15.1.0 when installed with 'unicode' extra, contains UCD 15.1.
- Changes from 4.43.1
- [EBDT] Fixed TypeError exception in _reverseBytes method triggered
when dumping some bitmap fonts with ttx -z bitwise option (#3162).
- [v/hhea] Fixed UnboundLocalError exception in recalc method when no vmtx or hmtx tables are present (#3290).
- [bezierTools] Fixed incorrectly typed cython local variable leading to TypeError
when calling calcQuadraticArcLength (#3288).
- [feaLib/otlLib] Better error message when building Coverage table with missing glyph (#3286).
- Changes from 4.43.0
- [subset] Set up lxml XMLParser(resolve_entities=False) when parsing OT-SVG documents
to prevent XML External Entity (XXE) attacks (9f61271):
https://codeql.github.com/codeql-query-help/python/py-xxe/
- [varLib.iup] Added workaround for a Cython bug in iup_delta_optimize
that was leading to IUP tolerance being incorrectly initialised,
resulting in sub-optimal deltas (6012643, cython/cython#5732).
- [varLib] Added new command-line entry point fonttools varLib.avar to add an avar table
to an existing VF from axes mappings in a .designspace file (0a3360e).
- [instancer] Fixed bug whereby no longer used variation regions were not correctly pruned after VarData optimization (#3268).
- Added support for Python 3.12 (#3283).
- Changes from 4.42.1
- [t1Lib] Fixed several Type 1 issues (#3238, #3240).
- [otBase/packer] Allow sharing tables reached by different offset sizes (#3241, #3236, 457f11c).
- [varLib/merger] Fix Cursive attachment merging error when all anchors are NULL (#3248, #3247).
- [ttLib] Fixed warning when calling addMultilingualName and ttFont parameter
was not passed on to findMultilingualName (#3253).
- Changes from 4.42.0
- [varLib] Use sentinel value 0xFFFF to mark a glyph advance in hmtx/vmtx as non participating,
allowing sparse masters to contain glyphs for variation purposes other than {H,V}VAR (#3235).
- [varLib/cff] Treat empty glyphs in non-default masters as missing,
thus not participating in CFF2 delta computation, similarly to how
varLib already treats them for gvar (#3234).
- Added varLib.avarPlanner script to deduce 'correct' avar v1 axis mappings based on glyph average weights (#3223).
- Changes from 4.41.1
- [subset] Fixed perf regression in v4.41.0 by making NameRecordVisitor
only visit tables that do contain nameID references (#3213, #3214).
- [varLib.instancer] Support instancing fonts containing null ConditionSet offsets
in FeatureVariationRecords (#3211, #3212).
- [statisticsPen] Report font glyph-average weight/width and font-wide slant.
- [fontBuilder] Fixed head.created date incorrectly set to 0 instead of the current timestamp,
regression introduced in v4.40.0 (#3210).
- [varLib.merger] Support sparse CursivePos masters (#3209).
- Changes from 4.41.0
- [fontBuilder] Fixed bug in setupOS2 with default panose attribute
incorrectly being set to a dict instead of a Panose object (#3201).
- [name] Added method to removeUnusedNameRecords in the user range (#3185).
- [varLib.instancer] Fixed issue with L4 instancing (moving default) (#3179).
- [cffLib] Use latin1 so we can roundtrip non-ASCII in {Full,Font,Family}Name (#3202).
- [designspaceLib] Mark as optional in docs (as it is in the code).
- [glyf-1] Fixed drawPoints() bug whereby last cubic segment becomes quadratic (#3189, #3190).
- [fontBuilder] Propagate the 'hidden' flag to the fvar Axis instance (#3184).
- [fontBuilder] Update setupAvar() to also support avar 2, fixing _add_avar() call site (#3183).
- Added new voltLib.voltToFea submodule (originally Tiro Typeworks' "Volto")
for converting VOLT OpenType Layout sources to FEA format (#3164).
- Changes from 4.40.0
- Published native binary wheels to PyPI for all the python minor versions
and platform and architectures currently supported that would benefit from this.
They will include precompiled Cython-accelerated modules (e.g. cu2qu) without
requiring to compile them from source. The pure-python wheel and source distribution
will continue to be published as always (pip will automatically chose them when no
binary wheel is available for the given platform, e.g. pypy).
Use pip install --no-binary=fonttools fonttools to expliclity request pip to install from the pure-python source.
- [designspaceLib|varLib] Add initial support for specifying axis mappings and build avar2 table from those (#3123).
- [feaLib] Support variable ligature caret position (#3130).
- [varLib|glyf] Added option to --drop-implied-oncurves; test for impliable oncurve points either before or after rounding
(#3146, #3147, #3155, #3156).
- [TTGlyphPointPen] Don't error with empty contours, simply ignore them (#3145).
- [sfnt] Fixed str vs bytes remnant of py3 transition in code dealing with de/compiling WOFF metadata (#3129).
- [instancer-solver] Fixed bug when moving default instance with sparse masters (#3139, #3140).
- [feaLib] Simplify variable scalars that don’t vary (#3132).
- [pens] Added filter pen that explicitly emits closing line when lastPt != movePt (#3100).
- [varStore] Improve optimize algorithm and better document the algorithm (#3124, #3127).
- Added quantization option (#3126).
- Added CI workflow config file for building native binary wheels (#3121).
- [fontBuilder] Added glyphDataFormat=0 option; raise error when glyphs contain cubic outlines
but glyphDataFormat was not explicitly set to 1 (#3113, #3119).
- [subset] Prune emptied GDEF.MarkGlyphSetsDef and remap indices; ensure GDEF is subsetted before GSUB and GPOS (#3114, #3118).
- [xmlReader] Fixed issue whereby DSIG table data was incorrectly parsed (#3115, #2614).
- [varLib/merger] Fixed merging of SinglePos with pos=0 (#3111, #3112).
- [feaLib] Demote "Feature has not been defined" error to a warning when building aalt and referenced feature is empty (#3110).
- [feaLib] Dedupe multiple substitutions with classes (#3105).
- Add mssing recommends.
- Add missing setuptools to fix build error under Leap.
OBS-URL: https://build.opensuse.org/request/show/1136795
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=48
- update to 4.39.3:
* [sbix] Fixed TypeError when compiling empty glyphs whose
imageData is None
* [ttFont] Fixed AttributeError on python <= 3.10 when opening
a TTFont from a tempfile
* SpooledTemporaryFile, seekable method only added on python
3.11 (#3052).
* [varLib] Fixed regression introduced in 4.39.1 whereby an
incomplete 'STAT' table would be built even though a
DesignSpace v5 did contain 'STAT' definitions (#3045, #3046).
* [avar2] Added experimental support for reading/writing avar
version 2 as specified in this draft proposal:
https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
* [glifLib] Wrap underlying XML library exceptions with
GlifLibError when parsing GLIFs, and also print the name
and path of the glyph that fails to be parsed (#3042).
* [feaLib] Consult avar for normalizing user-space values in
ConditionSets and in VariableScalars (#3042, #3043).
* [ttProgram] Handle string input to Program.fromAssembly()
(#3038).
* [otlLib] Added a config option to emit GPOS 7 lookups,
currently disabled by default because of a macOS bug (#3034).
* [COLRv1] Added method to automatically compute ClipBoxes
(#3027).
* [ttFont] Fixed getGlyphID to raise KeyError on missing glyphs
instead of returning None.
* [sbix] Fixed UnboundLocalError: cannot access local variable
'rawdata' (#3031).
* [varLib] When building VF, do not overwrite a pre-existing
``STAT`` table that was built with feaLib from FEA feature
OBS-URL: https://build.opensuse.org/request/show/1075673
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=40
- Update to 4.38.0
* [varLib.instancer] Added support for L4 instancing, i.e. moving the
default value of an axis while keeping it variable.
* [otlLib/featureVars] Set a few Count values so one doesn't need to
compile the font to update them
* [varLib.models] Make extrapolation work for 2-master models as well
where one master is at the default location
Add optional extrapolate=False to normalizeLocation()
* [varLib.cff] Fixed sub-optimal packing of CFF2 deltas by no longer
rounding them to integer
* [scaleUpem] Calculate numShorts in VarData after scale; handle CFF
hintmasks
OBS-URL: https://build.opensuse.org/request/show/1037227
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=36
- Update to 4.37.1
* [subset] Fixed regression introduced with v4.37.0 while subsetting
the VarStore of HVAR and VVAR tables, whereby an
AttributeError: subset_varidxes was thrown because an apparently
unused import statement (with the side-effect of dynamically binding
that subset_varidxes method to the VarStore class) had been
accidentally deleted in an unrelated PR
* [pens] Added cairoPen
* [gvar] Read gvar more lazily by not parsing all of the glyf table
* [ttGlyphSet] Make drawPoints(pointPen) method work for CFF fonts
as well via adapter pen
* [cff.specializer] Fixed issue in charstring generalizer with the
blend operator
* [varLib.models] Added support for extrapolation
* [ttGlyphSet] Ensure the newly added _TTVarGlyphSet inherits from
_TTGlyphSet to keep backward compatibility with existing API
* [kern] Allow compiling legacy kern tables with more than 64k entries
* [visitor] Added new visitor API to traverse tree of objects and
dispatch based on the attribute type: cf. fontTools.misc.visitor
and fontTools.ttLib.ttVisitor. Added fontTools.ttLib.scaleUpem
module that uses the latter to change a font's units-per-em and
scale all the related fields accordingly
* Etc. https://github.com/fonttools/fonttools/compare/4.33.3...4.37.1
OBS-URL: https://build.opensuse.org/request/show/1000082
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=34
- Update to 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).
- Release 4.31.2
* [varLib] fix instantiation of GPOS SinglePos values (#2555).
- Release 4.31.1
* [subset] fix subsetting OT-SVG when glyph id attribute is on
the root <svg> element (#2553).
- Release 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).
- Release 4.30.0
OBS-URL: https://build.opensuse.org/request/show/969386
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=30
- Update to 4.29.1
* [colorLib] Fixed rounding issue with radial gradient's start/end
circles inside one another (#2521).
* [freetypePen] Handle rotate/skew transform when auto-computing
width/height of the buffer; raise PenError wen missing moveTo
(#2517)
- Release 4.29.0
* [ufoLib] Fixed illegal characters and expanded reserved
filenames (#2506).
* [COLRv1] Don't emit useless PaintColrLayers of lenght=1 in
LayerListBuilder (#2513).
* [ttx] Removed legacy waitForKeyPress method on Windows (#2509).
* [pens] Added FreeTypePen that uses freetype-py and the pen
protocol for rasterizating outline paths (#2494).
* [unicodedata] Updated the script direction list to Unicode 14.0
(#2484).
* Bumped unicodedata2 dependency to 14.0 (#2499).
* [psLib] Fixed type of fontName in suckfont (#2496).
OBS-URL: https://build.opensuse.org/request/show/959835
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=28
- update to 4.28.5:
* make sure all occurrences of str() are now replaced with user-defined ntos
* refactored code into submodules, plus several bugfixes and improvements
* Merge GDEF marksets in Lookups properly
* Have fontTools feaLib script exit with error code when build fails
* Added ntos option to customize number formatting
* Speed up subsetting of large CFF fonts
* Speculatively promote lookups to extension to speed up compilation
OBS-URL: https://build.opensuse.org/request/show/946635
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=27
- Update to 4.28.3
* [subset] Fixed bug while subsetting COLR table, whereby
incomplete layer records pointing to missing glyphs were being
retained leading to struct.error upon compiling. Make it so
that glyf glyph closure, which follows the COLR glyph closure,
does not influence the COLR table subsetting (#2461, #2462).
* [docs] Fully document the cmap and glyf tables (#2454, #2457).
* [colorLib.unbuilder] Fixed CLI by deleting no longer existing
parameter (180bb1867).
- Release 4.28.2
* [otlLib] Remove duplicates when building coverage (#2433).
* [docs] Add interrogate configuration (#2443).
* [docs] Remove comment about missing “start” optional argument
to calcChecksum (#2448).
* [cu2qu/cli] Adapt to the latest ufoLib2.
* [subset] Support subsetting SVG table and remove it from the
list of drop by default tables (#534).
* [subset] add --pretty-svg option to pretty print SVG table
contents (#2452).
* [merge] Support merging CFF tables (CID-keyed CFF is still not
supported) (#2447).
* [merge] Support --output-file (#2447).
* [docs] Split table docs into individual pages (#2444).
* [feaLib] Forbid empty classes (#2446).
* [docs] Improve documentation for fontTools.ttLib.ttFont
(#2442).
- Release 4.28.1
* [subset] Fixed AttributeError while traversing a color glyph's
Paint graph when there is no LayerList, which is optional
(#2441).
OBS-URL: https://build.opensuse.org/request/show/940599
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=25
- Update to 4.19.1
* [woff2] An initial off-curve point with an overlap flag now
stays an off-curve point after compression.
- Changes in 4.19.0
* [codecs] Handle errors parameter different from 'strict' for
the custom extended mac encodings (#2137, #2132).
* [featureVars] Raise better error message when a script is
missing the required default language system (#2154).
* [COLRv1] Avoid abrupt change caused by rounding
PaintRadialGradient.c0 when the start circle almost touches
the end circle's perimeter (#2148).
* [COLRv1] Support building unlimited lists of paints as 255-ary
trees of PaintColrLayers tables (#2153).
* [subset] Prune redundant format-12 cmap subtables when all
non-BMP characters are dropped (#2146).
* [basePen] Raise MissingComponentError instead of bare KeyError
when a referenced component is missing (#2145).
- Only 'Recommend:' optional extra requirements (Some are not
available in TW python36 flavor anymore)
- Don't require python36-scipy for testing. (NEP 29)
OBS-URL: https://build.opensuse.org/request/show/871463
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=19
- update to 4.18.2:
- [COLRv1] Implemented ``PaintTranslate`` paint format (#2129).
- [varLib.cff] Fixed unbound local variable error (#1787).
- [otlLib] Don't crash when creating OpenType class definitions if some glyphs
occur more than once (#2125).
- [colorLib] Speed optimization for ``LayerV1ListBuilder`` (#2119).
- [mutator] Fixed missing tab in ``interpolate_cff2_metrics`` (0957dc7a).
- [COLRv1] Update to latest draft: added ``PaintRotate`` and ``PaintSkew`` (#2118).
- [woff2] Support new ``brotlicffi`` bindings for PyPy (#2117).
- [glifLib] Added ``expectContentsFile`` parameter to ``GlyphSet``, for use when
reading existing UFOs, to comply with the specification stating that a
``contents.plist`` file must exist in a glyph set (#2114).
- [subset] Allow ``LangSys`` tags in ``--layout-scripts`` option (#2112). For example:
``--layout-scripts=arab.dflt,arab.URD,latn``; this will keep ``DefaultLangSys``
and ``URD`` language for ``arab`` script, and all languages for ``latn`` script.
- [varLib.interpolatable] Allow UFOs to be checked; report open paths, non existant
glyphs; add a ``--json`` option to produce a machine-readable list of
incompatibilities
- [pens] Added ``QuartzPen`` to create ``CGPath`` from glyph outlines on macOS.
Requires pyobjc (#2107).
- [feaLib] You can export ``FONTTOOLS_LOOKUP_DEBUGGING=1`` to enable feature file
debugging info stored in ``Debg`` table (#2106).
- [otlLib] Build more efficient format 1 and format 2 contextual lookups whenever
possible (#2101).
- [colorLib] Fixed regression in 4.17.0 when building COLR v0 table; when color
layers are stored in UFO lib plist, we can't distinguish tuples from lists so
we need to accept either types (e5439eb9, googlefonts/ufo2ft/issues#426).
- [colorLib/otData] Updated to latest draft ``COLR`` v1 spec (#2092).
- [svgLib] Fixed parsing error when arc commands' boolean flags are not separated
by space or comma (#2094).
OBS-URL: https://build.opensuse.org/request/show/863150
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=18
- Update to 4.13.0
* [feaLib/otlLib] Moved lookup subtable builders from feaLib to otlLib; refactored
some common code (#2004, #2007).
* [glifLib] Fixed bug with some UFO .glif filenames clashing on case-insensitive
filesystems (#2001, #2002).
* [_n_a_m_e] Fixed error in ``addMultilingualName`` with one-character names.
Only attempt to recovered malformed UTF *16 data from a ``bytes`` string,
not from unicode ``str`` (#1997, #1998).
* [OS/2] Don't calculate whole sets of unicode codepoints, use faster and more memory
efficient ranges and bisect lookups (#1984).
* [voltLib] Support writing back abstract syntax tree as VOLT data (#1983).
* [voltLib] Accept DO_NOT_TOUCH_CMAP keyword (#1987).
* [ufoLib] Silently delete duplicate glyphs within the same kerning group when reading
groups (#1970).
* [ttLib] Set version of COLR table when decompiling COLRv1 (commit 9d8a7e2).
OBS-URL: https://build.opensuse.org/request/show/826238
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=14
- Update to 4.10.2:
* Note: The v4.x version series only supports Python 3.6 or greater.
* see NEWS.rst for the full changelog
- Use _multibuild to run the tests in a different flavor and make it
possible to BuildRequire ufoLib2 (which requires FontTools to build)
without creating a dependency cycle.
- Add curves.json from upstream as a separate source as it's
missing from the zip file.
OBS-URL: https://build.opensuse.org/request/show/807893
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=11
- Update to version 3.24.1
* [varLib] Don’t remap the same DeviceTable twice in VarStore
optimizer (#1206).
* [varLib] Add --disable-iup option to fonttools varLib script,
and a optimize=True keyword argument to varLib.build function,
to optionally disable IUP optimization while building varfonts.
* [ttCollection] Fixed issue while decompiling ttc with python3
(#1207).
- Update to version 3.24.0
* [ttGlyphPen] Decompose composite glyphs if any components’
transform is too large to fit a F2Dot14 value, or clamp
transform values that are (almost) equal to +2.0 to make them
fit and avoid decomposing (#1200, #1204, #1205).
* [ttx] Added new -g option to dump glyphs from the glyf table
splitted as individual ttx files (#153, #1035, #1132, #1202).
* Copied ufoLib.filenames module to fontTools.misc.filenames,
used for the ttx split-glyphs option (#1202).
* [feaLib] Added support for cvParameters blocks in Character
Variant feautures cv01-cv99 (#860, #1169).
* [Snippets] Added checksum.py script to generate/check SHA1
hash of ttx files (#1197).
* [varLib.mutator] Fixed issue while instantiating some variable
fonts whereby the horizontal advance width computed from gvar
phantom points could turn up to be negative (#1198).
* [varLib/subset] Fixed issue with subsetting GPOS variation
data not picking up ValueRecord Device objects (54fd71f).
* [feaLib/voltLib] In all AST elements, the location is no
longer a required positional argument, but an optional
kewyord argument (defaults to None). This will make it easier
to construct feature AST from code (#1201).
- Update to version 3.23.0
* [designspaceLib] Added an optional lib element to the
designspace as a whole, as well as to the instance elements,
to store arbitrary data in a property list dictionary, similar
to the UFO’s lib. Added an optional font attribute to the
SourceDescriptor, to allow operating on in-memory font objects
(#1175).
* [cffLib] Fixed issue with lazy-loading of attributes when
attempting to set the CFF TopDict.Encoding (#1177, #1187).
* [ttx] Fixed regression introduced in 3.22.0 that affected
the split tables -s option (#1188).
* [feaLib] Added IncludedFeaNotFound custom exception subclass,
raised when an included feature file cannot be found (#1186).
* [otTables] Changed VarIdxMap to use glyph names internally
instead of glyph indexes. The old ttx dumps of HVAR/VVAR
tables that contain indexes can still be imported
(21cbab8, 38a0ffb).
* [varLib] Implemented VarStore optimizer (#1184).
* [subset] Implemented pruning of GDEF VarStore, HVAR and
MVAR (#1179).
* [sfnt] Restore backward compatiblity with numFonts attribute
of SFNTReader object (#1181).
* [merge] Initial support for merging LangSysRecords (#1180).
* [ttCollection] don’t seek(0) when writing to possibly
unseekable strems.
* [subset] Keep all --name-IDs from 0 to 6 by default
(#1170, #605, #114).
* [cffLib] Added width module to calculate optimal CFF default
and nominal glyph widths.
* [varLib] Don’t fail if STAT already in the master fonts
(#1166).
- Fix conflict with old single-package version
OBS-URL: https://build.opensuse.org/request/show/584507
OBS-URL: https://build.opensuse.org/package/show/M17N/python-FontTools?expand=0&rev=3