./fonts/py-fonttools, Library for manipulating fonts

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 4.8.1, Package name: py37-fonttools-4.8.1, Maintainer: pkgsrc-users

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.

Required to run:
[textproc/py-expat] [devel/py-setuptools] [lang/python37]

Required to build:
[devel/py-cython] [pkgtools/cwrappers]

Master sites:

SHA1: 64d9dc4554fed341a42aaf9ddd5d6512537ef2b2
RMD160: e9e53ad569947f195c2c8638afbca9231bb64be4
Filesize: 3816.094 KB

Version history: (Expand)

CVS history: (Expand)

   2020-05-06 13:16:46 by Jonathan Perkin | Files touched by this commit (11)
Log message:
*: Remove manual page entries from ALTERNATIVES files.

Thes are not supported by pkg_alternatives, and lead to breakage as found
in <http://mail-index.netbsd.org/tech-pkg/2020/05/06/msg023089.html>.

In many cases these were unnecessary anyway, as they match the corresponding
command that pkg_alternatives will have automatically detected manual page
entries for, plus many of them did not support PKGMANDIR.

In the one case (databases/py-peewee) where the manual page does not match
the command name, pkg_alternatives will need to be enhanced to support this
before it can be re-enabled.
   2020-04-18 09:29:59 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-fonttools: updated to 4.8.1

4.8.1 (released 2020-04-17)
- [feaLib] Fixed ``AttributeError: 'NoneType' has no attribute 'getAlternateGlyphs'``
  when ``aalt`` feature references a chain contextual substitution lookup

4.8.0 (released 2020-04-16)
- [feaLib] If Parser is initialized without a ``glyphNames`` parameter, it cannot
  distinguish between a glyph name containing an hyphen, or a range of glyph names;
  instead of raising an error, it now interprets them as literal glyph names, while
  also outputting a logging warning to alert user about the ambiguity
- [feaLib] When serializing AST to string, emit spaces around hyphens that denote
  ranges. Also, fixed an issue with CID ranges when round-tripping \ 
- [Snippets/otf2ttf] In otf2ttf.py script update LSB in hmtx to match xMin
- [colorLib] Added experimental support for building ``COLR`` v1 tables as per
  the `colr-gradients-spec \ 
  draft proposal. **NOTE**: both the API and the XML dump of ``COLR`` v1 are
  susceptible to change while the proposal is being discussed and formalized
   2020-04-16 09:39:41 by Adam Ciarcinski | Files touched by this commit (2)
Log message:
py-fonttools: needs C compiler; fix PLIST; bump revision
   2020-04-11 09:21:37 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.7.0

- [cu2qu] Added ``fontTools.cu2qu`` package, imported from the original
  `cu2qu <https://github.com/googlefonts/cu2qu>`__ project. The \ 
``cu2qu.pens`` module
  was moved to ``fontTools.pens.cu2quPen``. The optional cu2qu extension module
  can be compiled by installing `Cython <https://cython.org/>` before \ 
  fonttools from source (i.e. git repo or sdist tarball). The wheel package that
  is published on PyPI (i.e. the one ``pip`` downloads, unless ``--no-binary``
  option is used), will continue to be pure-Python for now

- [varLib] Added support for building variable ``BASE`` table version 1.1
- [CPAL] Added ``fromRGBA`` method to ``Color`` class

- [designspaceLib] Added ``add{Axis,Source,Instance,Rule}Descriptor`` methods to
  ``DesignSpaceDocument`` class, to initialize new descriptor objects using keyword
  arguments, and at the same time append them to the current document
- [unicodedata] Update to Unicode 13.0

- [varLib] Always build ``gvar`` table for TrueType-flavored Variable Fonts,
  even if it contains no variation data. The table is required according to
  the OpenType spec

- [ttx] Annotate ``LookupFlag`` in XML dump with comment explaining what bits
  are set and what they mean
- [feaLib] Added more descriptive message to ``IncludedFeaNotFound`` error

- [woff2] Skip normalizing ``glyf`` and ``loca`` tables if these are missing from
  a font (e.g. in NotoColorEmoji using ``CBDT/CBLC`` tables).
