fonttools 4.59.1__cp313-cp313-macosx_10_13_universal2.whl → 4.60.0__cp313-cp313-macosx_10_13_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fonttools might be problematic. Click here for more details.
- fontTools/__init__.py +1 -1
- fontTools/annotations.py +30 -0
- fontTools/cu2qu/cu2qu.c +1175 -962
- fontTools/cu2qu/cu2qu.cpython-313-darwin.so +0 -0
- fontTools/cu2qu/cu2qu.py +36 -4
- fontTools/feaLib/builder.py +9 -3
- fontTools/feaLib/lexer.c +8 -3
- fontTools/feaLib/lexer.cpython-313-darwin.so +0 -0
- fontTools/feaLib/parser.py +11 -1
- fontTools/feaLib/variableScalar.py +6 -1
- fontTools/misc/bezierTools.c +8 -3
- fontTools/misc/bezierTools.cpython-313-darwin.so +0 -0
- fontTools/misc/enumTools.py +23 -0
- fontTools/misc/textTools.py +4 -2
- fontTools/pens/filterPen.py +218 -26
- fontTools/pens/momentsPen.c +8 -3
- fontTools/pens/momentsPen.cpython-313-darwin.so +0 -0
- fontTools/pens/pointPen.py +40 -6
- fontTools/qu2cu/qu2cu.c +20 -7
- fontTools/qu2cu/qu2cu.cpython-313-darwin.so +0 -0
- fontTools/subset/__init__.py +1 -0
- fontTools/ttLib/tables/_a_v_a_r.py +4 -2
- fontTools/ttLib/tables/_n_a_m_e.py +11 -6
- fontTools/ttLib/tables/_p_o_s_t.py +5 -5
- fontTools/ufoLib/__init__.py +279 -176
- fontTools/ufoLib/converters.py +14 -5
- fontTools/ufoLib/filenames.py +16 -6
- fontTools/ufoLib/glifLib.py +286 -190
- fontTools/ufoLib/kerning.py +32 -12
- fontTools/ufoLib/utils.py +41 -13
- fontTools/ufoLib/validators.py +121 -97
- fontTools/varLib/__init__.py +80 -1
- fontTools/varLib/avar/__init__.py +0 -0
- fontTools/varLib/avar/__main__.py +72 -0
- fontTools/varLib/avar/build.py +79 -0
- fontTools/varLib/avar/map.py +108 -0
- fontTools/varLib/avar/plan.py +1004 -0
- fontTools/varLib/{avar.py → avar/unbuild.py} +70 -59
- fontTools/varLib/avarPlanner.py +3 -999
- fontTools/varLib/instancer/__init__.py +56 -18
- fontTools/varLib/interpolatableHelpers.py +3 -0
- fontTools/varLib/iup.c +14 -5
- fontTools/varLib/iup.cpython-313-darwin.so +0 -0
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/METADATA +43 -2
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/RECORD +51 -44
- {fonttools-4.59.1.data → fonttools-4.60.0.data}/data/share/man/man1/ttx.1 +0 -0
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/WHEEL +0 -0
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/entry_points.txt +0 -0
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/licenses/LICENSE +0 -0
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/licenses/LICENSE.external +0 -0
- {fonttools-4.59.1.dist-info → fonttools-4.60.0.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Partially instantiate a variable font.
|
|
2
2
|
|
|
3
3
|
The module exports an `instantiateVariableFont` function and CLI that allow to
|
|
4
4
|
create full instances (i.e. static fonts) from variable fonts, as well as "partial"
|
|
@@ -36,7 +36,7 @@ If the input location specifies all the axes, the resulting instance is no longe
|
|
|
36
36
|
'variable' (same as using fontools varLib.mutator):
|
|
37
37
|
.. code-block:: pycon
|
|
38
38
|
|
|
39
|
-
>>>
|
|
39
|
+
>>>
|
|
40
40
|
>> instance = instancer.instantiateVariableFont(
|
|
41
41
|
... varfont, {"wght": 700, "wdth": 67.5}
|
|
42
42
|
... )
|
|
@@ -56,8 +56,10 @@ From the console script, this is equivalent to passing `wght=drop` as input.
|
|
|
56
56
|
|
|
57
57
|
This module is similar to fontTools.varLib.mutator, which it's intended to supersede.
|
|
58
58
|
Note that, unlike varLib.mutator, when an axis is not mentioned in the input
|
|
59
|
-
location, the varLib.instancer will keep the axis and the corresponding
|
|
60
|
-
whereas mutator implicitly drops the axis at its default coordinate.
|
|
59
|
+
location, by default the varLib.instancer will keep the axis and the corresponding
|
|
60
|
+
deltas, whereas mutator implicitly drops the axis at its default coordinate.
|
|
61
|
+
To obtain the same behavior as mutator, pass the `static=True` parameter or
|
|
62
|
+
the `--static` CLI option.
|
|
61
63
|
|
|
62
64
|
The module supports all the following "levels" of instancing, which can of
|
|
63
65
|
course be combined:
|
|
@@ -72,7 +74,7 @@ L1
|
|
|
72
74
|
L2
|
|
73
75
|
dropping one or more axes while pinning them at non-default locations;
|
|
74
76
|
.. code-block:: pycon
|
|
75
|
-
|
|
77
|
+
|
|
76
78
|
>>>
|
|
77
79
|
>> font = instancer.instantiateVariableFont(varfont, {"wght": 700})
|
|
78
80
|
|
|
@@ -81,22 +83,18 @@ L3
|
|
|
81
83
|
a new minimum or maximum, potentially -- though not necessarily -- dropping
|
|
82
84
|
entire regions of variations that fall completely outside this new range.
|
|
83
85
|
.. code-block:: pycon
|
|
84
|
-
|
|
86
|
+
|
|
85
87
|
>>>
|
|
86
88
|
>> font = instancer.instantiateVariableFont(varfont, {"wght": (100, 300)})
|
|
87
89
|
|
|
88
90
|
L4
|
|
89
91
|
moving the default location of an axis, by specifying (min,defalt,max) values:
|
|
90
92
|
.. code-block:: pycon
|
|
91
|
-
|
|
93
|
+
|
|
92
94
|
>>>
|
|
93
95
|
>> font = instancer.instantiateVariableFont(varfont, {"wght": (100, 300, 700)})
|
|
94
96
|
|
|
95
|
-
|
|
96
|
-
are supported, but support for CFF2 variable fonts will be added soon.
|
|
97
|
-
|
|
98
|
-
The discussion and implementation of these features are tracked at
|
|
99
|
-
https://github.com/fonttools/fonttools/issues/1537
|
|
97
|
+
Both TrueType-flavored (glyf+gvar) variable and CFF2 variable fonts are supported.
|
|
100
98
|
"""
|
|
101
99
|
|
|
102
100
|
from fontTools.misc.fixedTools import (
|
|
@@ -435,7 +433,27 @@ class AxisLimits(_BaseAxisLimits):
|
|
|
435
433
|
|
|
436
434
|
avarSegments = {}
|
|
437
435
|
if usingAvar and "avar" in varfont:
|
|
438
|
-
|
|
436
|
+
avar = varfont["avar"]
|
|
437
|
+
avarSegments = avar.segments
|
|
438
|
+
|
|
439
|
+
if getattr(avar, "majorVersion", 1) >= 2 and avar.table.VarStore:
|
|
440
|
+
pinnedAxes = set(self.pinnedLocation())
|
|
441
|
+
if not pinnedAxes.issuperset(avarSegments):
|
|
442
|
+
raise NotImplementedError(
|
|
443
|
+
"Partial-instancing avar2 table is not supported"
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
# TODO: Merge this with the main codepath.
|
|
447
|
+
|
|
448
|
+
# Full instancing of avar2 font. Use avar table to normalize location and return.
|
|
449
|
+
location = self.pinnedLocation()
|
|
450
|
+
location = {
|
|
451
|
+
tag: normalize(value, axes[tag], avarSegments.get(tag, None))
|
|
452
|
+
for tag, value in location.items()
|
|
453
|
+
}
|
|
454
|
+
return NormalizedAxisLimits(
|
|
455
|
+
**avar.renormalizeLocation(location, varfont, dropZeroes=False)
|
|
456
|
+
)
|
|
439
457
|
|
|
440
458
|
normalizedLimits = {}
|
|
441
459
|
|
|
@@ -1122,7 +1140,8 @@ def _instantiateVHVAR(varfont, axisLimits, tableFields, *, round=round):
|
|
|
1122
1140
|
varIdx = advMapping.mapping[glyphName]
|
|
1123
1141
|
else:
|
|
1124
1142
|
varIdx = varfont.getGlyphID(glyphName)
|
|
1125
|
-
|
|
1143
|
+
delta = round(defaultDeltas[varIdx])
|
|
1144
|
+
metrics[glyphName] = (max(0, advanceWidth + delta), sb)
|
|
1126
1145
|
|
|
1127
1146
|
if (
|
|
1128
1147
|
tableTag == "VVAR"
|
|
@@ -1384,7 +1403,6 @@ def _isValidAvarSegmentMap(axisTag, segmentMap):
|
|
|
1384
1403
|
|
|
1385
1404
|
|
|
1386
1405
|
def downgradeCFF2ToCFF(varfont):
|
|
1387
|
-
|
|
1388
1406
|
# Save these properties
|
|
1389
1407
|
recalcTimestamp = varfont.recalcTimestamp
|
|
1390
1408
|
recalcBBoxes = varfont.recalcBBoxes
|
|
@@ -1433,8 +1451,6 @@ def instantiateAvar(varfont, axisLimits):
|
|
|
1433
1451
|
# 'axisLimits' dict must contain user-space (non-normalized) coordinates.
|
|
1434
1452
|
|
|
1435
1453
|
avar = varfont["avar"]
|
|
1436
|
-
if getattr(avar, "majorVersion", 1) >= 2 and avar.table.VarStore:
|
|
1437
|
-
raise NotImplementedError("avar table with VarStore is not supported")
|
|
1438
1454
|
|
|
1439
1455
|
segments = avar.segments
|
|
1440
1456
|
|
|
@@ -1445,6 +1461,9 @@ def instantiateAvar(varfont, axisLimits):
|
|
|
1445
1461
|
del varfont["avar"]
|
|
1446
1462
|
return
|
|
1447
1463
|
|
|
1464
|
+
if getattr(avar, "majorVersion", 1) >= 2 and avar.table.VarStore:
|
|
1465
|
+
raise NotImplementedError("avar table with VarStore is not supported")
|
|
1466
|
+
|
|
1448
1467
|
log.info("Instantiating avar table")
|
|
1449
1468
|
for axis in pinnedAxes:
|
|
1450
1469
|
if axis in segments:
|
|
@@ -1646,6 +1665,7 @@ def instantiateVariableFont(
|
|
|
1646
1665
|
updateFontNames=False,
|
|
1647
1666
|
*,
|
|
1648
1667
|
downgradeCFF2=False,
|
|
1668
|
+
static=False,
|
|
1649
1669
|
):
|
|
1650
1670
|
"""Instantiate variable font, either fully or partially.
|
|
1651
1671
|
|
|
@@ -1689,12 +1709,23 @@ def instantiateVariableFont(
|
|
|
1689
1709
|
software that does not support CFF2. Defaults to False. Note that this
|
|
1690
1710
|
operation also removes overlaps within glyph shapes, as CFF does not support
|
|
1691
1711
|
overlaps but CFF2 does.
|
|
1712
|
+
static (bool): if True, generate a full instance (static font) instead of a partial
|
|
1713
|
+
instance (variable font).
|
|
1692
1714
|
"""
|
|
1693
1715
|
# 'overlap' used to be bool and is now enum; for backward compat keep accepting bool
|
|
1694
1716
|
overlap = OverlapMode(int(overlap))
|
|
1695
1717
|
|
|
1696
1718
|
sanityCheckVariableTables(varfont)
|
|
1697
1719
|
|
|
1720
|
+
if static:
|
|
1721
|
+
unspecified = []
|
|
1722
|
+
for axis in varfont["fvar"].axes:
|
|
1723
|
+
if axis.axisTag not in axisLimits:
|
|
1724
|
+
axisLimits[axis.axisTag] = None
|
|
1725
|
+
unspecified.append(axis.axisTag)
|
|
1726
|
+
if unspecified:
|
|
1727
|
+
log.info("Pinning unspecified axes to default: %s", unspecified)
|
|
1728
|
+
|
|
1698
1729
|
axisLimits = AxisLimits(axisLimits).limitAxesAndPopulateDefaults(varfont)
|
|
1699
1730
|
|
|
1700
1731
|
log.info("Restricted limits: %s", axisLimits)
|
|
@@ -1886,6 +1917,12 @@ def parseArgs(args):
|
|
|
1886
1917
|
default=None,
|
|
1887
1918
|
help="Output instance TTF file (default: INPUT-instance.ttf).",
|
|
1888
1919
|
)
|
|
1920
|
+
parser.add_argument(
|
|
1921
|
+
"--static",
|
|
1922
|
+
dest="static",
|
|
1923
|
+
action="store_true",
|
|
1924
|
+
help="Make a static font: pin unspecified axes to their default location.",
|
|
1925
|
+
)
|
|
1889
1926
|
parser.add_argument(
|
|
1890
1927
|
"--no-optimize",
|
|
1891
1928
|
dest="optimize",
|
|
@@ -1983,7 +2020,7 @@ def main(args=None):
|
|
|
1983
2020
|
recalcBBoxes=options.recalc_bounds,
|
|
1984
2021
|
)
|
|
1985
2022
|
|
|
1986
|
-
isFullInstance = {
|
|
2023
|
+
isFullInstance = options.static or {
|
|
1987
2024
|
axisTag
|
|
1988
2025
|
for axisTag, limit in axisLimits.items()
|
|
1989
2026
|
if limit is None or limit[0] == limit[2]
|
|
@@ -1997,6 +2034,7 @@ def main(args=None):
|
|
|
1997
2034
|
overlap=options.overlap,
|
|
1998
2035
|
updateFontNames=options.update_name_table,
|
|
1999
2036
|
downgradeCFF2=options.downgrade_cff2,
|
|
2037
|
+
static=options.static,
|
|
2000
2038
|
)
|
|
2001
2039
|
|
|
2002
2040
|
suffix = "-instance" if isFullInstance else "-partial"
|
|
@@ -174,6 +174,9 @@ def min_cost_perfect_bipartite_matching_bruteforce(G):
|
|
|
174
174
|
return best, best_cost
|
|
175
175
|
|
|
176
176
|
|
|
177
|
+
# Prefer `scipy.optimize.linear_sum_assignment` for performance.
|
|
178
|
+
# `Munkres` is also supported as a fallback for minimalistic systems
|
|
179
|
+
# where installing SciPy is not feasible.
|
|
177
180
|
try:
|
|
178
181
|
from scipy.optimize import linear_sum_assignment
|
|
179
182
|
|
fontTools/varLib/iup.c
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Generated by Cython 3.1.
|
|
1
|
+
/* Generated by Cython 3.1.4 */
|
|
2
2
|
|
|
3
3
|
/* BEGIN: Cython Metadata
|
|
4
4
|
{
|
|
@@ -26,8 +26,8 @@ END: Cython Metadata */
|
|
|
26
26
|
#elif PY_VERSION_HEX < 0x03080000
|
|
27
27
|
#error Cython requires Python 3.8+.
|
|
28
28
|
#else
|
|
29
|
-
#define __PYX_ABI_VERSION "
|
|
30
|
-
#define CYTHON_HEX_VERSION
|
|
29
|
+
#define __PYX_ABI_VERSION "3_1_4"
|
|
30
|
+
#define CYTHON_HEX_VERSION 0x030104F0
|
|
31
31
|
#define CYTHON_FUTURE_DIVISION 1
|
|
32
32
|
/* CModulePreamble */
|
|
33
33
|
#include <stddef.h>
|
|
@@ -3970,8 +3970,12 @@ static PyObject *__pyx_pf_9fontTools_6varLib_3iup_iup_contour(CYTHON_UNUSED PyOb
|
|
|
3970
3970
|
* # All deltas are None. Return 0,0 for all.
|
|
3971
3971
|
* return [(0, 0)] * n
|
|
3972
3972
|
*/
|
|
3973
|
-
|
|
3974
|
-
|
|
3973
|
+
{
|
|
3974
|
+
Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_indices);
|
|
3975
|
+
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 104, __pyx_L1_error)
|
|
3976
|
+
__pyx_t_3 = (__pyx_temp != 0);
|
|
3977
|
+
}
|
|
3978
|
+
|
|
3975
3979
|
__pyx_t_9 = (!__pyx_t_3);
|
|
3976
3980
|
if (__pyx_t_9) {
|
|
3977
3981
|
|
|
@@ -15533,6 +15537,7 @@ static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
|
|
|
15533
15537
|
return -1;
|
|
15534
15538
|
}
|
|
15535
15539
|
mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
|
|
15540
|
+
Py_DECREF(bases);
|
|
15536
15541
|
if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
|
|
15537
15542
|
return -1;
|
|
15538
15543
|
}
|
|
@@ -19190,6 +19195,10 @@ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt
|
|
|
19190
19195
|
PyCode_NewWithPosOnlyArgs
|
|
19191
19196
|
#endif
|
|
19192
19197
|
(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
|
|
19198
|
+
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
|
|
19199
|
+
if (likely(result))
|
|
19200
|
+
result->_co_firsttraceable = 0;
|
|
19201
|
+
#endif
|
|
19193
19202
|
return result;
|
|
19194
19203
|
}
|
|
19195
19204
|
#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fonttools
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.60.0
|
|
4
4
|
Summary: Tools to manipulate font files
|
|
5
5
|
Home-page: http://github.com/fonttools/fonttools
|
|
6
6
|
Author: Just van Rossum
|
|
@@ -211,7 +211,11 @@ are required to unlock the extra features named "ufo", etc.
|
|
|
211
211
|
for Python, which internally uses `NumPy <https://pypi.python.org/pypi/numpy>`__
|
|
212
212
|
arrays and hence is very fast;
|
|
213
213
|
* `munkres <https://pypi.python.org/pypi/munkres>`__: a pure-Python
|
|
214
|
-
module that implements the Hungarian or Kuhn-Munkres algorithm.
|
|
214
|
+
module that implements the Hungarian or Kuhn-Munkres algorithm. Slower than
|
|
215
|
+
SciPy, but useful for minimalistic systems where adding SciPy is undesirable.
|
|
216
|
+
|
|
217
|
+
This ensures both performance (via SciPy) and minimal footprint (via Munkres)
|
|
218
|
+
are possible.
|
|
215
219
|
|
|
216
220
|
To plot the results to a PDF or HTML format, you also need to install:
|
|
217
221
|
|
|
@@ -388,6 +392,43 @@ Have fun!
|
|
|
388
392
|
Changelog
|
|
389
393
|
~~~~~~~~~
|
|
390
394
|
|
|
395
|
+
4.60.0 (released 2025-09-17)
|
|
396
|
+
----------------------------
|
|
397
|
+
|
|
398
|
+
- [pointPen] Allow ``reverseFlipped`` parameter of ``DecomposingPointPen`` to take a ``ReverseFlipped``
|
|
399
|
+
enum value to control whether/how to reverse contour direction of flipped components, in addition to
|
|
400
|
+
the existing True/False. This allows to set ``ReverseFlipped.ON_CURVE_FIRST`` to ensure that
|
|
401
|
+
the decomposed outline starts with an on-curve point before being reversed, for better consistency
|
|
402
|
+
with other segment-oriented contour transformations. The change is backward compatible, and the
|
|
403
|
+
default behavior hasn't changed (#3934).
|
|
404
|
+
- [filterPen] Added ``ContourFilterPointPen``, base pen for buffered contour operations, and
|
|
405
|
+
``OnCurveStartPointPen`` filter to ensure contours start with an on-curve point (#3934).
|
|
406
|
+
- [cu2qu] Fixed difference in cython vs pure-python complex division by real number (#3930).
|
|
407
|
+
- [varLib.avar] Refactored and added some new sub-modules and scripts (#3926).
|
|
408
|
+
* ``varLib.avar.build`` module to build avar (and a missing fvar) binaries into a possibly empty TTFont,
|
|
409
|
+
* ``varLib.avar.unbuild`` module to print a .designspace snippet that would generate the same avar binary,
|
|
410
|
+
* ``varLib.avar.map`` module to take TTFont and do the mapping, in user/normalized space,
|
|
411
|
+
* ``varLib.avar.plan`` module moved from ``varLib.avarPlanner``.
|
|
412
|
+
The bare ``fonttools varLib.avar`` script is deprecated, in favour of ``fonttools varLib.avar.build`` (or ``unbuild``).
|
|
413
|
+
- [interpolatable] Clarify ``linear_sum_assignment`` backend options and minimal dependency
|
|
414
|
+
usage (#3927).
|
|
415
|
+
- [post] Speed up ``build_psNameMapping`` (#3923).
|
|
416
|
+
- [ufoLib] Added typing annotations to fontTools.ufoLib (#3875).
|
|
417
|
+
|
|
418
|
+
4.59.2 (released 2025-08-27)
|
|
419
|
+
----------------------------
|
|
420
|
+
|
|
421
|
+
- [varLib] Clear ``USE_MY_METRICS`` component flags when inconsistent across masters (#3912).
|
|
422
|
+
- [varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR,
|
|
423
|
+
(unlikely in well-behaved fonts) (#3918).
|
|
424
|
+
- [subset] Fix shaping behaviour when pruning empty mark sets (#3915, harfbuzz/harfbuzz#5499).
|
|
425
|
+
- [cu2qu] Fixed ``dot()`` product of perpendicular vectors not always returning exactly 0.0
|
|
426
|
+
in all Python implementations (#3911)
|
|
427
|
+
- [varLib.instancer] Implemented fully-instantiating ``avar2`` fonts (#3909).
|
|
428
|
+
- [feaLib] Allow float values in ``VariableScalar``'s axis locations (#3906, #3907).
|
|
429
|
+
- [cu2qu] Handle special case in ``calc_intersect`` for degenerate cubic curves where 3 to 4
|
|
430
|
+
control points are equal (#3904).
|
|
431
|
+
|
|
391
432
|
4.59.1 (released 2025-08-14)
|
|
392
433
|
----------------------------
|
|
393
434
|
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
fonttools-4.
|
|
1
|
+
fonttools-4.60.0.dist-info/RECORD,,
|
|
2
|
+
fonttools-4.60.0.dist-info/WHEEL,sha256=YOKbiIEZep2WTRrpKV0dvEfsSeIOVH2NqduVxoKQt6I,142
|
|
3
|
+
fonttools-4.60.0.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
|
|
4
|
+
fonttools-4.60.0.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
|
|
5
|
+
fonttools-4.60.0.dist-info/METADATA,sha256=Rr4SmYR6GaXoQc5vdAknoI1T6jKbFYOSvq8iA_VnxrQ,111615
|
|
6
|
+
fonttools-4.60.0.dist-info/licenses/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072
|
|
7
|
+
fonttools-4.60.0.dist-info/licenses/LICENSE.external,sha256=lKg6ruBymg8wLTSsxKzsvZ1YNm8mJCkHX-VX5KVLLmk,20022
|
|
2
8
|
fontTools/ttx.py,sha256=FxuGubujWCGJWSTrJEjoNH--25fVIPy-ZRtYy9H6iTk,17277
|
|
3
9
|
fontTools/fontBuilder.py,sha256=yF2-IYl_hao-Zy_FWSI4R-HnlFpzFrz0YBGQO8zfaOs,34130
|
|
4
10
|
fontTools/unicode.py,sha256=ZZ7OMmWvIyV1IL1k6ioTzaRAh3tUvm6gvK7QgFbOIHY,1237
|
|
5
|
-
fontTools/__init__.py,sha256=
|
|
11
|
+
fontTools/__init__.py,sha256=QErDWwLyteqhpD3TFcyyf5Higmwv-NgoQcXfIOF862M,183
|
|
6
12
|
fontTools/tfmLib.py,sha256=UMbkM73JXRJVS9t2B-BJc13rSjImaWBuzCoehLwHFhs,14270
|
|
7
13
|
fontTools/afmLib.py,sha256=1MagIItOzRV4vV5kKPxeDZbPJsfxLB3wdHLFkQvl0uk,13164
|
|
8
14
|
fontTools/agl.py,sha256=05bm8Uq45uVWW8nPbP6xbNgmFyxQr8sWhYAiP0VSjnI,112975
|
|
9
15
|
fontTools/help.py,sha256=bAjatvIhV7TJyXI7WhsxdYO4YVlhScZXu_kRtHANEPo,1125
|
|
16
|
+
fontTools/annotations.py,sha256=BdIIriNYDzBfgniwWFg_u71qLZnV0sCcn4-VAkXkYNM,1225
|
|
10
17
|
fontTools/__main__.py,sha256=VjkGh1UD-i1zTDA1dXo1uecSs6PxHdGQ5vlCk_mCCYs,925
|
|
11
18
|
fontTools/encodings/codecs.py,sha256=u50ruwz9fcRsrUrRGpR17Cr55Ovn1fvCHCKrElVumDE,4721
|
|
12
19
|
fontTools/encodings/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75
|
|
@@ -15,9 +22,9 @@ fontTools/encodings/StandardEncoding.py,sha256=Eo3AGE8FE_p-IVYYuV097KouSsF3UrXoR
|
|
|
15
22
|
fontTools/qu2cu/benchmark.py,sha256=GMcr_4r7L6K9SmJ13itt-_XKhnKqSVUDPlXUG6IZmmM,1400
|
|
16
23
|
fontTools/qu2cu/__init__.py,sha256=Jfm1JljXbt91w4gyvZn6jzEmVnhRx50sh2fDongrOsE,618
|
|
17
24
|
fontTools/qu2cu/qu2cu.py,sha256=IYtpkwHdfKOXJr65Y_pJ9Lrt_MgJaISAKGMAs5ilFSM,12288
|
|
18
|
-
fontTools/qu2cu/qu2cu.cpython-313-darwin.so,sha256=
|
|
25
|
+
fontTools/qu2cu/qu2cu.cpython-313-darwin.so,sha256=Y1-HzcGVf6dAricGQcO-3DcXLK_0z2FhuxL7HRJSeMM,342984
|
|
19
26
|
fontTools/qu2cu/cli.py,sha256=U2rooYnVVEalGRAWGFHk-Kp6Okys8wtzdaWLjw1bngY,3714
|
|
20
|
-
fontTools/qu2cu/qu2cu.c,sha256=
|
|
27
|
+
fontTools/qu2cu/qu2cu.c,sha256=k-6C2e2_m_1cBuYoSiHCY1ZBcSqtZjiffLCghiJCYDM,690421
|
|
21
28
|
fontTools/qu2cu/__main__.py,sha256=9FWf6SIZaRaC8SiL0LhjAWC2yIdY9N_9wlRko8m1l2Q,93
|
|
22
29
|
fontTools/misc/arrayTools.py,sha256=jZk__GE-K9VViZE_H-LPPj0smWbKng-yfPE8BfGp8HI,11483
|
|
23
30
|
fontTools/misc/cython.py,sha256=eyLcL2Bw-SSToYro8f44dkkYRlQfiFbhcza0afS-qHE,682
|
|
@@ -27,7 +34,7 @@ fontTools/misc/psLib.py,sha256=ioIPm5x3MHkBXF2vzNkC4iVZYobrkWcyvFhmYsjOrPY,12099
|
|
|
27
34
|
fontTools/misc/timeTools.py,sha256=e9h5pgzL04tBDXmCv_8eRGB4boFV8GKXlS6dq3ggEpw,2234
|
|
28
35
|
fontTools/misc/configTools.py,sha256=YXBE_vL2dMWCnK4oY3vtU15B79q82DtKp7h7XRqJc1Q,11188
|
|
29
36
|
fontTools/misc/sstruct.py,sha256=vUODd2CKvHLtjr7yn1K94Hui_yxOPWKmlgAmBMm3KDQ,7009
|
|
30
|
-
fontTools/misc/bezierTools.cpython-313-darwin.so,sha256=
|
|
37
|
+
fontTools/misc/bezierTools.cpython-313-darwin.so,sha256=HSYf8vPQFZwprruTTQLG8hQje5x2SFLzfirGMV676V0,1090624
|
|
31
38
|
fontTools/misc/classifyTools.py,sha256=zcg3EM4GOerBW9c063ljaLllgeeZ772EpFZjp9CdgLI,5613
|
|
32
39
|
fontTools/misc/symfont.py,sha256=x5ZwqK9Ik9orG6qSftgVGygBFE1wTSngrMK2We1Z5AM,6977
|
|
33
40
|
fontTools/misc/roundTools.py,sha256=1RSXZ0gyi1qW42tz6WSBMJD1FlPdtgqKfWixVN9bd78,3173
|
|
@@ -36,20 +43,21 @@ fontTools/misc/filenames.py,sha256=MMCO3xjk1pcDc-baobcKd8IdoFPt-bcGqu8t8HUGAkI,8
|
|
|
36
43
|
fontTools/misc/treeTools.py,sha256=tLWkwyDHeZUPVOGNnJeD4Pn7x2bQeZetwJKaEAW2J2M,1269
|
|
37
44
|
fontTools/misc/psOperators.py,sha256=9SLl5PPBulLo0Xxg_dqlJMitNIBdiGKdkXhOWsNSYZE,15700
|
|
38
45
|
fontTools/misc/py23.py,sha256=aPVCEUz_deggwLBCeTSsccX6QgJavZqvdVtuhpzrPvA,2238
|
|
46
|
+
fontTools/misc/enumTools.py,sha256=YQZW-d2ES9KFFkAXOUMIBbRUk6v_3BT6Q7lXE1ufhxA,502
|
|
39
47
|
fontTools/misc/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75
|
|
40
48
|
fontTools/misc/macRes.py,sha256=GT_pnfPw2NCvvOF86nHLAnOtZ6SMHqEuLntaplXzvHM,8579
|
|
41
49
|
fontTools/misc/encodingTools.py,sha256=hCv5PFfnXQJVCZA8Wyn1vr3vzLBbUuEPtGk5CzWM9RY,2073
|
|
42
50
|
fontTools/misc/testTools.py,sha256=3vj_KllUQVEiVFbS0SzTmeuKv44-L-disI1dZ4XhOfw,7052
|
|
43
51
|
fontTools/misc/lazyTools.py,sha256=BC6MmF-OzJ3GrBD8TYDZ-VCSN4UOx0pN0r3oF4GSoiw,1020
|
|
44
52
|
fontTools/misc/loggingTools.py,sha256=NOYROsLK5TzONK5967OGdVonNyXC6kP_CmPr7M2PW_c,19933
|
|
45
|
-
fontTools/misc/textTools.py,sha256=
|
|
53
|
+
fontTools/misc/textTools.py,sha256=wNjH5zl1v9qNfmTl4BL52IO2IG1H5xY3o_pslqPPRjc,3483
|
|
46
54
|
fontTools/misc/visitor.py,sha256=c9YQs14bXfL1SmqwoAhEGCvXlmyZIKR5_Vr4n7iWaRs,5610
|
|
47
55
|
fontTools/misc/macCreatorType.py,sha256=Je9jtqUr7EPbpH3QxlVl3pizoQ-1AOPMBIctHIMTM3k,1593
|
|
48
56
|
fontTools/misc/psCharStrings.py,sha256=Zn8mr7NRTfEJbnaXbOnSarrFBPcvPM0AupAxF2C80LY,43468
|
|
49
57
|
fontTools/misc/transform.py,sha256=OR8dPsAw87z77gkZQMq00iUkDWLIxYv-12XiKH1-erk,15798
|
|
50
58
|
fontTools/misc/etree.py,sha256=ZzJc6TvAS579deAgZLVDvTY_HeTm-ZsKJ5s3LYhZSSY,16304
|
|
51
59
|
fontTools/misc/xmlReader.py,sha256=igut4_d13RT4WarliqVvuuPybO1uSXVeoBOeW4j0_e4,6580
|
|
52
|
-
fontTools/misc/bezierTools.c,sha256=
|
|
60
|
+
fontTools/misc/bezierTools.c,sha256=mFo2nrmrIq11WJ8Tj_cxR4M6U3tx75RVPcU-ODkHrbg,1821732
|
|
53
61
|
fontTools/misc/dictTools.py,sha256=VxjarsGJuk_wa3z29FSCtKZNCFfXtMBiNEu0RPAlpDk,2417
|
|
54
62
|
fontTools/misc/bezierTools.py,sha256=OmR3pzCGExNvZyTPrByH7gQHpAJsYOl1cmvfYQIVfQA,45038
|
|
55
63
|
fontTools/misc/eexec.py,sha256=GNn2OCRvO1HbbIeDPxk9i0glO7cux_AQaoVMXhBR8y8,3331
|
|
@@ -71,17 +79,17 @@ fontTools/misc/filesystem/_zipfs.py,sha256=i3qolbkDRntB_oL3v79KuEgfVlVojecPBnBA0
|
|
|
71
79
|
fontTools/misc/plistlib/__init__.py,sha256=1HfhHPt3As6u2eRSlFfl6XdnXv_ypQImeQdWIw6wK7Y,21113
|
|
72
80
|
fontTools/misc/plistlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
81
|
fontTools/cu2qu/benchmark.py,sha256=wasPJmf8q9k9UHjpHChC3WQAGbBAyHN9PvJzXvWC0Fw,1296
|
|
74
|
-
fontTools/cu2qu/cu2qu.c,sha256
|
|
82
|
+
fontTools/cu2qu/cu2qu.c,sha256=-7JwWBSeJ3I4vIs6ZaSVHzfBf46MSx25lG05NRqA6Zg,637967
|
|
75
83
|
fontTools/cu2qu/__init__.py,sha256=Cuc7Uglb0nSgaraTxXY5J8bReznH5wApW0uakN7MycY,618
|
|
76
84
|
fontTools/cu2qu/ufo.py,sha256=qZR70uWdCia19Ff8GLn5NeItscvvn69DegjDZVF4eNI,11794
|
|
77
85
|
fontTools/cu2qu/cli.py,sha256=MbAQnOpZwrUFe_tjAP3Tgf6uLdOgHlONUcPNeTXwH0Y,6076
|
|
78
|
-
fontTools/cu2qu/cu2qu.cpython-313-darwin.so,sha256=
|
|
86
|
+
fontTools/cu2qu/cu2qu.cpython-313-darwin.so,sha256=VwEadLzlZYDAEZ2wxCCO5Vq48WF9xMwic45a-Dx-T_s,319656
|
|
79
87
|
fontTools/cu2qu/errors.py,sha256=PyJNMy8lHDtKpfFkc0nkM8F4jNLZAC4lPQCN1Km4bpg,2441
|
|
80
|
-
fontTools/cu2qu/cu2qu.py,sha256=
|
|
88
|
+
fontTools/cu2qu/cu2qu.py,sha256=6LTe1ZI-jxW8y79s_UFjbkeFoFleIekTLm2jAE-uqGQ,17986
|
|
81
89
|
fontTools/cu2qu/__main__.py,sha256=kTUI-jczsHeelULLlory74QEeFjZWp9zigCc7PrdVQY,92
|
|
82
90
|
fontTools/subset/cff.py,sha256=rqMRJOlX5FacV1LW8aDlVOglgEM87TkMA9bdsYenask,6145
|
|
83
91
|
fontTools/subset/util.py,sha256=9SXFYb5Ef9Z58uXmYPCQil8B2i3Q7aFB_1fFDFSppdU,754
|
|
84
|
-
fontTools/subset/__init__.py,sha256=
|
|
92
|
+
fontTools/subset/__init__.py,sha256=Qmhbtr07h4a16dHWUP46jF8Nr4gd4njICcNVBFyYaac,137742
|
|
85
93
|
fontTools/subset/svg.py,sha256=8dLBzQlnIt4_fOKEFDAVlKTucdHvcbCcyG9-a6UBZZ0,9384
|
|
86
94
|
fontTools/subset/__main__.py,sha256=bhtfP2SqP4k799pxtksFgnC-XGNQDr3LcO4lc8T5e5g,95
|
|
87
95
|
fontTools/voltLib/error.py,sha256=phcQOQj-xOspCXu9hBJQRhSOBDzxHRgZd3fWQOFNJzw,395
|
|
@@ -108,32 +116,37 @@ fontTools/svgLib/path/parser.py,sha256=8T6okMstvgM9ufb2zBcwSzsuuoYbqfnUjNYgb6kjz
|
|
|
108
116
|
fontTools/svgLib/path/arc.py,sha256=-f5Ym6q4tDWQ76sMNSTUTWgL_7AfgXojvBhtBS7bWwQ,5812
|
|
109
117
|
fontTools/varLib/interpolatableTestContourOrder.py,sha256=mHJ9Ry7Rm7H3zHDwEUQEtEIDseiUzOxjg4MveW_FSiU,3021
|
|
110
118
|
fontTools/varLib/iup.py,sha256=mKq_GRWuUg4yTmw2V32nu0v2r-SzzN7xS7rIbV0mYuc,14984
|
|
111
|
-
fontTools/varLib/iup.c,sha256=
|
|
119
|
+
fontTools/varLib/iup.c,sha256=I7snrACi_wloZDL67Fypk-7Dff5pxJhaVmluAXBUW_4,827723
|
|
112
120
|
fontTools/varLib/plot.py,sha256=NoSZkJ5ndxNcDvJIvd5pQ9_jX6X1oM1K2G_tR4sdPVs,7494
|
|
113
121
|
fontTools/varLib/cff.py,sha256=EVgaQcoROIrYQsRuftnxFuGGldEPYbrIh5yBckylJC4,22901
|
|
114
122
|
fontTools/varLib/models.py,sha256=sj_ENljh_qcMbfYzRIOlRgHq6tFOmL02Wv6WO8uofis,22398
|
|
115
|
-
fontTools/varLib/
|
|
116
|
-
fontTools/varLib/__init__.py,sha256=dc1_8itv2pS3q6mO8vMuEe-XdWOiJLIWVsJ8-bhPflI,54236
|
|
123
|
+
fontTools/varLib/__init__.py,sha256=SeAVSol0qvmw4Io5hvuVWxwx_onKadqr_1eXwjNUGkk,57322
|
|
117
124
|
fontTools/varLib/mutator.py,sha256=kzXiLFxRLgU2pcHzOzh9u0n0KkO3DuBk06xZ_RPhWz8,19804
|
|
118
125
|
fontTools/varLib/interpolatablePlot.py,sha256=w393P6mGLRhYkIjSxMww3qyoYxAUZzCXlmPBbI_84C0,44375
|
|
119
126
|
fontTools/varLib/builder.py,sha256=mSKOCcnnw-WzmZs15FayoqCDh77Ts7o9Tre9psh8CUc,6609
|
|
120
127
|
fontTools/varLib/stat.py,sha256=XuNKKZxGlBrl4OGFDAwVXhpBwJi23U3BdHmNTKoJnvE,4811
|
|
121
128
|
fontTools/varLib/hvar.py,sha256=1IvL5BneTkg8jJYicH0TSQViB6D0vBEesLdlfqoLBX4,3695
|
|
122
|
-
fontTools/varLib/interpolatableHelpers.py,sha256=
|
|
129
|
+
fontTools/varLib/interpolatableHelpers.py,sha256=cTFgTqDjggSCqNfTM77__5b9Sja_g7xWWMiB-pXDx84,11672
|
|
123
130
|
fontTools/varLib/interpolatableTestStartingPoint.py,sha256=K6OYKBspim6BXc91pfLTbGLyi5XZukfMuBc6hRpENG8,4296
|
|
124
131
|
fontTools/varLib/varStore.py,sha256=2QA9SDI6jQyQ_zq82OOwa3FBkfl-ksaSo1KGmVFpa9Q,24069
|
|
125
132
|
fontTools/varLib/interpolatable.py,sha256=Bhlq_LhEZ-sXfLNY8aFEChFrsKuT2kzmnuMfG5qi0v4,45221
|
|
126
|
-
fontTools/varLib/avarPlanner.py,sha256=
|
|
133
|
+
fontTools/varLib/avarPlanner.py,sha256=CabG5xB57FMdwmN1acpVMvyOucVPxCdRdJSK2gu7gb4,109
|
|
127
134
|
fontTools/varLib/mvar.py,sha256=LTV77vH_3Ecg_qKBO5xQzjLOlJir_ppEr7mPVZRgad8,2449
|
|
128
135
|
fontTools/varLib/errors.py,sha256=dMo8eGj76I7H4hrBEiNbYrGs2J1K1SwdsUyTHpkVOrQ,6934
|
|
129
|
-
fontTools/varLib/iup.cpython-313-darwin.so,sha256=
|
|
136
|
+
fontTools/varLib/iup.cpython-313-darwin.so,sha256=KxaxZv-YAx6SuTT5W_RHJDdkS0oyTMFilOoDBb3B9P0,432376
|
|
130
137
|
fontTools/varLib/__main__.py,sha256=wbdYC5bPjWCxA0I4SKcLO88gl-UMtsYS8MxdW9ySTkY,95
|
|
131
138
|
fontTools/varLib/featureVars.py,sha256=kp4gPjKyyGRu7yBWxgd1N4OkKnU9V45QwiWSHs6OWd0,26180
|
|
132
139
|
fontTools/varLib/interpolate_layout.py,sha256=22VjGZuV2YiAe2MpdTf0xPVz1x2G84bcOL0vOeBpGQM,3689
|
|
133
140
|
fontTools/varLib/merger.py,sha256=E59oli4AwqWZ-FgnuStMSBvsB-FHe-55esXTYUqGeJ8,60802
|
|
134
141
|
fontTools/varLib/multiVarStore.py,sha256=eQEuWNY01YF5zDpy1UwNtvOYyD6c0FLxpH-QFpX1i78,8305
|
|
142
|
+
fontTools/varLib/avar/build.py,sha256=YSMsRMjGkNW2zhKn29HgovNNG-jgiFSsK7zYH4un2Ws,2087
|
|
143
|
+
fontTools/varLib/avar/plan.py,sha256=qDKZjQq6OfeXBr3T3DZnrmauyMm5ek0rm5YVosAO_UA,27354
|
|
144
|
+
fontTools/varLib/avar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
|
+
fontTools/varLib/avar/map.py,sha256=UBeElT40SHXvJrQ7SflH5MNYKTTom7RLHwq2varb_oE,2867
|
|
146
|
+
fontTools/varLib/avar/__main__.py,sha256=ew1fJpg81GpYbdkrp4I7ntWdbhkDeg5fNn1SrpF254k,1770
|
|
147
|
+
fontTools/varLib/avar/unbuild.py,sha256=h3qb0JBN7SngijPrwjTjGEjueeENlhPYY9FyN02FLEk,10467
|
|
135
148
|
fontTools/varLib/instancer/solver.py,sha256=uMePwX0BVT5F94kUvDglsI4_F0nEH67F7RFuJ6tQwQ0,11002
|
|
136
|
-
fontTools/varLib/instancer/__init__.py,sha256=
|
|
149
|
+
fontTools/varLib/instancer/__init__.py,sha256=fHd864WfEDyFH3zXGldT34aw3524143dZPIDqA95V5A,75554
|
|
137
150
|
fontTools/varLib/instancer/names.py,sha256=IPRqel_M8zVU0jl30WsfgufxUm9PBBQDQCY3VHapeHc,14950
|
|
138
151
|
fontTools/varLib/instancer/__main__.py,sha256=zfULwcP01FhplS1IlcMgNQnLxk5RVfmOuinWjqeid-g,104
|
|
139
152
|
fontTools/varLib/instancer/featureVars.py,sha256=oPqSlnHLMDTtOsmQMi6gkzLox7ymCrqlRAkvC_EJ4bc,7110
|
|
@@ -143,17 +156,17 @@ fontTools/pens/qtPen.py,sha256=QRNLIry2rQl4E_7ct2tu10-qLHneQp0XV7FfaZ-tcL8,634
|
|
|
143
156
|
fontTools/pens/qu2cuPen.py,sha256=pRST43-rUpzlOP83Z_Rr0IvIQBCx6RWI6nnNaitQcLk,3985
|
|
144
157
|
fontTools/pens/cocoaPen.py,sha256=IJRQcAxRuVOTQ90bB_Bgjnmz7px_ST5uLF9CW-Y0KPY,612
|
|
145
158
|
fontTools/pens/t2CharStringPen.py,sha256=GgGklb5XsCer0w37ujgRLRXx-EuzdFsyCYuzCx4n-Qs,2931
|
|
146
|
-
fontTools/pens/pointPen.py,sha256=
|
|
159
|
+
fontTools/pens/pointPen.py,sha256=oeE_uabVCNJ1Lpk5Hn3eBmafaao3QqKMjK6FAy0hKBo,24197
|
|
147
160
|
fontTools/pens/transformPen.py,sha256=s0kUyQdnemUwHvYr2SFboFmh4WY1S9OHBL8L4PJKRwE,4056
|
|
148
161
|
fontTools/pens/reportLabPen.py,sha256=kpfMfOLXt2vOQ5smPsU82ft80FpCPWJzQLl7ENOH8Ew,2066
|
|
149
|
-
fontTools/pens/filterPen.py,sha256=
|
|
162
|
+
fontTools/pens/filterPen.py,sha256=REgspXaaSvF3XUwqe40abe3X_E7-WbBP13IqLUUBLCw,14703
|
|
150
163
|
fontTools/pens/areaPen.py,sha256=Y1WkmqzcC4z_bpGAR0IZUKrtHFtxKUQBmr5-64_zCOk,1472
|
|
151
164
|
fontTools/pens/teePen.py,sha256=P1ARJOCMJ6MxK-PB1yZ-ips3CUfnadWYnQ_do6VIasQ,1290
|
|
152
165
|
fontTools/pens/basePen.py,sha256=eIGSKrKm6w4LLHuG6XJoQZ3eObtoKV5P6aF4gT4sk7U,17073
|
|
153
166
|
fontTools/pens/pointInsidePen.py,sha256=noEUvBQIeAheDMJwzvvfnEiKhmwbS1i0RQE9jik6Gl4,6355
|
|
154
167
|
fontTools/pens/cu2quPen.py,sha256=gMUwFUsm_-WzBlDjTMQiNnEuI2heomGeOJBX81zYXPo,13007
|
|
155
|
-
fontTools/pens/momentsPen.cpython-313-darwin.so,sha256
|
|
156
|
-
fontTools/pens/momentsPen.c,sha256=
|
|
168
|
+
fontTools/pens/momentsPen.cpython-313-darwin.so,sha256=lKFlWIqDwPIwTa07sdNIx2MKPSljgm8HYePhT-jW1EM,281824
|
|
169
|
+
fontTools/pens/momentsPen.c,sha256=nXlaxy9cejy1MWW6NCDck71BKCfnc_E25BrmYXXPC18,565310
|
|
157
170
|
fontTools/pens/perimeterPen.py,sha256=lr6NzrIWxi4TXBJPbcJsKzqABWfQeil2Bgm9BgUD3N4,2153
|
|
158
171
|
fontTools/pens/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75
|
|
159
172
|
fontTools/pens/ttGlyphPen.py,sha256=yLtB-E5pTQR59OKVYySttWBu1xC2vR8ezSaRhIMtVwg,11870
|
|
@@ -178,15 +191,15 @@ fontTools/otlLib/optimize/__init__.py,sha256=UUQRpNkHU2RczCRt-Gz7sEiYE9AQq9BHLXZ
|
|
|
178
191
|
fontTools/otlLib/optimize/gpos.py,sha256=htOgSP743DZDUKF3eWAeJ-kdqNYOnpGXdlV-rbEXJ1A,17668
|
|
179
192
|
fontTools/otlLib/optimize/__main__.py,sha256=BvP472kA9KxBb9RMyyehPNevAfpmgW9MfdazkUiAO3M,104
|
|
180
193
|
fontTools/ufoLib/pointPen.py,sha256=CuREcm3IYteZNBDAd_ZRAV4XqBsy0s07jdWc4en9r-8,244
|
|
181
|
-
fontTools/ufoLib/kerning.py,sha256=
|
|
182
|
-
fontTools/ufoLib/filenames.py,sha256=
|
|
183
|
-
fontTools/ufoLib/validators.py,sha256=
|
|
184
|
-
fontTools/ufoLib/__init__.py,sha256=
|
|
185
|
-
fontTools/ufoLib/glifLib.py,sha256=
|
|
194
|
+
fontTools/ufoLib/kerning.py,sha256=o1BeJDVZ_CZZPzmOPwRKTqglYmhA_JZPjwq2JLgdQIk,4836
|
|
195
|
+
fontTools/ufoLib/filenames.py,sha256=hoyUhzzQMDaeckT7UdreISANq4-gLR2jGyk5yAyYtOA,10654
|
|
196
|
+
fontTools/ufoLib/validators.py,sha256=MWBqcLThGyYpst61QothA_BSlc6jGVhPvFiay-pobCY,32387
|
|
197
|
+
fontTools/ufoLib/__init__.py,sha256=ZVreWYfL-UgFes62pwW5lHyj0vfvVblwaIlRCV34Vq8,98961
|
|
198
|
+
fontTools/ufoLib/glifLib.py,sha256=Y-xzf4qbTIOl3-dVLXvu3iFCIDtAEu_klId2_UNngWs,77170
|
|
186
199
|
fontTools/ufoLib/plistlib.py,sha256=jzMGOGvHO6XvS-IO8hS04ur7r8-v2dnVq-vKMoJZvqQ,1510
|
|
187
|
-
fontTools/ufoLib/utils.py,sha256=
|
|
200
|
+
fontTools/ufoLib/utils.py,sha256=nZoJJqHXQSL-LXYE58_WHA97XlbTkEbYkdH3GL32SmQ,3192
|
|
188
201
|
fontTools/ufoLib/etree.py,sha256=T3sjLTgjMAq6VyYRicWPaMIVBJ2YSuwZxV6Vc5yZtQI,231
|
|
189
|
-
fontTools/ufoLib/converters.py,sha256=
|
|
202
|
+
fontTools/ufoLib/converters.py,sha256=YnBKr8kmyjwLcq8LdD46ubGOgyL9Pxt9avlvZn9anKI,13444
|
|
190
203
|
fontTools/ufoLib/errors.py,sha256=9f8l5NaFAj3BZPa6Bbqt06FL4afffLuMzy4nPf-eOlE,845
|
|
191
204
|
fontTools/unicodedata/OTTags.py,sha256=wOPpbMsNcp_gdvPFeITtgVMnTN8TJSNAsVEdu_nuPXE,1196
|
|
192
205
|
fontTools/unicodedata/__init__.py,sha256=ht5cIwvgKSonvRADzijXzBp6uZjhTvFobBwaba4ogaM,9033
|
|
@@ -200,16 +213,16 @@ fontTools/designspaceLib/split.py,sha256=FB1NuvhUO453UXveQZi9oyrW_caoCPM3RADp1rY
|
|
|
200
213
|
fontTools/designspaceLib/statNames.py,sha256=gXGKWVr1ju2_oL-R_DkyoZ3GlI7mfLORovpk1Ebgmvc,9237
|
|
201
214
|
fontTools/designspaceLib/__main__.py,sha256=xhtYXo1T1tsykhQDD0tcconSNYgWL5hoTBORpVDUYrc,103
|
|
202
215
|
fontTools/feaLib/error.py,sha256=Bz_5tNcNVcY7_nrAmFlQNhQldtqZWd8WUGQ2E3PWhZo,648
|
|
203
|
-
fontTools/feaLib/variableScalar.py,sha256=
|
|
204
|
-
fontTools/feaLib/lexer.c,sha256=
|
|
216
|
+
fontTools/feaLib/variableScalar.py,sha256=f6sOg9cfFJRI3fw04uRohDeFux0xnZanaPT_lcxAVOw,4200
|
|
217
|
+
fontTools/feaLib/lexer.c,sha256=UaY5Hy0WYsGF9UMJnA2tMx0k5DwYA72N2IKxpRsAcCc,754285
|
|
205
218
|
fontTools/feaLib/__init__.py,sha256=jlIru2ghxvb1HhC5Je2BCXjFJmFQlYKpruorPoz3BvQ,213
|
|
206
219
|
fontTools/feaLib/lookupDebugInfo.py,sha256=gVRr5-APWfT_a5-25hRuawSVX8fEvXVsOSLWkH91T2w,304
|
|
207
|
-
fontTools/feaLib/builder.py,sha256=
|
|
208
|
-
fontTools/feaLib/parser.py,sha256=
|
|
220
|
+
fontTools/feaLib/builder.py,sha256=jIJVmaLwrNGFBO7mQDNpchiGBiv70nNpZ4LVRVaaIUM,73757
|
|
221
|
+
fontTools/feaLib/parser.py,sha256=E8Ey_Ft2TUbbleRJkCQ9Nmjn1VZ4SCt3UtLACcZqr2s,99716
|
|
209
222
|
fontTools/feaLib/location.py,sha256=JXzHqGV56EHdcq823AwA5oaK05hf_1ySWpScbo3zGC0,234
|
|
210
223
|
fontTools/feaLib/lexer.py,sha256=emyMPmRoqNZkzxnJyI6JRCCtXrbCOFofwa9O6ABGLiw,11121
|
|
211
224
|
fontTools/feaLib/ast.py,sha256=48Y6vpSD_wYfucWyh_bQtzf2AQFX-pOwBvsxdcpVDz0,74158
|
|
212
|
-
fontTools/feaLib/lexer.cpython-313-darwin.so,sha256=
|
|
225
|
+
fontTools/feaLib/lexer.cpython-313-darwin.so,sha256=L7YRo7UW_yoWXYuMkpOoCCsGUDCaJAx07VfLNaT-1uk,375288
|
|
213
226
|
fontTools/feaLib/__main__.py,sha256=Df2PA6LXwna98lSXiL7R4as_ZEdWCIk3egSM5w7GpvM,2240
|
|
214
227
|
fontTools/ttLib/sfnt.py,sha256=wemkfz93dlAoyo-VVzmg5OLoSSyMFQNzBTTP3Kem-xk,22792
|
|
215
228
|
fontTools/ttLib/macUtils.py,sha256=lj3oeFpyjV7ko_JqnluneITmAtlc119J-vwTTg2s73A,1737
|
|
@@ -246,7 +259,7 @@ fontTools/ttLib/tables/grUtils.py,sha256=hcOJ5oJPOd2uJWnWA7qwR7AfL37YZ5zUT7g8o5B
|
|
|
246
259
|
fontTools/ttLib/tables/otTables.py,sha256=2U04ot_2ITlBZx2QtpnIOtBGftPFs9ZX2FWfz4vz1G0,96987
|
|
247
260
|
fontTools/ttLib/tables/_c_v_a_r.py,sha256=35ayk2kX1pcLGwyx0y4I1l-r7LHgdKv0ulVx8oBPteI,3527
|
|
248
261
|
fontTools/ttLib/tables/otConverters.py,sha256=ihE_WMSKAKSaBbMvnFYDj2eMxf7PvRMMa8zGwfoYuYc,74202
|
|
249
|
-
fontTools/ttLib/tables/_p_o_s_t.py,sha256=
|
|
262
|
+
fontTools/ttLib/tables/_p_o_s_t.py,sha256=9siVXSisWGdTfj_mC1E9dUDz9Jdm1i3QzI-l3i3VWME,11671
|
|
250
263
|
fontTools/ttLib/tables/_m_e_t_a.py,sha256=A0CZPEAVxYrpytjXUGQJCTddwG8KrvUVbtBe3A1MqgI,3913
|
|
251
264
|
fontTools/ttLib/tables/C_B_D_T_.py,sha256=5LNdc8FMir1kC5fvp5iHwWfeuE-RuqdxAArFXaqPjQ0,3646
|
|
252
265
|
fontTools/ttLib/tables/_c_m_a_p.py,sha256=r8-bB_E0EQh5h4TGX5nTnDnwTUtXuRB3iuqEDoN_IOM,62202
|
|
@@ -273,13 +286,13 @@ fontTools/ttLib/tables/B_A_S_E_.py,sha256=H71A9pJ850mvjbrWHqy8iFI2Dxg7102YRtAkfd
|
|
|
273
286
|
fontTools/ttLib/tables/_c_v_t.py,sha256=1_RhEcTmhWQWQp7Hsj8UsByKmXCIppZyIbIArGywEEM,1618
|
|
274
287
|
fontTools/ttLib/tables/J_S_T_F_.py,sha256=Q9TEf3OuyDIxZlmoz9a3c-mDMlJK6YBQ9KcYmiwFRbU,315
|
|
275
288
|
fontTools/ttLib/tables/V_D_M_X_.py,sha256=RbHl7vvO9pcjT_kKvcCmcByQj39n4PmVeq55wD5C14g,10437
|
|
276
|
-
fontTools/ttLib/tables/_a_v_a_r.py,sha256=
|
|
289
|
+
fontTools/ttLib/tables/_a_v_a_r.py,sha256=YodAzCsIywAKV48P4jQSrrUnYYWWuY6SDnNURAbM6fU,7175
|
|
277
290
|
fontTools/ttLib/tables/C_B_L_C_.py,sha256=YXlwovoCHYx8THLQD9iBU_VGoaB9LFObEKtL6ddD320,520
|
|
278
291
|
fontTools/ttLib/tables/T_S_I_P_.py,sha256=-il2ucTBOghVBY7cmleHdLZc3W3CKh7-iPPT0A3KBzk,341
|
|
279
292
|
fontTools/ttLib/tables/G_V_A_R_.py,sha256=13oO2dD-L4yfkrBuR-KN2rc40wh5lLIlx_khwMz5GH4,94
|
|
280
293
|
fontTools/ttLib/tables/_m_a_x_p.py,sha256=cIDIZWse9czwwsnlxIh3qwgwaXbt7PQAjXKAcmMDspY,5264
|
|
281
294
|
fontTools/ttLib/tables/M_A_T_H_.py,sha256=-TVu9Nlcs-1shkElbIk-CWtUwXUMdycHFkjvPE8C_fs,342
|
|
282
|
-
fontTools/ttLib/tables/_n_a_m_e.py,sha256=
|
|
295
|
+
fontTools/ttLib/tables/_n_a_m_e.py,sha256=86_0fUeA5_c-GY5ZnkqUI0jyWwMh1mn6yVOf6KKqIlU,41266
|
|
283
296
|
fontTools/ttLib/tables/M_E_T_A_.py,sha256=sA6ookcjchw8UYVEuS8QEXc62I9_Rms9cu_jKA6MkNI,11989
|
|
284
297
|
fontTools/ttLib/tables/_h_h_e_a.py,sha256=X4t1aF1MZMuz3phCVSFwKcNTeoZdx-042wFtHc-nK9w,4767
|
|
285
298
|
fontTools/ttLib/tables/S_T_A_T_.py,sha256=y9NiWCtnlZtMjw4K9_SdA84Xa-dJk7G5eb2dSe6ciWc,498
|
|
@@ -337,10 +350,4 @@ fontTools/colorLib/builder.py,sha256=kmO7OuudQQb3fEOS7aLzgTDVjqS9i2xIQmk9p1uBe8A
|
|
|
337
350
|
fontTools/colorLib/geometry.py,sha256=3ScySrR2YDJa7d5K5_xM5Yt1-3NCV-ry8ikYA5VwVbI,5518
|
|
338
351
|
fontTools/colorLib/errors.py,sha256=CsaviiRxxrpgVX4blm7KCyK8553ljwL44xkJOeC5U7U,41
|
|
339
352
|
fontTools/colorLib/unbuilder.py,sha256=iW-E5I39WsV82K3NgCO4Cjzwm1WqzGrtypHt8epwbHM,2142
|
|
340
|
-
fonttools-4.
|
|
341
|
-
fonttools-4.59.1.dist-info/WHEEL,sha256=YOKbiIEZep2WTRrpKV0dvEfsSeIOVH2NqduVxoKQt6I,142
|
|
342
|
-
fonttools-4.59.1.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
|
|
343
|
-
fonttools-4.59.1.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
|
|
344
|
-
fonttools-4.59.1.dist-info/METADATA,sha256=pnnUZaXJr-Js63mTTypxW4DqGR3DlP2okX_j0-CDrbE,108932
|
|
345
|
-
fonttools-4.59.1.dist-info/licenses/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072
|
|
346
|
-
fonttools-4.59.1.dist-info/licenses/LICENSE.external,sha256=lKg6ruBymg8wLTSsxKzsvZ1YNm8mJCkHX-VX5KVLLmk,20022
|
|
353
|
+
fonttools-4.60.0.data/data/share/man/man1/ttx.1,sha256=cLbm_pOOj1C76T2QXvDxzwDj9gk-GTd5RztvTMsouFw,5377
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|