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.
[cffLib] Fixed issue with lazy-loading of attributes when attempting to set the CFF TopDict.Encoding.
[ttx] Fixed regression introduced in 3.22.0 that affected the split tables -s option.
[feaLib] Added IncludedFeaNotFound custom exception subclass, raised when an included feature file cannot be found.
[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.
[varLib] Implemented VarStore optimizer.
[subset] Implemented pruning of GDEF VarStore, HVAR and MVAR.
[sfnt] Restore backward compatiblity with numFonts attribute of SFNTReader object.
[merge] Initial support for merging LangSysRecords.
[ttCollection] don’t seek(0) when writing to possibly unseekable strems.
[subset] Keep all --name-IDs from 0 to 6 by default.
[cffLib] Added width module to calculate optimal CFF default and nominal glyph widths.
[varLib] Don’t fail if STAT already in the master fonts
3.22.0:
- [subset] Support subsetting endchar acting as seac-like components
in CFF.
- [feaLib] Allow to build from pre-parsed ast.FeatureFile object.
Added tables argument to only build some tables instead of all.
- [textTools] Replaced safeEval with ast.literal_eval.
- [feaLib] Added option to the parser to not resolve include statements.
- [ttLib] Added new ttCollection module to read/write TrueType and
OpenType Collections. Exports a TTCollection class with a fonts
attribute containing a list of TTFont instances, the methods save
and saveXML, plus some list-like methods. The importXML method is
not implemented yet.
- [unicodeadata] Added ot_tag_to_script function that converts from
OpenType script tag to Unicode script code.
- Added new designspaceLib subpackage, originally from Erik Van Blokland's
designSpaceDocument: https://github.com/LettError/designSpaceDocument
NOTE: this is not yet used internally by varLib, and the API may be subject
to changes.
- Added new FontTools icon images.
- [unicodedata] Added script_horizontal_direction function that returns
either "LTR" or "RTL" given a unicode script code.
- [otConverters] Don't write descriptive name string as XML comment if the
NameID value is 0 (== NULL).
- [unicodedata] Add ot_tags_from_script function to get the list of
OpenType script tags associated with unicode script code.
- [feaLib] Don't error when "enumerated" kern pairs conflict with preceding
single pairs; emit warning and chose the first value.
- [loggingTools] In CapturingLogHandler.assertRegex method, match the
fully formatted log message.
- [sbix] Fixed TypeError when concatenating str and bytes.
- [bezierTools] Implemented cusp support and removed approximate_fallback
arg in calcQuadraticArcLength. Added calcCubicArcLength
3.21.0:
[cmap] when compiling format6 subtable, don't assume gid0 is always called '.notdef'.
[ot] Allow decompiling fonts with bad Coverage format number.
Change FontTools licence to MIT.
[post] Prune extra names already in standard Mac set.
[subset] Delete empty SubrsIndex after subsetting.
[varLib] Don't share points in cvar by default, as it currently fails on some browsers.
[afmLib] Make poor old afmLib work on python3.
3.20.1:
[unicodedata] Fixed issue with script and script_extension functions returning inconsistent short vs long names. They both return the short four- letter script codes now. Added script_name and script_code functions to look up the long human-readable script name from the script code, and viceversa.
3.20.0:
[unicodedata] Addded new module fontTools.unicodedata which exports the same interface as the built-in unicodedata module, with the addition of a few functions that are missing from the latter, such as script, script_extension and block. Added a MetaTools/buildUCD.py script to download and parse data files from the Unicode Character Database and generate python modules containing lists of ranges and property values.
[feaLib] Added __str__ method to all ast elements.
[feaLib] Parser constructor now accepts a glyphNames iterable instead of glyphMap dict. The latter still works but with a pending deprecation warning.
[bezierTools] Added arc length calculation functions originally from pens.perimeterPen module.
[varLib] Started generating STAT table (8af4309). Right now it just reflects the axes, and even that with certain limitations: * AxisOrdering is set to the order axes are defined, * Name-table entries are not shared with fvar.
[py23] Added backports for redirect_stdout and redirect_stderr context managers.
[Graphite] Fixed some round-trip bugs
3.19.0:
[varLib] Try set of used points instead of all points when testing whether to share points between tuples.
[CFF2] Fixed issue with reading/writing PrivateDict BlueValues to TTX file. Read the commit message 8b02b5a and issue 1030 for more details. NOTE: this change invalidates all the TTX files containing CFF2 tables that where dumped with previous verisons of fonttools. CFF2 Subr items can have values on the stack after the last operator, thus a CFF2Subr class was added to accommodate this.
[_k_e_r_n] Fixed compilation of AAT kern version=1.0 tables
[ttLib] Added getBestCmap() convenience method to TTFont class and cmap table class that returns a preferred Unicode cmap subtable given a list of options.
[morx] Emit more meaningful subtable flags. Implement InsertionMorphAction
3.18.0 (released 2017-10-30)
[feaLib] Fixed writing back nested glyph classes.
[TupleVariation] Reactivated shared points logic, bugfixes.
[AAT] Implemented morx ligature subtables.
[reverseContourPen] Keep duplicate lineTo following a moveTo.
[varLib.mutator] Suport instantiation of GPOS, GDEF and MVAR.
[sstruct] Fixed issue with unicode_literals and struct module in old versions of python 2.7
3.17.0:
- [svgPathPen] Added an ``SVGPathPen`` that translates segment pen commands
into SVG path descriptions. Copied from Tal Leming's ``ufo2svg.svgPathPen``
https://github.com/typesupply/ufo2svg/blob/d69f992/Lib/ufo2svg/svgPathPen.py
- [reverseContourPen] Added ``ReverseContourPen``, a filter pen that draws
contours with the winding direction reversed, while keeping the starting
point.
- [filterPen] Added ``ContourFilterPen`` to manipulate contours as a whole
rather than segment by segment.
- [arrayTools] Added ``Vector`` class to apply math operations on an array
of numbers, and ``pairwise`` function to loop over pairs of items in an
iterable.
- [varLib] Added support for building and interpolation of ``cvar`` table
3.16.0:
[head] Try using SOURCE_DATE_EPOCH environment variable when setting the head modified timestamp to ensure reproducible builds.
[VTT] Decode VTT’s TSI* tables text as UTF-8.
Added support for Graphite font tables: Feat, Glat, Gloc, Silf and Sill.
[varLib] Default to using axis “name” attribute if “labelname” element is missing.
[merge] Added support for merging Script records. Remove unused features and lookups after merge.
Added fontTools.svgLib package. Includes a parser for SVG Paths that supports the Pen protocol. Also, added a snippet to convert SVG outlines to UFO GLIF.
[AAT] Added support for ankr, bsln, mort, morx, gcid, and cidg.
[subset] Implemented subsetting of prop, opbd, bsln, lcar.
Changelog for this release:
- [otConverters] Implemented ``__add__`` and ``__radd__`` methods on
``otConverters._LazyList`` that decompile a lazy list before adding
it to another list or ``_LazyList`` instance. Fixes an ``AttributeError``
in the ``subset`` module when attempting to sum ``_LazyList`` objects
(6ef48bd2, 1aef1683).
- [AAT] Support the `opbd` table with optical bounds (a47f6588).
- [AAT] Support `prop` table with glyph properties (d05617b4).
TTX/FontTools Version 2.4
- Option to write to arbitrary files
- Better dump format for DSIG
- Better detection of OTF XML
- Fix issue with Apple's kern table format
- Fix mangling of TT glyph programs
- Fix issues related to mona.ttf
- Fix Windows Installer instructions
- Fix some modern MacOS issues
- Fix minor issues and typos
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
modified by me.
FontTools is a library for manipulating fonts, written in Python. It
supports TrueType, OpenType, AFM and to an extent Type 1 and some
Mac-specific formats.
This package also includes TTX: a tool to convert OpenType and TrueType
fonts to and from XML.