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

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

Branch: CURRENT, Version: 4.25.2, Package name: py39-fonttools-4.25.2, 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:

RMD160: e79aae90eaf97161e9d0b22044642e448cd5fcaf
Filesize: 4352.592 KB

Version history: (Expand)

CVS history: (Expand)

   2021-10-07 16:05:29 by Nia Alarie | Files touched by this commit (864)
Log message:
fonts: Remove SHA1 hashes for distfiles
   2021-07-30 14:55:42 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.25.2

4.25.2 (released 2021-07-26)
- [COLRv1] Various changes to sync with the latest CORLv1 draft spec. In particular:
  define COLR.VarIndexMap, remove/inline ColorIndex struct, add VarIndexBase to \ 
``PaintVar*`` tables
  add reduced-precicion specialized transform Paints;
  define Angle as fraction of half circle encoded as F2Dot14;
  use FWORD (int16) for all Paint center coordinates;
  change PaintTransform to have an offset to Affine2x3;
- [ttLib] when importing XML, only set sfntVersion if the font has no reader and \ 
is empty

4.25.1 (released 2021-07-16)
- [ttGlyphPen] Fixed bug in ``TTGlyphPointPen``, whereby open contours (i.e. starting
  with segmentType "move") would throw ``NotImplementedError``. They \ 
are now treated
  as if they are closed, like with the ``TTGlyphPen``

4.25.0 (released 2021-07-05)
- [tfmLib] Added new library for parsing TeX Font Metric (TFM) files
- [TupleVariation] Make shared tuples order deterministic on python < 3.7 where
  Counter (subclass of dict) doesn't remember insertion order
- [otData] Renamed COLRv1 structs to remove 'v1' suffix and match the updated draft
  spec: 'LayerV1List' -> 'LayerList', 'BaseGlyphV1List' -> 'BaseGlyphList',
  'BaseGlyphV1Record' -> 'BaseGlyphPaintRecord'
  Added 8 new ``PaintScale*`` tables: with/without centers, uniform vs non-uniform.
  Added ``*AroundCenter`` variants to ``PaintRotate`` and ``PaintSkew``: the default
  versions no longer have centerX/Y, but default to origin.
  ``PaintRotate``, ``PaintSkew`` and ``PaintComposite`` formats were re-numbered.
  NOTE: these are breaking changes; clients using the experimental COLRv1 API will
  have to be updated
- [pointPens] Allow ``GuessSmoothPointPen`` to accept a tolerance. Fixed call to
  ``math.atan2`` with x/y parameters inverted. Sync the code with fontPens
- [post] Fixed parsing ``post`` table format 2.0 when it contains extra garbage
  at the end of the stringData array
- [subset] drop empty features unless 'size' with FeatureParams table
- [otlLib] Added ``otlLib.optimize`` module; added GPOS compaction algorithm.
  The compaction can be run on existing fonts with ``fonttools otlLib.optimize``
  or using the snippet ``compact_gpos.py``. There's experimental support for
  compacting fonts at compilation time using an environment variable, but that
  might be removed later
   2021-06-01 07:29:23 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.24.4

4.24.4 (released 2021-05-25)

- [subset/instancer] Fixed ``AttributeError`` when instantiating a VF that
  contains GPOS ValueRecords with ``Device`` tables but without the respective
  non-Device values (e.g. ``XAdvDevice`` without ``XAdvance``). When not
  explicitly set, the latter are assumed to be 0.

4.24.3 (released 2021-05-20)

- [otTables] Fixed ``AttributeError`` in methods that split LigatureSubst,
  MultipleSubst and AlternateSubst subtables when an offset overflow occurs.
  The ``Format`` attribute was removed in v4.22.0.

4.24.2 (released 2021-05-20)

- [ttGlyphPen] Fixed typing annotation of TTGlyphPen glyphSet parameter.
- Fixed two instances of DeprecationWarning: invalid escape sequence.

4.24.1 (released 2021-05-20)

- [subset] Fixed AttributeError when SinglePos subtable has None Value \ 
(ValueFormat 0)

4.24.0 (released 2021-05-17)

- [pens] Add ``ttGlyphPen.TTGlyphPointPen`` similar to ``TTGlyphPen``.

4.23.1 (released 2021-05-14)

- [subset] Fix ``KeyError`` after subsetting ``COLR`` table that initially contains
  both v0 and v1 color glyphs when the subset only requested v1 glyphs; we were
  not pruning the v0 portion of the table.
- [colorLib] Set ``LayerV1List`` attribute to ``None`` when empty, it's optional
  in CORLv1.

4.23.0 (released 2021-05-13)

- [designspaceLib] Allow to use ``\\UNC`` absolute paths on Windows.
- [varLib.merger] Fixed bug where ``VarLibMergeError`` was raised with incorrect
- [feaLib] Allow substituting a glyph class with ``NULL`` to delete multiple glyphs
- [glyf] Fixed ``NameError`` exception in ``getPhantomPoints``.
- [removeOverlaps] Retry pathops.simplify after rounding path coordinates to integers
  if it fails the first time using floats, to work around a rare and hard to debug
  Skia bug.