- [timeTools] Use non-localized date parsing in ``timestampFromString``, to fix
  error when non-English ``LC_TIME`` locale is set
- [fontBuilder] Make sure the CFF table generated by fontBuilder can be used by \ 
  without having to compile and decompile the table first. This was breaking in
  converting the CFF table to CFF2 due to some unset attributes

- [colorLib] Added ``fontTools.colorLib.builder`` module, initially with \ 
  and ``buildCPAL`` public functions. More color font formats will follow
- [fontBuilder] Added ``setupCOLR`` and ``setupCPAL`` methods
- [ttGlyphPen] Quantize ``GlyphComponent.transform`` floats to ``F2Dot14`` to fix
  round-trip issue when computing bounding boxes of transformed components
- [glyf] If a component uses reference points (``firstPt`` and ``secondPt``) for
  alignment (instead of X and Y offsets), compute the effective translation offset
  *after* having applied any transform
- [glyf] When all glyphs have zero contours, compile ``glyf`` table data as a single
  null byte in order to pass validation by OTS and Windows
- [feaLib] Parsing feature code now ensures that referenced glyph names are part of
  the known glyph set, unless a glyph set was not provided.
- [varLib] When filling in the default axis value for a missing location of a \ 
source or
  instance, correctly map the value forward.
- [varLib] The avar table can now contain mapping output values that are greater than
  OR EQUAL to the preceeding value, as the avar specification allows this.
- [varLib] The errors of the module are now ordered hierarchically below VarLibError.

- [EBLC/CBLC] Fixed incorrect padding length calculation for Format 3 IndexSubTable
- [varLib] Fixed error when merging OTL tables and TTFonts were loaded as \ 
- [varLib] Allow to use master fonts containing ``CFF2`` table when building VF
- [ttLib] Make ``recalcBBoxes`` option work also with ``CFF2`` table
- [feaLib] Don't reset ``lookupflag`` in lookups defined inside feature blocks.
  They will now inherit the current ``lookupflag`` of the feature. This is what
  Adobe ``makeotf`` also does in this case
- [feaLib] Fixed bug with mixed single/multiple substitutions. If a single \ 
  involved a glyph class, we were incorrectly using only the first glyph in the class

- [feaLib] Do not fail on duplicate multiple substitutions, only warn
- [subset] Optimize SinglePos subtables to Format 1 if all ValueRecords are the same
   2020-01-26 10:24:15 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-fonttools: updated to 4.2.4

- [unicodedata] Update RTL_SCRIPTS for Unicode 11 and 12.

- [otTables] Fixed bug when splitting `MarkBasePos` subtables as offsets overflow.
  The mark class values in the split subtable were not being updated, leading to
  invalid mark-base attachments.
- [feaLib] Only log a warning instead of error when features contain duplicate
- [glifLib] Strip XML comments when parsing with lxml
   2019-12-14 11:35:17 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.2.2

- [subset] Fixed issue with subsetting FeatureVariations table when the index
  of features changes as features get dropped. The feature index need to be
  remapped to point to index of the remaining features.
- [fontBuilder] Added `addFeatureVariations` method to `FontBuilder` class. This
  is a shorthand for calling `featureVars.addFeatureVariations` on the builder's
  TTFont object.
- [glyf] Fixed the flags bug in glyph.drawPoints() like we did for glyph.draw()

- [glyf] Use the ``flagOnCurve`` bit mask in ``glyph.draw()``, so that we ignore
  the ``overlap`` flag that may be set when instantiating variable fonts.

- [pens] Added the following pens:

  * ``roundingPen.RoundingPen``: filter pen that rounds coordinates and components'
    offsets to integer;
  * ``roundingPen.RoundingPointPen``: like the above, but using PointPen protocol.
  * ``filterPen.FilterPointPen``: base class for filter point pens;
  * ``transformPen.TransformPointPen``: filter point pen to apply affine transform;
  * ``recordingPen.RecordingPointPen``: records and replays point-pen commands.

- [ttGlyphPen] Always round float coordinates and component offsets to integers
- [ufoLib] When converting kerning groups from UFO2 to UFO3, avoid confusing
  groups with the same name as one of the glyphs

