Lines Matching +full:6 +full:- +full:aat +full:- +full:fonts
1 Metadata-Version: 2.1
5 Home-page: http://github.com/fonttools/fonttools
7 Author-email: just@letterror.com
9 Maintainer-email: behdad@behdad.org
16 | fontTools is a library for manipulating fonts, written in Python. The
18 fonts to and from an XML text format, which is also called TTX. It
20 Mac-specific formats. The project has an `MIT open-source
56 # create new virtual environment called e.g. 'fonttools-venv', or anything you like
57 python -m virtualenv fonttools-venv
60 . fonttools-venv/bin/activate
63 fonttools-venv\Scripts\activate.bat
66 pip install -e .
84 - As a command line tool (Windows/DOS, Unix, macOS)
85 - By dropping files onto the application (Windows, macOS)
98 ``ttx -h`` at the command prompt. These additional options include:
100 - specifying the folder where the output files are created
101 - specifying which tables to dump or which tables to exclude
102 - merging partial ``.ttx`` files with existing ``.ttf`` or ``.otf``
104 - listing brief table info instead of dumping to ``.ttx``
105 - splitting tables to separate ``.ttx`` files
106 - disabling TrueType instruction disassembly
109 -------------------
128 TrueType fonts use glyph indices (GlyphIDs) to refer to glyphs in most
149 Commands for merging and subsetting fonts are also available:
175 ---------------------
181 The ``fonttools`` PyPI distribution also supports so-called "extras", i.e. a
193 - ``Lib/fontTools/misc/etree.py``
195 The module exports a ElementTree-like API for reading/writing XML files, and
196 allows to use as the backend either the built-in ``xml.etree`` module or
202 - ``Lib/fontTools/ufoLib``
209 * `enum34 <https://pypi.org/pypi/enum34>`__: backport for the built-in ``enum``
214 - ``Lib/fontTools/ttLib/woff2.py``
216 Module to compress/decompress WOFF 2.0 web fonts; it requires:
223 - ``Lib/fontTools/ttLib/sfnt.py``
225 To better compress WOFF 1.0 web fonts, the following module can be used
226 instead of the built-in ``zlib`` library:
233 - ``Lib/fontTools/unicode.py``
243 as the latter already comes with an up-to-date ``unicodedata``.
247 - ``Lib/fontTools/varLib/interpolatable.py``
250 It requires one of the following packages in order to solve the so-called
257 * `munkres <https://pypi.python.org/pypi/munkres>`__: a pure-Python
258 module that implements the Hungarian or Kuhn-Munkres algorithm.
262 - ``Lib/fontTools/varLib/plot.py``
270 - ``Lib/fontTools/misc/symfont.py``
279 - ``Lib/fontTools/t1Lib.py``
281 To get the file creator and type of Macintosh PostScript Type 1 fonts
290 - ``Lib/fontTools/pens/cocoaPen.py``
295 Python and the Objective-C runtime (macOS platform only).
297 - ``Lib/fontTools/pens/qtPen.py``
304 - ``Lib/fontTools/pens/reportLabPen.py``
333 You can specify an alternative environment list via the ``-e`` option,
338 tox -e py27
339 TOXENV="py36-cov,htmlcov" tox
351 The best place for discussions about TTX from an end-user perspective as
354 a development https://groups.google.com/d/forum/fonttools-dev mailing
389 | Copyright (c) 1999-2004 Just van Rossum, LettError
395 Copyright (c) 1995-2001 Corporation for National Research Initiatives.
398 Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All
403 .. |Travis Build Status| image:: https://travis-ci.org/fonttools/fonttools.svg
404 :target: https://travis-ci.org/fonttools/fonttools
411 .. |Gitter Chat| image:: https://badges.gitter.im/fonttools-dev/Lobby.svg
412 :alt: Join the chat at https://gitter.im/fonttools-dev/Lobby
413 …:target: https://gitter.im/fonttools-dev/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-b…
418 3.39.0 (released 2019-03-19)
419 ----------------------------
421 - [ttLib/glyf] Raise more specific error when encountering recursive
423 - [Doc/designspaceLib] Defined new ``public.skipExportGlyphs`` lib key (#1534,
424 unified-font-object/ufo-spec#84).
425 - [varLib] Use ``vmtx`` to compute vertical phantom points; or ``hhea.ascent``
427 - [gvar/cvar] Sort XML element's min/value/max attributes in TupleVariation
429 - [varLib.plot] Added support for 2D plots with only 1 variation axis (#1522).
430 - [designspaceLib] Use axes maps when normalizing locations in
432 - [mutator] Set ``OVERLAP_SIMPLE`` and ``OVERLAP_COMPOUND`` glyf flags by
433 default in ``instantiateVariableFont``. Added ``--no-overlap`` cli option
435 - [subset] Fixed subsetting ``VVAR`` table (#1516, #1517).
437 option ``--retain-gids`` is used.
438 - [feaLib] Added ``forceChained`` in MultipleSubstStatement (#1511).
443 - [varLib] In ``load_designspace``, provide a default English name for the
445 - Remove pyftinspect because it is unmaintained and bitrotted.
447 3.38.0 (released 2019-02-18)
448 ----------------------------
450 - [cffLib] Fixed RecursionError when unpickling or deepcopying TTFont with
452 - [subset] Fixed AttributeError when using --desubroutinize option (#1490).
454 - [CPAL] Make Color a subclass of namedtuple (173a0f5).
455 - [feaLib] Allow hyphen in glyph class names.
456 - [feaLib] Added 'tables' option to __main__.py (#1497).
457 - [feaLib] Add support for special-case contextual positioning formatting
459 - [svgLib] Support converting SVG basic shapes (rect, circle, etc.) into
461 - [Snippets] Added name-viewer.ipynb Jupyter notebook.
464 3.37.3 (released 2019-02-05)
465 ----------------------------
467 - The previous release accidentally changed several files from Unix to DOS
468 line-endings. Fix that.
470 3.37.2 (released 2019-02-05)
471 ----------------------------
473 - [varLib] Temporarily revert the fix to ``load_masters()``, which caused a
474 crash in ``interpolate_layout()`` when ``deepcopy``-ing OTFs.
476 3.37.1 (released 2019-02-05)
477 ----------------------------
479 - [varLib] ``load_masters()`` now actually assigns the fonts it loads to the
481 - [varLib] Fixed an MVAR table generation crash when sparse masters were
483 - [voltLib] ``parse_coverage_()`` returns a tuple instead of an ast.Enum.
484 - [feaLib] A MarkClassDefinition inside a block is no longer doubly indented
487 3.37.0 (released 2019-01-28)
488 ----------------------------
490 - [svgLib] Added support for converting elliptical arcs to cubic bezier curves
492 - [py23] Added backport for ``math.isfinite``.
493 - [varLib] Apply HIDDEN flag to fvar axis if designspace axis has attribute
495 - Fixed "DeprecationWarning: invalid escape sequence" in Python 3.7.
496 - [voltLib] Fixed parsing glyph groups. Distinguish different PROCESS_MARKS.
498 - [feaLib] Distinguish missing value and explicit ``<NULL>`` for PairPos2
499 format A (#1459). Round-trip ``useExtension`` keyword. Implemented
501 - [subset] Insert empty widths into hdmx when retaining gids (#1458).
503 3.36.0 (released 2019-01-17)
504 ----------------------------
506 - [ttx] Added ``--no-recalc-timestamp`` option to keep the original font's
508 - [ttx/psCharStrings] Fixed issues while dumping and round-tripping CFF2 table
510 - [voltLib] Fixed check for duplicate anchors (#1450). Don't try to read past
512 - [varLib] Use sentinel value -0x8000 (-32768) to ignore post.underlineThickness
515 - [subset] Added ``--retain-gids`` option to subset font without modifying the
517 - [ufoLib] Replace deprecated calls to ``getbytes`` and ``setbytes`` with new
519 - [varLib] Allow loading masters from TTX files as well (#1441).
521 3.35.2 (released 2019-01-14)
522 ----------------------------
524 - [hmtx/vmtx]: Allow to compile/decompile ``hmtx`` and ``vmtx`` tables even
527 - [varLib] Added support for localized axes' ``labelname`` and named instances'
530 3.35.1 (released 2019-01-09)
531 ----------------------------
533 - [_m_a_x_p] Include ``maxComponentElements`` in ``maxp`` table's recalculation.
535 3.35.0 (released 2019-01-07)
536 ----------------------------
538 - [psCharStrings] In ``encodeFloat`` function, use float's "general format" with
543 - [_n_a_m_e/fontBuilder] Make ``_n_a_m_e_table.addMultilingualName`` also add
547 - [varLib] Make ``build`` optionally accept a ``DesignSpaceDocument`` object,
551 - [sfnt] Allow SFNTReader objects to be deep-copied.
552 - Require typing>=3.6.4 on py27 to fix issue with singledispatch (#1423).
553 - [designspaceLib/t1Lib/macRes] Fixed some cases where pathlib.Path objects were
555 - [varLib] Fixed merging of multiple PairPosFormat2 subtables (#1411).
556 - [varLib] The default STAT table version is now set to 1.1, to improve
559 3.34.2 (released 2018-12-17)
560 ----------------------------
562 - [merge] Fixed AssertionError when none of the script tables in GPOS/GSUB have
565 3.34.1 (released 2018-12-17)
566 ----------------------------
568 - [varLib] Work around macOS rendering issue for composites without gvar entry (#1381).
570 3.34.0 (released 2018-12-14)
571 ----------------------------
573 - [varLib] Support generation of CFF2 variable fonts. ``model.reorderMasters()``
576 - [cffLib, subset] Code clean-up and fixing related to CFF2 support.
577 - [ttLib.tables.ttProgram] Use raw strings for regex patterns (#1389).
578 - [fontbuilder] Initial support for building CFF2 fonts. Set CFF's
580 - [plistLib] Accept the more general ``collections.Mapping`` instead of the
584 3.33.0 (released 2018-11-30)
585 ----------------------------
586 - [subset] subsetter bug fix with variable fonts.
587 - [varLib.featureVar] Improve FeatureVariations generation with many rules.
588 - [varLib] Enable sparse masters when building variable fonts:
589 https://github.com/fonttools/fonttools/pull/1368#issuecomment-437257368
590 - [varLib.mutator] Add IDEF for GETVARIATION opcode, for handling hints in an
592 - [ttLib] Ignore the length of kern table subtable format 0
594 3.32.0 (released 2018-11-01)
595 ----------------------------
597 - [ufoLib] Make ``UFOWriter`` a subclass of ``UFOReader``, and use mixins
599 - [featureVars] Fixed normalization error when a condition's minimum/maximum
601 - [setup.py] Added ``[plot]`` to extras, to optionally install ``matplotlib``,
603 - [varLib] Take total bounding box into account when resolving model (7ee81c8).
605 - [subset] Don't error if ``STAT`` has no ``AxisValue`` tables.
606 - [fontBuilder] Added a new submodule which contains a ``FontBuilder`` wrapper
611 3.31.0 (released 2018-10-21)
612 ----------------------------
614 - [ufoLib] Merged the `ufoLib <https://github.com/unified-font-objects/ufoLib>`__
622 - [morx] Support AAT action type to insert glyphs and clean up compilation
623 of AAT action tables (4a1871f, 2011ccf).
624 - [subset] The ``--no-hinting`` on a CFF font now also drops the optional
627 - [subset] Include nameIDs referenced by STAT table (#1327).
628 - [loggingTools] Added ``msg=None`` argument to
630 - [varLib.mutator] Implemented ``FeatureVariations`` instantiation (#1244).
631 - [g_l_y_f] Added PointPen support to ``_TTGlyph`` objects (#1334).
633 3.30.0 (released 2018-09-18)
634 ----------------------------
636 - [feaLib] Skip building noop class PairPos subtables when Coverage is NULL
638 - [ttx] Expose the previously reserved bit flag ``OVERLAP_SIMPLE`` of
640 implementations to specify a non-zero fill with overlapping contours (#1316).
641 - [ttLib] Added support for decompiling/compiling ``TS1C`` tables containing
643 - [varLib] Use ``fontTools.designspaceLib`` to read DesignSpaceDocument. The
647 - [varLib] Implemented building GSUB FeatureVariations table from the ``rules``
649 - [subset] Added ``--no-layout-closure`` option to not expand the subset with
651 will be subset to only rules that are relevant to the otherwise-specified
654 3.29.1 (released 2018-09-10)
655 ----------------------------
657 - [feaLib] Fixed issue whereby lookups from DFLT/dflt were not included in the
658 DFLT/non-dflt language systems (#1307).
659 - [graphite] Fixed issue on big-endian architectures (e.g. ppc64) (#1311).
660 - [subset] Added ``--layout-scripts`` option to add/exclude set of OpenType
664 3.29.0 (released 2018-07-26)
665 ----------------------------
667 - [feaLib] In the OTL table builder, when the ``name`` table is excluded
670 - [otBase] Try ``ExtensionLookup`` if other offset-overflow methods fail
672 - [feaLib] Added support for explicit ``subtable;`` break statements in
674 - [cffLib.specializer] Make sure the stack depth does not exceed maxstack - 1,
677 - [otTables] Added support for fixing offset overflow errors occurring inside
679 - [subset] Write the default output file extension based on ``--flavor`` option,
681 - [unicodedata] Updated Blocks, Scripts and ScriptExtensions for Unicode 11
683 - [xmlWriter] Added context manager to XMLWriter class to autoclose file
685 - [psCharStrings] Optimize the charstring's bytecode by encoding as integers
687 - [ttFont] Fixed missing import of ``TTLibError`` exception (#1285).
688 - [feaLib] Allow any languages other than ``dflt`` under ``DFLT`` script
691 3.28.0 (released 2018-06-19)
692 ----------------------------
694 - [featureVars] Added experimental module to build ``FeatureVariations``
696 - [fixedTools] Added ``otRound`` to round floats to nearest integer towards
700 - [subset] Improved GSUB closure memoize algorithm.
701 - [varLib.models] Fixed regression in model resolution (180124, #1269).
702 - [feaLib.ast] Fixed error when converting ``SubtableStatement`` to string
704 - [varLib.mutator] Set ``OS/2.usWeightClass`` and ``usWidthClass``, and
707 - [py23/loggingTools] Don't automatically set ``logging.lastResort`` handler
710 3.27.1 (released 2018-06-11)
711 ----------------------------
713 - [ttGlyphPen] Issue a warning and skip building non-existing components
715 - [tests] Fixed issue running ttx_test.py from a tagged commit.
717 3.27.0 (released 2018-06-11)
718 ----------------------------
720 - [designspaceLib] Added new ``conditionSet`` element to ``rule`` element in
726 - [cffLib] Fixed issues when compiling CFF2 or converting from CFF when the
728 - [varLib] Avoid attempting to build ``cvar`` table when ``glyf`` table is not
729 present, as is the case for CFF2 fonts.
730 - [subset] Handle None coverages in MarkGlyphSets; revert commit 02616ab that
732 - [ttFont] Allow to build glyph order from ``maxp.numGlyphs`` when ``post`` or
734 - [ttFont] Added ``__len__`` method to ``_TTGlyphSet``.
735 - [glyf] Ensure ``GlyphCoordinates`` never overflow signed shorts (#1230).
736 - [py23] Added alias for ``itertools.izip`` shadowing the built-in ``zip``.
737 - [loggingTools] Memoize ``log`` property of ``LogMixin`` class (fbab12).
738 - [ttx] Impoved test coverage (#1261).
739 - [Snippets] Addded script to append a suffix to all family names in a font.
740 - [varLib.plot] Make it work with matplotlib >= 2.1 (b38e2b).
742 3.26.0 (released 2018-05-03)
743 ----------------------------
745 - [designspace] Added a new optional ``layer`` attribute to the source element,
750 - [varLib.models] Refine modeling one last time (0ecf5c5).
751 - [otBase] Fixed sharing of tables referred to by different offset sizes
753 - [subset] Don't drop a GDEF that only has VarStore (fc819d6). Set to None
755 - [varLib]: Added ``--master-finder`` command-line option (#1249).
756 - [varLib.mutator] Prune fvar nameIDs from instance's name table (#1245).
757 - [otTables] Allow decompiling bad ClassDef tables with invalid format, with
759 - [varLib] Make STAT v1.2 and reuse nameIDs from fvar table (#1242).
760 - [varLib.plot] Show master locations. Set axis limits to -1, +1.
761 - [subset] Handle HVAR direct mapping. Passthrough 'cvar'.
762 Added ``--font-number`` command-line option for collections.
763 - [t1Lib] Allow a text encoding to be specified when parsing a Type 1 font
765 - [ttLib] Added context manager API to ``TTFont`` class, so it can be used in
766 ``with`` statements to auto-close the file when exiting the context (#1232).
768 3.25.0 (released 2018-04-03)
769 ----------------------------
771 - [varLib] Improved support-resolution algorithm. Previously, the on-axis
777 - [varLib.models] Added a ``main()`` entry point, that takes positions and
779 - [varLib.plot] Added new module to plot a designspace's
781 - [varLib.mutator] Added -o option to specify output file path (2ef60fa).
782 - [otTables] Fixed IndexError while pruning of HVAR pre-write (6b6c34a).
783 - [varLib.models] Convert delta array to floats if values overflows signed
786 3.24.2 (released 2018-03-26)
787 ----------------------------
789 - [otBase] Don't fail during ``ValueRecord`` copy if src has more items.
795 3.24.1 (released 2018-03-06)
796 ----------------------------
798 - [varLib] Don't remap the same ``DeviceTable`` twice in VarStore optimizer
800 - [varLib] Add ``--disable-iup`` option to ``fonttools varLib`` script,
803 - [ttCollection] Fixed issue while decompiling ttc with python3 (#1207).
805 3.24.0 (released 2018-03-01)
806 ----------------------------
808 - [ttGlyphPen] Decompose composite glyphs if any components' transform is too
812 - [ttx] Added new ``-g`` option to dump glyphs from the ``glyf`` table
814 - Copied ``ufoLib.filenames`` module to ``fontTools.misc.filenames``, used
815 for the ttx split-glyphs option (#1202).
816 - [feaLib] Added support for ``cvParameters`` blocks in Character Variant
817 feautures ``cv01-cv99`` (#860, #1169).
818 - [Snippets] Added ``checksum.py`` script to generate/check SHA1 hash of
820 - [varLib.mutator] Fixed issue while instantiating some variable fonts
823 - [varLib/subset] Fixed issue with subsetting GPOS variation data not
825 - [feaLib/voltLib] In all AST elements, the ``location`` is no longer a
831 3.23.0 (released 2018-02-26)
832 ----------------------------
834 - [designspaceLib] Added an optional ``lib`` element to the designspace as a
838 in-memory font objects (#1175).
839 - [cffLib] Fixed issue with lazy-loading of attributes when attempting to
841 - [ttx] Fixed regression introduced in 3.22.0 that affected the split tables
842 ``-s`` option (#1188).
843 - [feaLib] Added ``IncludedFeaNotFound`` custom exception subclass, raised
845 - [otTables] Changed ``VarIdxMap`` to use glyph names internally instead of
848 - [varLib] Implemented VarStore optimizer (#1184).
849 - [subset] Implemented pruning of GDEF VarStore, HVAR and MVAR (#1179).
850 - [sfnt] Restore backward compatiblity with ``numFonts`` attribute of
852 - [merge] Initial support for merging ``LangSysRecords`` (#1180).
853 - [ttCollection] don't seek(0) when writing to possibly unseekable strems.
854 - [subset] Keep all ``--name-IDs`` from 0 to 6 by default (#1170, #605, #114).
855 - [cffLib] Added ``width`` module to calculate optimal CFF default and
857 - [varLib] Don’t fail if STAT already in the master fonts (#1166).
859 3.22.0 (released 2018-02-04)
860 ----------------------------
862 - [subset] Support subsetting ``endchar`` acting as ``seac``-like components
864 - [feaLib] Allow to build from pre-parsed ``ast.FeatureFile`` object.
867 - [textTools] Replaced ``safeEval`` with ``ast.literal_eval`` (#1139).
868 - [feaLib] Added option to the parser to not resolve ``include`` statements
870 - [ttLib] Added new ``ttCollection`` module to read/write TrueType and
871 OpenType Collections. Exports a ``TTCollection`` class with a ``fonts``
873 and ``saveXML``, plus some list-like methods. The ``importXML`` method is
875 - [unicodeadata] Added ``ot_tag_to_script`` function that converts from
877 - Added new ``designspaceLib`` subpackage, originally from Erik Van Blokland's
881 - Added new FontTools icon images (8ee7c32).
882 - [unicodedata] Added ``script_horizontal_direction`` function that returns
884 - [otConverters] Don't write descriptive name string as XML comment if the
886 - [unicodedata] Add ``ot_tags_from_script`` function to get the list of
888 - [feaLib] Don't error when "enumerated" kern pairs conflict with preceding
890 - [loggingTools] In ``CapturingLogHandler.assertRegex`` method, match the
892 - [sbix] Fixed TypeError when concatenating str and bytes (#1154).
893 - [bezierTools] Implemented cusp support and removed ``approximate_fallback``
896 3.21.2 (released 2018-01-08)
897 ----------------------------
899 - [varLib] Fixed merging PairPos Format1/2 with missing subtables (#1125).
901 3.21.1 (released 2018-01-03)
902 ----------------------------
904 - [feaLib] Allow mixed single/multiple substitutions (#612)
905 - Added missing ``*.afm`` test assets to MAINFEST.in (#1137).
906 - Fixed dumping ``SVG`` tables containing color palettes (#1124).
908 3.21.0 (released 2017-12-18)
909 ----------------------------
911 - [cmap] when compiling format6 subtable, don't assume gid0 is always called
913 - [ot] Allow decompiling fonts with bad Coverage format number (1aafae8).
914 - Change FontTools licence to MIT (#1127).
915 - [post] Prune extra names already in standard Mac set (df1e8c7).
916 - [subset] Delete empty SubrsIndex after subsetting (#994, #1118).
917 - [varLib] Don't share points in cvar by default, as it currently fails on
919 - [afmLib] Make poor old afmLib work on python3.
921 3.20.1 (released 2017-11-22)
922 ----------------------------
924 - [unicodedata] Fixed issue with ``script`` and ``script_extension`` functions
925 returning inconsistent short vs long names. They both return the short four-
927 to look up the long human-readable script name from the script code, and
930 3.20.0 (released 2017-11-21)
931 ----------------------------
933 - [unicodedata] Addded new module ``fontTools.unicodedata`` which exports the
934 same interface as the built-in ``unicodedata`` module, with the addition of
939 - [feaLib] Added ``__str__`` method to all ``ast`` elements (delegates to the
941 - [feaLib] ``Parser`` constructor now accepts a ``glyphNames`` iterable
944 - [bezierTools] Added arc length calculation functions originally from
946 - [varLib] Started generating STAT table (8af4309). Right now it just reflects
949 * Name-table entries are not shared with fvar.
950 - [py23] Added backports for ``redirect_stdout`` and ``redirect_stderr``
952 - [Graphite] Fixed some round-trip bugs (#1093).
954 3.19.0 (released 2017-11-06)
955 ----------------------------
957 - [varLib] Try set of used points instead of all points when testing whether to
959 - [CFF2] Fixed issue with reading/writing PrivateDict BlueValues to TTX file.
965 - [_k_e_r_n] Fixed compilation of AAT kern version=1.0 tables (#1089, #1094)
966 - [ttLib] Added getBestCmap() convenience method to TTFont class and cmap table
969 - [morx] Emit more meaningful subtable flags. Implement InsertionMorphAction
971 3.18.0 (released 2017-10-30)
972 ----------------------------
974 - [feaLib] Fixed writing back nested glyph classes (#1086).
975 - [TupleVariation] Reactivated shared points logic, bugfixes (#1009).
976 - [AAT] Implemented ``morx`` ligature subtables (#1082).
977 - [reverseContourPen] Keep duplicate lineTo following a moveTo (#1080,
979 - [varLib.mutator] Suport instantiation of GPOS, GDEF and MVAR (#1079).
980 - [sstruct] Fixed issue with ``unicode_literals`` and ``struct`` module in
983 3.17.0 (released 2017-10-16)
984 ----------------------------
986 - [svgPathPen] Added an ``SVGPathPen`` that translates segment pen commands
989 - [reverseContourPen] Added ``ReverseContourPen``, a filter pen that draws
992 - [filterPen] Added ``ContourFilterPen`` to manipulate contours as a whole
994 - [arrayTools] Added ``Vector`` class to apply math operations on an array
997 - [varLib] Added support for building and interpolation of ``cvar`` table
1000 3.16.0 (released 2017-10-03)
1001 ----------------------------
1003 - [head] Try using ``SOURCE_DATE_EPOCH`` environment variable when setting
1005 See https://reproducible-builds.org/specs/source-date-epoch/
1006 - [VTT] Decode VTT's ``TSI*`` tables text as UTF-8 (#1060).
1007 - Added support for Graphite font tables: Feat, Glat, Gloc, Silf and Sill.
1009 - [varLib] Default to using axis "name" attribute if "labelname" element
1011 - [merge] Added support for merging Script records. Remove unused features
1013 - Added ``fontTools.svgLib`` package. Includes a parser for SVG Paths that
1016 - [AAT] Added support for ``ankr``, ``bsln``, ``mort``, ``morx``, ``gcid``,
1018 - [subset] Implemented subsetting of ``prop``, ``opbd``, ``bsln``, ``lcar``.
1020 3.15.1 (released 2017-08-18)
1021 ----------------------------
1023 - [otConverters] Implemented ``__add__`` and ``__radd__`` methods on
1027 (6ef48bd2, 1aef1683).
1028 - [AAT] Support the `opbd` table with optical bounds (a47f6588).
1029 - [AAT] Support `prop` table with glyph properties (d05617b4).
1032 3.15.0 (released 2017-08-17)
1033 ----------------------------
1035 - [AAT] Added support for AAT lookups. The ``lcar`` table can be decompiled
1037 - [subset] Keep (empty) DefaultLangSys for Script 'DFLT' (6eb807b5).
1038 - [subset] Support GSUB/GPOS.FeatureVariations (fe01d87b).
1039 - [varLib] In ``models.supportScalars``, ignore an axis when its peak value
1041 - [varLib] Add default mappings to all axes in avar to fix rendering issue
1043 - [varLib] Flatten multiple tail PairPosFormat2 subtables before merging
1045 - [ttLib] Added support for recalculating font bounding box in ``CFF`` and
1048 3.14.0 (released 2017-07-31)
1049 ----------------------------
1051 - [varLib.merger] Remove Extensions subtables before merging (f7c20cf8).
1052 - [varLib] Initialize the avar segment map with required default entries
1054 - [varLib] Implemented optimal IUP optmiziation (#1019).
1055 - [otData] Add ``AxisValueFormat4`` for STAT table v1.2 from OT v1.8.2
1057 - [name] Fixed BCP46 language tag for Mac langID=9: 'si' -> 'sl'.
1058 - [subset] Return value from ``_DehintingT2Decompiler.op_hintmask``
1060 - [cffLib] Allow to get TopDict by index as well as by name (dca96c9c).
1061 - [cffLib] Removed global ``isCFF2`` state; use one set of classes for
1063 - [cffLib] Deprecated maxstack operator, per OpenType spec update 1.8.1.
1064 - [cffLib] Added missing default (-100) for UnderlinePosition (#983).
1065 - [feaLib] Enable setting nameIDs greater than 255 (#1003).
1066 - [varLib] Recalculate ValueFormat when merging SinglePos (#996).
1067 - [varLib] Do not emit MVAR if there are no entries in the variation store
1069 - [ttx] For ``-x`` option, pad with space if table tag length is < 4.
1071 3.13.1 (released 2017-05-30)
1072 ----------------------------
1074 - [feaLib.builder] Removed duplicate lookups optimization. The original
1077 3.13.0 (released 2017-05-24)
1078 ----------------------------
1080 - [varLib.mutator] Implement IUP optimization (#969).
1081 - [_g_l_y_f.GlyphCoordinates] Changed ``__bool__()`` semantics to match those
1083 - [varLib.interpolate_layout] Added ``mapped`` keyword argument to
1088 - [varLib.interpolate_layout] Import designspace-loading logic from varLib.
1089 - [varLib] Fixed bug with recombining PairPosClass2 subtables (81498e5, #914).
1090 - [cffLib.specializer] When copying iterables, cast to list (462b7f86).
1092 3.12.1 (released 2017-05-18)
1093 ----------------------------
1095 - [pens.t2CharStringPen] Fixed AttributeError when calling addComponent in
1098 3.12.0 (released 2017-05-17)
1099 ----------------------------
1101 - [cffLib.specializer] Added new ``specializer`` module to optimize CFF
1103 - [varLib.mutator] Sort glyphs by component depth before calculating composite
1105 - [_g_l_y_f] Fixed loss of precision in GlyphCoordinates by using 'd' (double)
1108 3.11.0 (released 2017-05-03)
1109 ----------------------------
1111 - [t2CharStringPen] Initial support for specialized Type2 path operators:
1114 - [Doc] Added Sphinx sources for the documentation. Thanks @gferreira (#935).
1115 - [fvar] Expose flags in XML (#932)
1116 - [name] Add helper function for building multi-lingual names (#921)
1117 - [varLib] Fixed kern merging when a PairPosFormat2 has ClassDef1 with glyphs
1119 - [varLib] Fixed non-deterministic ClassDef order with PY3 (f056c12, #927).
1120 - [feLib] Throw an error when the same glyph is defined in multiple mark
1123 3.10.0 (released 2017-04-14)
1124 ----------------------------
1126 - [varLib] Added support for building ``avar`` table, using the designspace
1128 - [varLib] Removed unused ``build(..., axisMap)`` argument. Axis map should
1131 - [varLib] Removed "custom" axis from the ``standard_axis_map``. This was
1133 - [varLib] Added partial support for building ``MVAR`` table; does not
1135 - [pens] Added FilterPen base class, for pens that control another pen;
1139 - [TSI1] Fixed computation of the textLength of VTT private tables (#913).
1140 - [loggingTools] Added ``LogMixin`` class providing a ``log`` property to
1142 - [loggingTools] Added ``assertRegex`` method to ``CapturingLogHandler``.
1143 - [py23] Added backport for python 3's ``types.SimpleNamespace`` class.
1144 - [EBLC] Fixed issue with python 3 ``zip`` iterator.
1146 3.9.2 (released 2017-04-08)
1147 ---------------------------
1149 - [pens] Added pen to draw glyphs using WxPython ``GraphicsPath`` class:
1150 https://wxpython.org/docs/api/wx.GraphicsPath-class.html
1151 - [varLib.merger] Fixed issue with recombining multiple PairPosFormat2
1153 - [varLib] Do not encode gvar deltas that are all zeroes, or if all values
1155 - [ttLib] _TTGlyphSet glyphs now also have ``height`` and ``tsb`` (top
1157 - [glyf] In ``GlyphCoordintes`` class, added ``__bool__`` / ``__nonzero__``
1159 - [ttx] Support reading TTX files with BOM (#896)
1160 - [CFF2] Fixed the reporting of the number of regions in the font.
1162 3.9.1 (released 2017-03-20)
1163 ---------------------------
1165 - [varLib.merger] Fixed issue while recombining multiple PairPosFormat2
1167 - [varLib.merger] Only merge multiple PairPosFormat1 subtables if there is
1168 at least one of the fonts with a non-empty Format1 subtable (0f5a46b).
1169 - [varLib.merger] Fixed IndexError with empty ClassDef1 in PairPosFormat2
1171 - [varLib.merger] Avoid reusing Class2Record (mutable) objects (e6125b3).
1172 - [varLib.merger] Calculate ClassDef1 and ClassDef2's Format when merging
1174 - [macUtils] Added missing ttLib import (b05f203).
1176 3.9.0 (released 2017-03-13)
1177 ---------------------------
1179 - [feaLib] Added (partial) support for parsing feature file comments ``# ...``
1181 - [feaLib] Cleaned up syntax tree for FeatureNames.
1182 - [ttLib] Added support for reading/writing ``CFF2`` table (thanks to
1184 - [varLib] Fixed regression introduced with 3.8.0 in the calculation of
1186 that use a 16-bit representation (b2825ff).
1188 3.8.0 (released 2017-03-05)
1189 ---------------------------
1191 - New pens: MomentsPen, StatisticsPen, RecordingPen, and TeePen.
1192 - [misc] Added new ``fontTools.misc.symfont`` module, for symbolic font
1194 - [varLib] Added experimental ``fontTools.varLib.interpolatable`` module for
1196 - [varLib] designspace.load() now returns a dictionary, instead of a tuple,
1199 - [ttLib] Fixed issue with recalculating ``head`` modified timestamp when
1200 saving CFF fonts
1201 - [ttLib] In TupleVariation, round deltas before compiling (#861, fixed #592)
1202 - [feaLib] Ignore duplicate glyphs in classes used as MarkFilteringSet and
1204 - [merge] Changed the ``gasp`` table merge logic so that only the one from
1206 - [Tests] Added tests for the ``varLib`` package, as well as test fonts
1208 table readers/writers (<https://github.com/adobe-type-tools/aots>)
1210 3.7.2 (released 2017-02-17)
1211 ---------------------------
1213 - [subset] Keep advance widths when stripping ".notdef" glyph outline in
1214 CID-keyed CFF fonts (#845)
1215 - [feaLib] Zero values now produce the same results as makeotf (#633, #848)
1216 - [feaLib] More compact encoding for “Contextual positioning with in-line
1219 3.7.1 (released 2017-02-15)
1220 ---------------------------
1222 - [subset] Fixed issue with ``--no-hinting`` option whereby advance widths in
1224 - [feaLib] include statements now resolve relative paths like makeotf (#838)
1225 - [feaLib] table ``name`` now handles Unicode codepoints beyond the Basic
1226 Multilingual Plane, also supports old-style MacOS platform encodings (#842)
1227 - [feaLib] correctly escape string literals when emitting feature syntax (#780)
1229 3.7.0 (released 2017-02-11)
1230 ---------------------------
1232 - [ttx, mtiLib] Preserve ordering of glyph alternates in GSUB type 3 (#833).
1233 - [feaLib] Glyph names can have dashes, as per new AFDKO syntax v1.20 (#559).
1234 - [feaLib] feaLib.Parser now needs the font's glyph map for parsing.
1235 - [varLib] Fix regression where GPOS values were stored as 0.
1236 - [varLib] Allow merging of class-based kerning when ClassDefs are different
1238 3.6.3 (released 2017-02-06)
1239 ---------------------------
1241 - [varLib] Fix building variation of PairPosFormat2 (b5c34ce).
1242 - Populate defaults even for otTables that have postRead (e45297b).
1243 - Fix compiling of MultipleSubstFormat1 with zero 'out' glyphs (b887860).
1245 3.6.2 (released 2017-01-30)
1246 ---------------------------
1248 - [varLib.merger] Fixed "TypeError: reduce() of empty sequence with no
1251 3.6.1 (released 2017-01-28)
1252 ---------------------------
1254 - [py23] Fixed unhandled exception occurring at interpreter shutdown in
1256 - [agl] Ensure all glyph names are of native 'str' type; avoid mixing
1258 - Fixed inconsistent title levels in README.rst that caused PyPI to
1261 3.6.0 (released 2017-01-26)
1262 ---------------------------
1264 - [varLib] Refactored and improved the variation-font-building process.
1265 - Assembly code in the fpgm, prep, and glyf tables is now indented in
1268 - [ttx] Fixed 'I/O operation on closed file' error when dumping
1269 multiple TTXs to standard output with the '-o -' option.
1270 - The unit test modules (``*_test.py``) have been moved outside of the
1274 3.5.0 (released 2017-01-14)
1275 ---------------------------
1277 - Font tables read from XML can now be written back to XML with no
1279 - GSUB/GPOS LookupType is written out in XML as an element, not
1281 - When parsing cmap table, do not store items mapped to glyph id 0.
1283 - [otlLib] Make ClassDef sorting deterministic. Fixes #766 (7d1ddb2)
1284 - [mtiLib] Added unit tests (#787)
1285 - [cvar] Implemented cvar table
1286 - [gvar] Renamed GlyphVariation to TupleVariation to match OpenType
1288 - [otTables] Handle gracefully empty VarData.Item array when compiling
1290 - [varLib] Re-enabled generation of ``HVAR`` table for fonts with
1291 TrueType outlines; removed ``--build-HVAR`` command-line option.
1292 - [feaLib] The parser can now be extended to support non-standard
1296 - [feaLib] Added ``feaLib`` command to the 'fonttools' command-line
1297 tool; applies a feature file to a font. ``fonttools feaLib -h`` for
1299 - [pens] The ``T2CharStringPen`` now takes an optional
1302 - [ci] Measure test coverage on all supported python versions and OSes,
1305 - [ci] Configured Travis and Appveyor for running tests on Python 3.6
1307 - The manual pages installation directory can be customized through
1309 - [Snippets] Added otf2ttf.py, for converting fonts from CFF to
1312 3.4.0 (released 2016-12-21)
1313 ---------------------------
1315 - [feaLib] Added support for generating FEA text from abstract syntax
1317 - Added ``agl.toUnicode`` function to convert AGL-compliant glyph names
1319 - Implemented MVAR table (b4d5381)
1321 3.3.1 (released 2016-12-15)
1322 ---------------------------
1324 - [setup] We no longer use versioneer.py to compute fonttools version
1329 3.3.0 (released 2016-12-06)
1330 ---------------------------
1332 - [ttLib] Implemented STAT table from OpenType 1.8 (#758)
1333 - [cffLib] Fixed decompilation of CFF fonts containing non-standard
1335 - [py23] minor: in ``round3`` function, allow the second argument to be
1337 - The standalone ``sstruct`` and ``xmlWriter`` modules, deprecated
1341 3.2.3 (released 2016-12-02)
1342 ---------------------------
1344 - [py23] optimized performance of round3 function; added backport for
1346 - [subset] fixed issue with 'narrow' (UCS-2) Python 2 builds and
1347 ``--text``/``--text-file`` options containing non-BMP chararcters
1349 - [varLib] fixed issuewhen normalizing location values (8fa2ee1, #749)
1350 - [inspect] Made it compatible with both python2 and python3 (167ee60,
1353 3.2.2 (released 2016-11-24)
1354 ---------------------------
1356 - [varLib] Do not emit null axes in fvar (1bebcec). Thanks @robmck-ms
1357 - [varLib] Handle fonts without GPOS (7915a45)
1358 - [merge] Ignore LangSys if None (a11bc56)
1359 - [subset] Fix subsetting MathVariants (78d3cbe)
1360 - [OS/2] Fix "Private Use (plane 15)" range (08a0d55). Thanks @mashabow
1362 3.2.1 (released 2016-11-03)
1363 ---------------------------
1365 - [OS/2] fix checking ``fsSelection`` bits matching ``head.macStyle``
1367 - [varLib] added ``--build-HVAR`` option to generate ``HVAR`` table for
1368 fonts with TrueType outlines. For ``CFF2``, it is enabled by default.
1370 3.2.0 (released 2016-11-02)
1371 ---------------------------
1373 - [varLib] Improve support for OpenType 1.8 Variable Fonts:
1374 - Implement GDEF's VariationStore
1375 - Implement HVAR/VVAR tables
1376 - Partial support for loading MutatorMath .designspace files with
1378 - Add varLib.models with Variation fonts interpolation models
1379 - Implement GSUB/GPOS FeatureVariations
1380 - Initial support for interpolating and merging OpenType Layout tables
1382 - [API change] Change version to be an integer instead of a float in
1387 - several bug fixes to the cffLib module, contributed by Adobe's
1389 - The XML output for CFF table now has a 'major' and 'minor' elements
1392 - [setup.py] remove undocumented/deprecated ``extra_path`` Distutils
1394 in site-packages containing the actual fontTools package, as well as
1399 - [scripts] Add a 'fonttools' command-line tool that simply runs
1400 ``fontTools.*`` sub-modules: e.g. ``fonttools ttx``,
1402 - [hmtx/vmts] Read advance width/heights as unsigned short (uint16);
1404 - [ttLib/xmlWriter] add 'newlinestr=None' keyword argument to
1405 ``TTFont.saveXML`` for overriding os-specific line endings (passed on
1407 - [versioning] Use versioneer instead of ``setuptools_scm`` to
1409 - [feaLib] Support backslash-prefixed glyph names.
1411 3.1.2 (released 2016-09-27)
1412 ---------------------------
1414 - restore Makefile as an alternative way to build/check/install
1415 - README.md: update instructions for installing package from source,
1417 - NEWS: Change log was out of sync with tagged release
1419 3.1.1 (released 2016-09-27)
1420 ---------------------------
1422 - Fix ``ttLibVersion`` attribute in TTX files still showing '3.0'
1424 - Use ``setuptools_scm`` to manage package versions.
1426 3.1.0 (released 2016-09-26)
1427 ---------------------------
1429 - [feaLib] New library to parse and compile Adobe FDK OpenType Feature
1431 - [mtiLib] New library to parse and compile Monotype 'FontDame'
1433 - [voltLib] New library to parse Microsoft VOLT project files.
1434 - [otlLib] New library to work with OpenType Layout tables.
1435 - [varLib] New library to work with OpenType Font Variations.
1436 - [pens] Add ttGlyphPen to draw to TrueType glyphs, and t2CharStringPen
1438 - [ttLib.tables] Implement 'meta' and 'trak' tables.
1439 - [ttx] Add --flavor option for compiling to 'woff' or 'woff2'; add
1440 ``--with-zopfli`` option to use Zopfli to compress WOFF 1.0 fonts.
1441 - [subset] Support subsetting 'COLR'/'CPAL' and 'CBDT'/'CBLC' color
1442 fonts tables, and 'gvar' table for variation fonts.
1443 - [Snippets] Add ``symfont.py``, for symbolic font statistics analysis;
1446 - [classifyTools] Helpers to classify things into classes.
1447 - [CI] Run tests on Windows, Linux and macOS using Appveyor and Travis
1450 - [loggingTools] Use Python built-in logging module to print messages.
1451 - [py23] Make round() behave like Python 3 built-in round(); define
1454 3.0 (released 2015-09-01)
1455 -------------------------
1457 - Add Snippet scripts for cmap subtable format conversion, printing
1459 - TTX WOFF2 support and a ``-f`` option to overwrite output file(s)
1460 - Support GX tables: ``avar``, ``gvar``, ``fvar``, ``meta``
1461 - Support ``feat`` and gzip-compressed SVG tables
1462 - Upgrade Mac East Asian encodings to native implementation if
1464 - Add Roman Croatian and Romanian encodings, codecs for mac-extended
1466 - Implement optimal GLYF glyph outline packing; disabled by default
1468 2.5 (released 2014-09-24)
1469 -------------------------
1471 - Add a Qt pen
1472 - Add VDMX table converter
1473 - Load all OpenType sub-structures lazily
1474 - Add support for cmap format 13.
1475 - Add pyftmerge tool
1476 - Update to Unicode 6.3.0d3
1477 - Add pyftinspect tool
1478 - Add support for Google CBLC/CBDT color bitmaps, standard EBLC/EBDT
1480 - Add support for loading, saving and ttx'ing WOFF file format
1481 - Add support for Microsoft COLR/CPAL layered color glyphs
1482 - Support PyPy
1483 - Support Jython, by replacing numpy with array/lists modules and
1484 removed it, pure-Python StringIO, not cStringIO
1485 - Add pyftsubset and Subsetter object, supporting CFF and TTF
1486 - Add to ttx args for -q for quiet mode, -z to choose a bitmap dump
1489 2.4 (released 2013-06-22)
1490 -------------------------
1492 - Option to write to arbitrary files
1493 - Better dump format for DSIG
1494 - Better detection of OTF XML
1495 - Fix issue with Apple's kern table format
1496 - Fix mangling of TT glyph programs
1497 - Fix issues related to mona.ttf
1498 - Fix Windows Installer instructions
1499 - Fix some modern MacOS issues
1500 - Fix minor issues and typos
1502 2.3 (released 2009-11-08)
1503 -------------------------
1505 - TrueType Collection (TTC) support
1506 - Python 2.6 support
1507 - Update Unicode data to 5.2.0
1508 - Couple of bug fixes
1510 2.2 (released 2008-05-18)
1511 -------------------------
1513 - ClearType support
1514 - cmap format 1 support
1515 - PFA font support
1516 - Switched from Numeric to numpy
1517 - Update Unicode data to 5.1.0
1518 - Update AGLFN data to 1.6
1519 - Many bug fixes
1521 2.1 (released 2008-01-28)
1522 -------------------------
1524 - Many years worth of fixes and features
1526 2.0b2 (released 2002-??-??)
1527 ---------------------------
1529 - Be "forgiving" when interpreting the maxp table version field:
1531 GPL fonts: http://www.freebsd.org/cgi/pds.cgi?ports/chinese/wangttf
1532 - Fixed ttx -l: it turned out this part of the code didn't work with
1534 different version than I shipped TTX with :-(
1535 - Fixed bug in ClassDef format 1 subtable (Andreas Seidel bumped into
1538 2.0b1 (released 2002-09-10)
1539 ---------------------------
1541 - Fixed embarrassing bug: the master checksum in the head table is now
1542 calculated correctly even on little-endian platforms (such as Intel).
1543 - Made the cmap format 4 compiler smarter: the binary data it creates
1546 - Dump glyph names as a separate "GlyphOrder" pseudo table as opposed
1547 to as part of the glyf table (obviously needed for CFF-OTF's).
1548 - Added proper support for the CFF table.
1549 - Don't barf on empty tables (questionable, but "there are font out
1551 - When writing TT glyf data, align glyphs on 4-byte boundaries. This
1553 fonts which are already 4-byte aligned.
1554 - Windows installer contributed bu Adam Twardoch! Yay!
1555 - Changed the command line interface again, now by creating one new
1558 - The -d option is back (output dir)
1559 - ttcompile's -i options is now called -m (as in "merge"), to avoid
1560 clash with dump's -i.
1561 - The -s option ("split tables") no longer creates a directory, but
1566 - compile no longer accepts a directory as input argument. Instead it
1567 can parse the new "mini-ttx" format as output by "ttx -s".
1568 - all arguments are input files
1569 - Renamed the command line programs and moved them to the Tools
1571 - Added OpenType support. BASE, GDEF, GPOS, GSUB and JSTF are (almost)
1573 considering to output certain subtables in a more human-friendly
1575 - Fixed 'kern' table to correctly accept subtables it doesn't know
1578 - Fixed bug where glyphnames were not calculated from 'cmap' if it was
1580 cmap was the first to ask for a glyphID -> glyphName mapping.
1581 - Switched XML parsers: use expat instead of xmlproc. Should be faster.
1582 - Removed my UnicodeString object: I now require Python 2.0 or up,
1584 - Removed assert in glyf table: redundant data at the end of the table
1586 - Fixed bug in hmtx/vmtx code that only occured if all advances were
1588 - Fixed subtle bug in TT instruction disassembler.
1589 - Couple of fixes to the 'post' table.
1590 - Updated OS/2 table to latest spec.
1592 1.0b1 (released 2001-08-10)
1593 ---------------------------
1595 - Reorganized the command line interface for ttDump.py and
1598 - ttDump.py and ttCompile.py don't silently override files anymore, but
1599 ask before doing so. Can be overridden by -f.
1600 - Added -d option to both ttDump.py and ttCompile.py.
1601 - Installation is now done with distutils. (Needs work for environments
1603 - Updated installation instructions.
1604 - Added some workarounds so as to handle certain buggy fonts more
1606 - Updated Unicode table to Unicode 3.0 (Thanks Antoine!)
1607 - Included a Python script by Adam Twardoch that adds some useful stuff
1609 - Moved the project to SourceForge.
1611 1.0a6 (released 2000-03-15)
1612 ---------------------------
1614 - Big reorganization: made ttLib a subpackage of the new fontTools
1617 - Added several submodules to fontTools, some new, some older.
1618 - Added experimental CFF/GPOS/GSUB support to ttLib, read-only (but XML
1620 - Fixed hdmx endian bug
1621 - Added -b option to ttCompile.py, it disables recalculation of
1623 - Renamed tt2xml.pt to ttDump.py and xml2tt.py to ttCompile.py
1624 - Use ".ttx" as file extension instead of ".xml".
1625 - TTX is now the name of the XML-based *format* for TT fonts, and not
1629 -----
1633 - More tables supported: hdmx, vhea, vmtx
1636 -------------
1640 - fixed most portability issues
1641 - retracted the "Euro_or_currency" change from 1.0a2: it was
1644 1.0a2 (released 1999-05-02)
1645 ---------------------------
1647 - binary release for MacOS
1648 - genenates full FOND resources: including width table, PS font name
1650 - added cmap format 4 support. Extra: dumps Unicode char names as XML
1652 - added cmap format 6 support
1653 - now accepts true type files starting with "true" (instead of just
1655 - 'glyf' table support is now complete: I added support for composite
1656 scale, xy-scale and two-by-two for the 'glyf' table. For now,
1657 component offset scale behaviour defaults to Apple-style. This only
1659 - changed "Euro" to "Euro_or_currency" in the Standard Apple Glyph
1664 Fixed bugs: - 'hhea' table is now recalculated correctly - fixed wrong
1667 1.0a1 (released 1999-04-27)
1668 ---------------------------
1670 - initial binary release for MacOS
1673 Classifier: Development Status :: 5 - Production/Stable
1684 Classifier: Topic :: Text Processing :: Fonts
1687 Provides-Extra: symfont
1688 Provides-Extra: type1
1689 Provides-Extra: lxml
1690 Provides-Extra: ufo
1691 Provides-Extra: interpolatable
1692 Provides-Extra: all
1693 Provides-Extra: woff
1694 Provides-Extra: plot
1695 Provides-Extra: unicode
1696 Provides-Extra: graphite