- [varLib] Added support for building, reading, writing and optimizing 32-bit
  ``ItemVariationStore`` as used in COLRv1 table.
- [otBase/otConverters] Add array readers/writers for int types.
- [feaLib] Allow more than one lookahead glyph/class in contextual positioning with
  "value at end".
- [COLRv1] Default varIdx should be 0xFFFFFFFF.
- [pens] Make RecordingPointPen actually pass on identifiers; replace asserts with
  explicit ``PenError`` exception.
- [mutator] Round lsb for CF2 fonts as well.

4.22.1 (released 2021-04-26)

- [feaLib] Skip references to named lookups if the lookup block definition
  is empty, similarly to makeotf. This also fixes an ``AttributeError`` while
  generating ``aalt`` feature.
- [subset] Fixed bug with ``--no-hinting`` implementation for Device tables.
  The previous code was alwyas dropping Device tables if no-hinting was
  requested, but some Device tables (DeltaFormat=0x8000) are also used to encode
  variation indices and need to be retained.
- [otBase] Fixed bug in getting the ValueRecordSize when decompiling ``MVAR``
  table with ``lazy=True``.
- [varLib/glyf/gvar] Optimized and simplified ``GlyphCoordinates`` and
  ``TupleVariation`` classes, use ``bytearray`` where possible, refactored
  phantom-points calculations. We measured about 30% speedup in total time
  of loading master ttfs, building gvar, and saving.
- [subset] Fixed ``AssertionError`` while pruning unused CPAL palettes when
  ``0xFFFF`` is present.

4.22.0 (released 2021-04-01)

- [ttLib] Remove .Format from Coverage, ClassDef, SingleSubst, LigatureSubst,
  AlternateSubst, MultipleSubst.
  ATTENTION: This will change your TTX dumps!
- [misc.arrayTools] move Vector to its own submodule, and rewrite as a tuple
- [docs] Added a terminology section for varLib.
- [varLib] Move rounding to VariationModel, to avoid error accumulation from
  multiple deltas
- [varLib] Explain merge errors in more human-friendly terms
- [otlLib] Correct some documentation
- [varLib/otlLib] Allow merging into VariationFont without first saving GPOS
- [subset] Improve PairPosFormat2 subsetting
- [ttLib] TTFont.save: create file on disk as late as possible
- [cffLib] Add missing CFF2 dict operators LanguageGroup and ExpansionFactor
  ATTENTION: This will change your TTX dumps!
   2021-03-20 10:32:43 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.21.1

4.21.1 (released 2021-02-26)

[pens] Reverted breaking change that turned AbstractPen and AbstractPointPen \ 
into abstract base classes.

4.21.0 (released 2021-02-26)

[feaLib] Indent anchor statements in asFea() to make them more legible and diff-able.
[pens] Turn AbstractPen and AbstractPointPen into abstract base classes.
[feaLib] Added support for parsing and building STAT table from AFDKO feature files.
[instancer] Added option to update name table of generated instance using STAT \ 
table's axis values.
[bezierTools] Added functions to compute bezier point-at-time, as well as \ 
line-line, curve-line and curve-curve intersections.

4.20.0 (released 2021-02-15)

[COLRv1] Added unbuildColrV1 to deconstruct COLRv1 otTables to raw json-able \ 
data structure; it does the reverse of buildColrV1.
[feaLib] Allow sub X by NULL sequence to delete a glyph.
[arrayTools] Fixed Vector division.
[COLRv1] Define new PaintSweepGradient.
[otTables] Moved Paint.Format enum class outside of Paint class definition, now \ 
named PaintFormat. It was clashing with paint instance Format attribute and thus \ 
was breaking lazy load of COLR table which relies on magic __getattr__.
[COLRv1] Replace hand-coded builder functions with otData-driven dynamic \ 
[COLRv1] Define additional static (non-variable) Paint formats.
[subset] Added support for subsetting COLR v1 and CPAL tables.
[fontBuilder] Allow setupFvar to optionally take designspaceLib.AxisDescriptor \ 
objects. Added new setupAvar method. Support localised names for axes and named \ 

4.19.1 (released 2021-01-28)

[woff2] An initial off-curve point with an overlap flag now stays an off-curve \ 
point after compression.

4.19.0 (released 2021-01-25)

[codecs] Handle errors parameter different from 'strict' for the custom extended \ 
mac encodings.
[featureVars] Raise better error message when a script is missing the required \ 
default language system.
[COLRv1] Avoid abrupt change caused by rounding PaintRadialGradient.c0 when the \ 
start circle almost touches the end circle's perimeter.
[COLRv1] Support building unlimited lists of paints as 255-ary trees of \ 
PaintColrLayers tables.
[subset] Prune redundant format-12 cmap subtables when all non-BMP characters \ 
are dropped.
[basePen] Raise MissingComponentError instead of bare KeyError when a referenced \ 
component is missing
   2021-01-24 21:29:04 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.18.2