- [instancer] Implemented restricting axis ranges (level 3 partial instancing).
  You can now pass ``{axis_tag: (min, max)}`` tuples as input to the
  ``instantiateVariableFont`` function. Note that changing the default axis
  position is not supported yet. The command-line script also accepts axis ranges
  in the form of colon-separated float values, e.g. ``wght=400:700``.
- [instancer] Never drop STAT ``DesignAxis`` records, but only prune out-of-range
  ``AxisValue`` records.
- [otBase/otTables] Enforce that VarStore.RegionAxisCount == fvar.axisCount, even
  when regions list is empty to appease OTS < v8.0.
- [designspaceLib] Defined new ``processing`` attribute for ``<rules>`` \ 
  with values "first" or "last", plus other editorial \ 
changes to DesignSpace
  specification. Bumped format version to 4.1.
- [varLib] Improved error message when masters' glyph orders do not match
- [featureVars] Allow to specify custom feature tag in ``addFeatureVariations``;
  allow said feature to already exist, in which case we append new lookup indices
  to existing features. Implemented ``<rules>`` attribute ``processing`` \ 
according to
  DesignSpace specification update in. Depending on this flag, we generate
  either an 'rvrn' (always processed first) or a 'rclt' feature (follows lookup \ 
  therefore last).
- [ttCollection] Added support for context manager auto-closing via ``with`` \ 
  like with ``TTFont``.
- [unicodedata] Require unicodedata2 >= 12.1.0.
- [py2.py3] Removed yet more PY2 vestiges.
- [_n_a_m_e] Fixed issue when comparing NameRecords with different string types.
- [fixedTools] Changed ``fixedToFloat`` to not do any rounding but simply return
  ``value / (1 << precisionBits)``. Added ``floatToFixedToStr`` and
  ``strToFixedToFloat`` functions to be used when loading from or dumping to XML.
  Fixed values (e.g. fvar axes and instance coordinates, avar mappings, etc.) are
  are now stored as un-rounded decimal floats upon decompiling.
- [feaLib] Fixed handling of multiple ``LigatureCaret`` statements for the same \ 
  Only the first rule per glyph is used, additional ones are ignored.

- [voltLib] Added support for ``ALL`` and ``NONE`` in ``PROCESS_MARKS``.
- [Silf] Fixed issue in ``Silf`` table compilation and decompilation regarding str vs
  bytes in python3.
- [merge] Handle duplicate glyph names better: instead of appending font index to
  all glyph names, use similar code like we use in ``post`` and ``CFF`` tables.

- [otTables] Support fixing offset overflows in ``MultipleSubst`` lookup subtables
- [subset] Prune empty strikes in ``EBDT`` and ``CBDT`` table data.
- [pens] Fixed issue in ``PointToSegmentPen`` when last point of closed contour has
  same coordinates as the starting point and was incorrectly dropped.
- [Graphite] Fixed ``Sill`` table output to pass OTS.
- [name] Added ``removeNames`` method to ``table__n_a_m_e`` class.
- [ttLib] Added aliases for renamed entries ``ascender`` and ``descender`` in
  ``hhea`` table.

- NOTE: The v4.x version series only supports Python 3.6 or greater. You can keep
  using fonttools 3.x if you need support for Python 2.
- [py23] Removed all the python2-only code since it is no longer reachable, thus
  unused; only the Python3 symbols were kept, but these are no-op. The module is now
  DEPRECATED and will removed in the future.
- [ttLib] Fixed UnboundLocalError for empty loca/glyph tables. Also, allow
  the glyf table to be incomplete when dumping to XML.
- [varLib.models] Fixed KeyError while sorting masters and there are no on-axis for
  a given axis (38a8eb0e).
- [cffLib] Make sure glyph names are unique.
- [feaLib] Fix feature parser to correctly handle octal numbers
   2019-07-04 14:09:08 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-fonttools: updated to 3.43.0

3.43.1 (released 2019-06-19)
- [subset] Fixed regression when passing --flavor=woff2 option with an input font
  that was already compressed as WOFF 1.0

