unified-font-object / ufoLib

A low-level UFO reader and writer.
Other
37 stars 19 forks source link

Scheduled weekly dependency update for week 23 #148

Closed pyup-bot closed 6 years ago

pyup-bot commented 6 years ago

Update fonttools from 3.13.1 to 3.27.0.

Changelog ### 3.27.0 ``` ---------------------------- - [designspaceLib] Added new ``conditionSet`` element to ``rule`` element in designspace document. Bumped ``format`` attribute to ``4.0`` (previously, it was formatted as an integer). Removed ``checkDefault``, ``checkAxes`` methods, and any kind of guessing about the axes when the ``<axes>`` element is missing. The default master is expected at the intersection of all default values for each axis (1254, 1255, 1267). - [cffLib] Fixed issues when compiling CFF2 or converting from CFF when the font has an FDArray (1211, 1271). - [varLib] Avoid attempting to build ``cvar`` table when ``glyf`` table is not present, as is the case for CFF2 fonts. - [subset] Handle None coverages in MarkGlyphSets; revert commit 02616ab that sets empty Coverage tables in MarkGlyphSets to None, to make OTS happy. - [ttFont] Allow to build glyph order from ``maxp.numGlyphs`` when ``post`` or ``cmap`` are missing. - [ttFont] Added ``__len__`` method to ``_TTGlyphSet``. - [glyf] Ensure ``GlyphCoordinates`` never overflow signed shorts (1230). - [py23] Added alias for ``itertools.izip`` shadowing the built-in ``zip``. - [loggingTools] Memoize ``log`` property of ``LogMixin`` class (fbab12). - [ttx] Impoved test coverage (1261). - [Snippets] Addded script to append a suffix to all family names in a font. - [varLib.plot] Make it work with matplotlib >= 2.1 (b38e2b). ``` ### 3.26.0 ``` ---------------------------- - [designspace] Added a new optional ``layer`` attribute to the source element, and a corresponding ``layerName`` attribute to the ``SourceDescriptor`` object (1253). Added ``conditionset`` element to the ``rule`` element to the spec, but not implemented in designspace reader/writer yet (1254). - [varLib.models] Refine modeling one last time (0ecf5c5). - [otBase] Fixed sharing of tables referred to by different offset sizes (795f2f9). - [subset] Don't drop a GDEF that only has VarStore (fc819d6). Set to None empty Coverage tables in MarkGlyphSets (02616ab). - [varLib]: Added ``--master-finder`` command-line option (1249). - [varLib.mutator] Prune fvar nameIDs from instance's name table (1245). - [otTables] Allow decompiling bad ClassDef tables with invalid format, with warning (1236). - [varLib] Make STAT v1.2 and reuse nameIDs from fvar table (1242). - [varLib.plot] Show master locations. Set axis limits to -1, +1. - [subset] Handle HVAR direct mapping. Passthrough 'cvar'. Added ``--font-number`` command-line option for collections. - [t1Lib] Allow a text encoding to be specified when parsing a Type 1 font (1234). Added ``kind`` argument to T1Font constructor (c5c161c). - [ttLib] Added context manager API to ``TTFont`` class, so it can be used in ``with`` statements to auto-close the file when exiting the context (1232). ``` ### 3.25.0 ``` ---------------------------- - [varLib] Improved support-resolution algorithm. Previously, the on-axis masters would always cut the space. They don't anymore. That's more consistent, and fixes the main issue Erik showed at TYPO Labs 2017. Any varfont built that had an unusual master configuration will change when rebuilt (42bef17, a523a697, https://github.com/googlei18n/fontmake/issues/264). - [varLib.models] Added a ``main()`` entry point, that takes positions and prints model results. - [varLib.plot] Added new module to plot a designspace's VariationModel. Requires ``matplotlib``. - [varLib.mutator] Added -o option to specify output file path (2ef60fa). - [otTables] Fixed IndexError while pruning of HVAR pre-write (6b6c34a). - [varLib.models] Convert delta array to floats if values overflows signed short integer (0055f94). ``` ### 3.24.2 ``` ---------------------------- - [otBase] Don't fail during ``ValueRecord`` copy if src has more items. We drop hinting in the subsetter by simply changing ValueFormat, without cleaning up the actual ValueRecords. This was causing assertion error if a variable font was subsetted without hinting and then passed directly to the mutator for instantiation without first it saving to disk. ``` ### 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). ``` ### 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). ``` ### 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). ``` ### 3.22.0 ``` ---------------------------- - [subset] Support subsetting ``endchar`` acting as ``seac``-like components in ``CFF`` (fixes 1162). - [feaLib] Allow to build from pre-parsed ``ast.FeatureFile`` object. Added ``tables`` argument to only build some tables instead of all (1159, 1163). - [textTools] Replaced ``safeEval`` with ``ast.literal_eval`` (1139). - [feaLib] Added option to the parser to not resolve ``include`` statements (1154). - [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 (17). - [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 (911, 1110, LettError/designSpaceDocument28). - Added new FontTools icon images (8ee7c32). - [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) (1151, 1152). - [unicodedata] Add ``ot_tags_from_script`` function to get the list of OpenType script tags associated with unicode script code (1150). - [feaLib] Don't error when "enumerated" kern pairs conflict with preceding single pairs; emit warning and chose the first value (1147, 1148). - [loggingTools] In ``CapturingLogHandler.assertRegex`` method, match the fully formatted log message. - [sbix] Fixed TypeError when concatenating str and bytes (1154). - [bezierTools] Implemented cusp support and removed ``approximate_fallback`` arg in ``calcQuadraticArcLength``. Added ``calcCubicArcLength`` (1142). ``` ### 3.21.2 ``` ---------------------------- - [varLib] Fixed merging PairPos Format1/2 with missing subtables (1125). ``` ### 3.21.1 ``` ---------------------------- - [feaLib] Allow mixed single/multiple substitutions (612) - Added missing ``*.afm`` test assets to MAINFEST.in (1137). - Fixed dumping ``SVG`` tables containing color palettes (1124). ``` ### 3.21.0 ``` ---------------------------- - [cmap] when compiling format6 subtable, don't assume gid0 is always called '.notdef' (1e42224). - [ot] Allow decompiling fonts with bad Coverage format number (1aafae8). - Change FontTools licence to MIT (1127). - [post] Prune extra names already in standard Mac set (df1e8c7). - [subset] Delete empty SubrsIndex after subsetting (994, 1118). - [varLib] Don't share points in cvar by default, as it currently fails on some browsers (1113). - [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 (1109, 1111). ``` ### 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 (delegates to the ``asFea`` method). - [feaLib] ``Parser`` constructor now accepts a ``glyphNames`` iterable instead of ``glyphMap`` dict. The latter still works but with a pending deprecation warning (1104). - [bezierTools] Added arc length calculation functions originally from ``pens.perimeterPen`` module (1101). - [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 (1097). - [Graphite] Fixed some round-trip bugs (1093). ``` ### 3.19.0 ``` ---------------------------- - [varLib] Try set of used points instead of all points when testing whether to share points between tuples (1090). - [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 (1091). - [_k_e_r_n] Fixed compilation of AAT kern version=1.0 tables (1089, 1094) - [ttLib] Added getBestCmap() convenience method to TTFont class and cmap table class that returns a preferred Unicode cmap subtable given a list of options (1092). - [morx] Emit more meaningful subtable flags. Implement InsertionMorphAction ``` ### 3.18.0 ``` ---------------------------- - [feaLib] Fixed writing back nested glyph classes (1086). - [TupleVariation] Reactivated shared points logic, bugfixes (1009). - [AAT] Implemented ``morx`` ligature subtables (1082). - [reverseContourPen] Keep duplicate lineTo following a moveTo (1080, https://github.com/googlei18n/cu2qu/issues/51). - [varLib.mutator] Suport instantiation of GPOS, GDEF and MVAR (1079). - [sstruct] Fixed issue with ``unicode_literals`` and ``struct`` module in old versions of python 2.7 (993). ``` ### 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 (1071). - [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 (f874cf6, a25a401). ``` ### 3.16.0 ``` ---------------------------- - [head] Try using ``SOURCE_DATE_EPOCH`` environment variable when setting the ``head`` modified timestamp to ensure reproducible builds (1063). See https://reproducible-builds.org/specs/source-date-epoch/ - [VTT] Decode VTT's ``TSI*`` tables text as UTF-8 (1060). - Added support for Graphite font tables: Feat, Glat, Gloc, Silf and Sill. Thanks mhosken! (1054). - [varLib] Default to using axis "name" attribute if "labelname" element is missing (588f524). - [merge] Added support for merging Script records. Remove unused features and lookups after merge (d802580, 556508b). - Added ``fontTools.svgLib`` package. Includes a parser for SVG Paths that supports the Pen protocol (1051). Also, added a snippet to convert SVG outlines to UFO GLIF (1053). - [AAT] Added support for ``ankr``, ``bsln``, ``mort``, ``morx``, ``gcid``, and ``cidg``. - [subset] Implemented subsetting of ``prop``, ``opbd``, ``bsln``, ``lcar``. ``` ### 3.15.1 ``` ---------------------------- - [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). ``` ### 3.15.0 ``` ---------------------------- - [AAT] Added support for AAT lookups. The ``lcar`` table can be decompiled and recompiled; futher work needed to handle ``morx`` table (1025). - [subset] Keep (empty) DefaultLangSys for Script 'DFLT' (6eb807b5). - [subset] Support GSUB/GPOS.FeatureVariations (fe01d87b). - [varLib] In ``models.supportScalars``, ignore an axis when its peak value is 0 (fixes 1020). - [varLib] Add default mappings to all axes in avar to fix rendering issue in some rasterizers (19c4b377, 04eacf13). - [varLib] Flatten multiple tail PairPosFormat2 subtables before merging (c55ef525). - [ttLib] Added support for recalculating font bounding box in ``CFF`` and ``head`` tables, and min/max values in ``hhea`` and ``vhea`` tables (970). ``` ### 3.14.0 ``` ---------------------------- - [varLib.merger] Remove Extensions subtables before merging (f7c20cf8). - [varLib] Initialize the avar segment map with required default entries (1014). - [varLib] Implemented optimal IUP optmiziation (1019). - [otData] Add ``AxisValueFormat4`` for STAT table v1.2 from OT v1.8.2 (1015). - [name] Fixed BCP46 language tag for Mac langID=9: 'si' -> 'sl'. - [subset] Return value from ``_DehintingT2Decompiler.op_hintmask`` (c0d672ba). - [cffLib] Allow to get TopDict by index as well as by name (dca96c9c). - [cffLib] Removed global ``isCFF2`` state; use one set of classes for both CFF and CFF2, maintaining backward compatibility existing code (1007). - [cffLib] Deprecated maxstack operator, per OpenType spec update 1.8.1. - [cffLib] Added missing default (-100) for UnderlinePosition (983). - [feaLib] Enable setting nameIDs greater than 255 (1003). - [varLib] Recalculate ValueFormat when merging SinglePos (996). - [varLib] Do not emit MVAR if there are no entries in the variation store (987). - [ttx] For ``-x`` option, pad with space if table tag length is < 4. ```
Links - PyPI: https://pypi.org/project/fonttools - Changelog: https://pyup.io/changelogs/fonttools/ - Repo: http://github.com/fonttools/fonttools