4.18.2 (released 2020-12-16)
- [COLRv1] Implemented ``PaintTranslate`` paint format.
- [varLib.cff] Fixed unbound local variable error.
- [otlLib] Don't crash when creating OpenType class definitions if some glyphs
  occur more than once.

4.18.1 (released 2020-12-09)
- [colorLib] Speed optimization for ``LayerV1ListBuilder``.
- [mutator] Fixed missing tab in ``interpolate_cff2_metrics`` (0957dc7a).

4.18.0 (released 2020-12-04)
- [COLRv1] Update to latest draft: added ``PaintRotate`` and ``PaintSkew``.
- [woff2] Support new ``brotlicffi`` bindings for PyPy.
- [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.
- [subset] Allow ``LangSys`` tags in ``--layout-scripts`` option. 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
- [pens] Added ``QuartzPen`` to create ``CGPath`` from glyph outlines on macOS.
  Requires pyobjc.
- [feaLib] You can export ``FONTTOOLS_LOOKUP_DEBUGGING=1`` to enable feature file
  debugging info stored in ``Debg`` table.
- [otlLib] Build more efficient format 1 and format 2 contextual lookups whenever
   2020-12-06 10:58:49 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: update to 4.17.1.

4.17.1 (released 2020-11-16)

- [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).

4.17.0 (released 2020-11-12)

- [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).
- [varLib] Interpret empty non-default glyphs as 'missing', if the default glyph is
  not empty (#2082).
- [feaLib.builder] Only stash lookup location for ``Debg`` if \ 
  has cooperated (#2065, #2067).
- [varLib] Fixed bug in VarStore optimizer (#2073, #2083).
- [varLib] Add designspace lib key for custom feavar feature tag (#2080).
- Add HashPointPen adapted from psautohint. With this pen, a hash value of a glyph
  can be computed, which can later be used to detect glyph changes (#2005).

4.16.1 (released 2020-10-05)

- [varLib.instancer] Fixed ``TypeError`` exception when instantiating a VF with
  a GSUB table 1.1 in which ``FeatureVariations`` attribute is present but set to
  ``None`` -- indicating that optional ``FeatureVariations`` is missing (#2077).
- [glifLib] Make ``x`` and ``y`` attributes of the ``point`` element required
  even when validation is turned off, and raise a meaningful ``GlifLibError``
  message when that happens (#2075).

4.16.0 (released 2020-09-30)

- [removeOverlaps] Added new module and ``removeOverlaps`` function that merges
  overlapping contours and components in TrueType glyphs. It requires the
  `skia-pathops <https://github.com/fonttools/skia-pathops>`__ module.
  Note that removing overlaps invalidates the TrueType hinting (#2068).
- [varLib.instancer] Added ``--remove-overlaps`` command-line option.
  The ``overlap`` option in ``instantiateVariableFont`` now takes an ``OverlapMode``
  enum: 0: KEEP_AND_DONT_SET_FLAGS, 1: KEEP_AND_SET_FLAGS (default), and 2: REMOVE.
  The latter is equivalent to calling ``removeOverlaps`` on the generated static
  instance. The option continues to accept ``bool`` value for backward compatibility.

4.15.0 (released 2020-09-21)

- [plistlib] Added typing annotations to plistlib module. Set up mypy static
  typechecker to run automatically on CI (#2061).
- [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict.
- [feaLib] Optionally add an entry into the ``Debg`` table with the original
  lookup name (if any), feature name / script / language combination (if any),
  and original source filename and line location. Annotate the ttx output for
  a lookup with the information from the Debg table (#2052).
- [sfnt] Disabled checksum checking by default in ``SFNTReader`` (#2058).
- [Docs] Document ``mtiLib`` module (#2027).
- [varLib.interpolatable] Added checks for contour node count and operation type
  of each node (#2054).
- [ttLib] Added API to register custom table packer/unpacker classes (#2055).
   2020-09-10 12:28:12 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-fonttools: updated to 4.14.0

- [feaLib] Allow anonymous classes in LookupFlags definitions.
- [Docs] Better document DesignSpace rules processing order.
- [ttLib] Fixed 21-year old bug in ``maxp.maxComponentDepth`` calculation.
- [varLib.models] Fixed misspelled argument name in CLI entry point (81d0042a).
- [subset] When subsetting GSUB v1.1, fixed TypeError by checking whether the
  optional FeatureVariations table is present (e63ecc5b).
- [Snippets] Added snippet to show how to decompose glyphs in a TTF.
- [otlLib] Generate GSUB type 5 and GPOS type 7 contextual lookups where appropriate.
   2020-08-04 21:06:42 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-fonttools: updated to 4.13.0

- [feaLib/otlLib] Moved lookup subtable builders from feaLib to otlLib; refactored
  some common code
- [docs] Document otlLib module
- [glifLib] Fixed bug with some UFO .glif filenames clashing on case-insensitive
- [colorLib] Updated COLRv1 implementation following changes in the draft spec