3.43.0 (released 2019-06-18)
- [woff2] Added support for compressing/decompressing WOFF2 fonts with \ 
  glyf and loca tables, as well as with transformed hmtx table.
  Removed Snippets/woff2_compress.py and Snippets/woff2_decompress.py scripts,
  and replaced them with a new console entry point fonttools ttLib.woff2
  that provides two sub-commands compress and decompress.
- [varLib.cff] Fixed bug when merging CFF2 PrivateDicts. The PrivateDict
  data from the first region font was incorrecty used for all subsequent fonts.
  The bug would only affect variable CFF2 fonts with hinting
  Also, fixed a merging bug when VF masters have no blends or marking glyphs
- [loggingTools] Removed unused backport of LastResortLogger class.
- [subset] Gracefully handle partial MATH table
- [featureVars] Avoid duplicate references to rvrn feature record in
  DefaultLangSys tables when calling addFeatureVariations on a font that
  does not already have a GSUB table (aa8a5bc6).
- [varLib] Fixed merging of class-based kerning. Before, the process could introduce
  rogue kerning values and variations for random classes against class zero \ 
  not otherwise classed).
- [varLib] Fixed merging GPOS tables from master fonts with different number of
  SinglePos subtables
- [unicodedata] Updated Blocks, Scripts and ScriptExtensions to Unicode 12.1.

3.42.0 (released 2019-05-28)
- [OS/2] Fixed sign of fsType: it should be uint16, not int16
- [subset] Skip out-of-range class values in mark attachment
- [fontBuilder] Add an empty DSIG table with setupDummyDSIG method
- [varLib.merger] Fixed bug whereby GDEF.GlyphClassDef were being dropped
  when generating instance via varLib.mutator
- [varLib] Added command-line options -v and -q to configure logging
- [subset] Update font extents in head table
- [subset] Make --retain-gids truncate empty glyphs after the last non-empty glyph
- [requirements] Updated unicodedata2 backport for Unicode 12.0.

3.41.2 (released 2019-05-13)
- [cffLib] Fixed issue when importing a CFF2 variable font from XML, whereby
  the VarStore state was not propagated to PrivateDict
- [varLib] Don't drop post glyph names when building CFF2 variable font

3.41.1 (released 2019-05-13)
- [designspaceLib] Added loadSourceFonts method to load source fonts using
  custom opener function
- [head] Round font bounding box coordinates to integers to fix compile error
  if CFF font has float coordinates
- [feaLib] Don't write None in ast.ValueRecord.asFea()
- [subset] Fixed issue AssertionError when using --desubroutinize option
- [graphite] Fixed bug in Silf table's decompile method unmasked by
  previous typo fix
  decompile method
   2019-04-30 09:55:33 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 3.41.0

- [varLib/cffLib] Added support for building CFF2 variable font from sparse
  masters, or masters with more than one model (multiple VarStore.VarData).
  In cffLib.specializer, added support for CFF2 CharStrings with
  blend operators.
- [subset] Fixed subsetting HVAR and VVAR with --retain-gids option,
  and when advances mapping is null while sidebearings mappings are non-null
- Added otlLib.maxContextCalc module to compute OS/2.usMaxContext value.
  Calculate it automatically when compiling features with feaLib. Added option
  --recalc-max-context to subset module
- [otBase/otTables] Fixed AttributeError on missing OT table fields after
  importing font from TTX
- [Silf] Fixed typo Silf table's decompile method
- [otlLib] Better compress GPOS SinglePos (LookupType 1) subtables

- [subset] Fixed error while subsetting VVAR with --retain-gids
- [designspaceLib] Use up-to-date default location in findDefault method
- [voltLib] Allow passing file-like object to Parser.
- [arrayTools/glyf] calcIntBounds (used to compute bounding boxes of glyf
  table's glyphs) now uses otRound instead of round3
- [svgLib] Added support for converting more SVG shapes to path d strings
  (ellipse, line, polyline), as well as support for transform attributes.
  Only matrix transformations are currently supported
- [varLib] Added support for building VVAR table from vmtx and VORG
- [fontBuilder] Enable making CFF2 fonts with post table format 2
- Fixed DeprecationWarning on invalid escape sequences