fonttools 4.55.0__cp38-cp38-win_amd64.whl → 4.55.2__cp38-cp38-win_amd64.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/cffLib/transforms.py +6 -1
- fontTools/cu2qu/cu2qu.cp38-win_amd64.pyd +0 -0
- fontTools/cu2qu/cu2qu.py +1 -4
- fontTools/designspaceLib/__init__.py +1 -1
- fontTools/feaLib/builder.py +16 -23
- fontTools/feaLib/lexer.cp38-win_amd64.pyd +0 -0
- fontTools/misc/bezierTools.cp38-win_amd64.pyd +0 -0
- fontTools/misc/bezierTools.py +1 -4
- fontTools/misc/symfont.py +1 -4
- fontTools/misc/transform.py +15 -4
- fontTools/pens/momentsPen.cp38-win_amd64.pyd +0 -0
- fontTools/pens/momentsPen.py +1 -4
- fontTools/qu2cu/qu2cu.cp38-win_amd64.pyd +0 -0
- fontTools/qu2cu/qu2cu.py +1 -4
- fontTools/ttLib/ttGlyphSet.py +19 -4
- fontTools/varLib/iup.cp38-win_amd64.pyd +0 -0
- fontTools/varLib/iup.py +9 -5
- {fonttools-4.55.0.dist-info → fonttools-4.55.2.dist-info}/METADATA +17 -1
- {fonttools-4.55.0.dist-info → fonttools-4.55.2.dist-info}/RECORD +25 -25
- {fonttools-4.55.0.data → fonttools-4.55.2.data}/data/share/man/man1/ttx.1 +0 -0
- {fonttools-4.55.0.dist-info → fonttools-4.55.2.dist-info}/LICENSE +0 -0
- {fonttools-4.55.0.dist-info → fonttools-4.55.2.dist-info}/WHEEL +0 -0
- {fonttools-4.55.0.dist-info → fonttools-4.55.2.dist-info}/entry_points.txt +0 -0
- {fonttools-4.55.0.dist-info → fonttools-4.55.2.dist-info}/top_level.txt +0 -0
fontTools/__init__.py
CHANGED
fontTools/cffLib/transforms.py
CHANGED
|
@@ -457,7 +457,12 @@ def remove_unused_subroutines(cff):
|
|
|
457
457
|
if subrs == font.GlobalSubrs:
|
|
458
458
|
if not hasattr(font, "FDArray") and hasattr(font.Private, "Subrs"):
|
|
459
459
|
local_subrs = font.Private.Subrs
|
|
460
|
-
elif
|
|
460
|
+
elif (
|
|
461
|
+
hasattr(font, "FDArray")
|
|
462
|
+
and len(font.FDArray) == 1
|
|
463
|
+
and hasattr(font.FDArray[0].Private, "Subrs")
|
|
464
|
+
):
|
|
465
|
+
# Technically we shouldn't do this. But I've run into fonts that do it.
|
|
461
466
|
local_subrs = font.FDArray[0].Private.Subrs
|
|
462
467
|
else:
|
|
463
468
|
local_subrs = None
|
|
Binary file
|
fontTools/cu2qu/cu2qu.py
CHANGED
|
@@ -17,13 +17,10 @@
|
|
|
17
17
|
|
|
18
18
|
try:
|
|
19
19
|
import cython
|
|
20
|
-
|
|
21
|
-
COMPILED = cython.compiled
|
|
22
20
|
except (AttributeError, ImportError):
|
|
23
21
|
# if cython not installed, use mock module with no-op decorators and types
|
|
24
22
|
from fontTools.misc import cython
|
|
25
|
-
|
|
26
|
-
COMPILED = False
|
|
23
|
+
COMPILED = cython.compiled
|
|
27
24
|
|
|
28
25
|
import math
|
|
29
26
|
|
|
@@ -1596,7 +1596,7 @@ class BaseDocWriter(object):
|
|
|
1596
1596
|
mapElement.attrib["input"] = self.intOrFloat(inputValue)
|
|
1597
1597
|
mapElement.attrib["output"] = self.intOrFloat(outputValue)
|
|
1598
1598
|
axisElement.append(mapElement)
|
|
1599
|
-
if axisObject.axisOrdering or axisObject.axisLabels:
|
|
1599
|
+
if axisObject.axisOrdering is not None or axisObject.axisLabels:
|
|
1600
1600
|
labelsElement = ET.Element("labels")
|
|
1601
1601
|
if axisObject.axisOrdering is not None:
|
|
1602
1602
|
labelsElement.attrib["ordering"] = str(axisObject.axisOrdering)
|
fontTools/feaLib/builder.py
CHANGED
|
@@ -1658,38 +1658,31 @@ class Builder(object):
|
|
|
1658
1658
|
|
|
1659
1659
|
return default, device
|
|
1660
1660
|
|
|
1661
|
+
def makeAnchorPos(self, varscalar, deviceTable, location):
|
|
1662
|
+
device = None
|
|
1663
|
+
if not isinstance(varscalar, VariableScalar):
|
|
1664
|
+
if deviceTable is not None:
|
|
1665
|
+
device = otl.buildDevice(dict(deviceTable))
|
|
1666
|
+
return varscalar, device
|
|
1667
|
+
default, device = self.makeVariablePos(location, varscalar)
|
|
1668
|
+
if device is not None and deviceTable is not None:
|
|
1669
|
+
raise FeatureLibError(
|
|
1670
|
+
"Can't define a device coordinate and variable scalar", location
|
|
1671
|
+
)
|
|
1672
|
+
return default, device
|
|
1673
|
+
|
|
1661
1674
|
def makeOpenTypeAnchor(self, location, anchor):
|
|
1662
1675
|
"""ast.Anchor --> otTables.Anchor"""
|
|
1663
1676
|
if anchor is None:
|
|
1664
1677
|
return None
|
|
1665
|
-
variable = False
|
|
1666
1678
|
deviceX, deviceY = None, None
|
|
1667
1679
|
if anchor.xDeviceTable is not None:
|
|
1668
1680
|
deviceX = otl.buildDevice(dict(anchor.xDeviceTable))
|
|
1669
1681
|
if anchor.yDeviceTable is not None:
|
|
1670
1682
|
deviceY = otl.buildDevice(dict(anchor.yDeviceTable))
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
continue
|
|
1675
|
-
if getattr(anchor, dim + "DeviceTable") is not None:
|
|
1676
|
-
raise FeatureLibError(
|
|
1677
|
-
"Can't define a device coordinate and variable scalar", location
|
|
1678
|
-
)
|
|
1679
|
-
default, device = self.makeVariablePos(location, varscalar)
|
|
1680
|
-
setattr(anchor, dim, default)
|
|
1681
|
-
if device is not None:
|
|
1682
|
-
if dim == "x":
|
|
1683
|
-
deviceX = device
|
|
1684
|
-
else:
|
|
1685
|
-
deviceY = device
|
|
1686
|
-
variable = True
|
|
1687
|
-
|
|
1688
|
-
otlanchor = otl.buildAnchor(
|
|
1689
|
-
anchor.x, anchor.y, anchor.contourpoint, deviceX, deviceY
|
|
1690
|
-
)
|
|
1691
|
-
if variable:
|
|
1692
|
-
otlanchor.Format = 3
|
|
1683
|
+
x, deviceX = self.makeAnchorPos(anchor.x, anchor.xDeviceTable, location)
|
|
1684
|
+
y, deviceY = self.makeAnchorPos(anchor.y, anchor.yDeviceTable, location)
|
|
1685
|
+
otlanchor = otl.buildAnchor(x, y, anchor.contourpoint, deviceX, deviceY)
|
|
1693
1686
|
return otlanchor
|
|
1694
1687
|
|
|
1695
1688
|
_VALUEREC_ATTRS = {
|
|
Binary file
|
|
Binary file
|
fontTools/misc/bezierTools.py
CHANGED
|
@@ -9,13 +9,10 @@ from collections import namedtuple
|
|
|
9
9
|
|
|
10
10
|
try:
|
|
11
11
|
import cython
|
|
12
|
-
|
|
13
|
-
COMPILED = cython.compiled
|
|
14
12
|
except (AttributeError, ImportError):
|
|
15
13
|
# if cython not installed, use mock module with no-op decorators and types
|
|
16
14
|
from fontTools.misc import cython
|
|
17
|
-
|
|
18
|
-
COMPILED = False
|
|
15
|
+
COMPILED = cython.compiled
|
|
19
16
|
|
|
20
17
|
|
|
21
18
|
EPSILON = 1e-9
|
fontTools/misc/symfont.py
CHANGED
|
@@ -121,13 +121,10 @@ def printGreenPen(penName, funcs, file=sys.stdout, docstring=None):
|
|
|
121
121
|
"""from fontTools.pens.basePen import BasePen, OpenContourError
|
|
122
122
|
try:
|
|
123
123
|
import cython
|
|
124
|
-
|
|
125
|
-
COMPILED = cython.compiled
|
|
126
124
|
except (AttributeError, ImportError):
|
|
127
125
|
# if cython not installed, use mock module with no-op decorators and types
|
|
128
126
|
from fontTools.misc import cython
|
|
129
|
-
|
|
130
|
-
COMPILED = False
|
|
127
|
+
COMPILED = cython.compiled
|
|
131
128
|
|
|
132
129
|
|
|
133
130
|
__all__ = ["%s"]
|
fontTools/misc/transform.py
CHANGED
|
@@ -437,8 +437,20 @@ class DecomposedTransform:
|
|
|
437
437
|
|
|
438
438
|
@classmethod
|
|
439
439
|
def fromTransform(self, transform):
|
|
440
|
+
"""Return a DecomposedTransform() equivalent of this transformation.
|
|
441
|
+
The returned solution always has skewY = 0, and angle in the (-180, 180].
|
|
442
|
+
|
|
443
|
+
:Example:
|
|
444
|
+
>>> DecomposedTransform.fromTransform(Transform(3, 0, 0, 2, 0, 0))
|
|
445
|
+
DecomposedTransform(translateX=0, translateY=0, rotation=0.0, scaleX=3.0, scaleY=2.0, skewX=0.0, skewY=0.0, tCenterX=0, tCenterY=0)
|
|
446
|
+
>>> DecomposedTransform.fromTransform(Transform(0, 0, 0, 1, 0, 0))
|
|
447
|
+
DecomposedTransform(translateX=0, translateY=0, rotation=0.0, scaleX=0.0, scaleY=1.0, skewX=0.0, skewY=0.0, tCenterX=0, tCenterY=0)
|
|
448
|
+
>>> DecomposedTransform.fromTransform(Transform(0, 0, 1, 1, 0, 0))
|
|
449
|
+
DecomposedTransform(translateX=0, translateY=0, rotation=-45.0, scaleX=0.0, scaleY=1.4142135623730951, skewX=0.0, skewY=0.0, tCenterX=0, tCenterY=0)
|
|
450
|
+
"""
|
|
440
451
|
# Adapted from an answer on
|
|
441
452
|
# https://math.stackexchange.com/questions/13150/extracting-rotation-scale-values-from-2d-transformation-matrix
|
|
453
|
+
|
|
442
454
|
a, b, c, d, x, y = transform
|
|
443
455
|
|
|
444
456
|
sx = math.copysign(1, a)
|
|
@@ -450,21 +462,20 @@ class DecomposedTransform:
|
|
|
450
462
|
|
|
451
463
|
rotation = 0
|
|
452
464
|
scaleX = scaleY = 0
|
|
453
|
-
skewX =
|
|
465
|
+
skewX = 0
|
|
454
466
|
|
|
455
467
|
# Apply the QR-like decomposition.
|
|
456
468
|
if a != 0 or b != 0:
|
|
457
469
|
r = math.sqrt(a * a + b * b)
|
|
458
470
|
rotation = math.acos(a / r) if b >= 0 else -math.acos(a / r)
|
|
459
471
|
scaleX, scaleY = (r, delta / r)
|
|
460
|
-
skewX
|
|
472
|
+
skewX = math.atan((a * c + b * d) / (r * r))
|
|
461
473
|
elif c != 0 or d != 0:
|
|
462
474
|
s = math.sqrt(c * c + d * d)
|
|
463
475
|
rotation = math.pi / 2 - (
|
|
464
476
|
math.acos(-c / s) if d >= 0 else -math.acos(c / s)
|
|
465
477
|
)
|
|
466
478
|
scaleX, scaleY = (delta / s, s)
|
|
467
|
-
skewX, skewY = (0, math.atan((a * c + b * d) / (s * s)))
|
|
468
479
|
else:
|
|
469
480
|
# a = b = c = d = 0
|
|
470
481
|
pass
|
|
@@ -476,7 +487,7 @@ class DecomposedTransform:
|
|
|
476
487
|
scaleX * sx,
|
|
477
488
|
scaleY,
|
|
478
489
|
math.degrees(skewX) * sx,
|
|
479
|
-
|
|
490
|
+
0.0,
|
|
480
491
|
0,
|
|
481
492
|
0,
|
|
482
493
|
)
|
|
Binary file
|
fontTools/pens/momentsPen.py
CHANGED
|
@@ -2,13 +2,10 @@ from fontTools.pens.basePen import BasePen, OpenContourError
|
|
|
2
2
|
|
|
3
3
|
try:
|
|
4
4
|
import cython
|
|
5
|
-
|
|
6
|
-
COMPILED = cython.compiled
|
|
7
5
|
except (AttributeError, ImportError):
|
|
8
6
|
# if cython not installed, use mock module with no-op decorators and types
|
|
9
7
|
from fontTools.misc import cython
|
|
10
|
-
|
|
11
|
-
COMPILED = False
|
|
8
|
+
COMPILED = cython.compiled
|
|
12
9
|
|
|
13
10
|
|
|
14
11
|
__all__ = ["MomentsPen"]
|
|
Binary file
|
fontTools/qu2cu/qu2cu.py
CHANGED
|
@@ -18,13 +18,10 @@
|
|
|
18
18
|
|
|
19
19
|
try:
|
|
20
20
|
import cython
|
|
21
|
-
|
|
22
|
-
COMPILED = cython.compiled
|
|
23
21
|
except (AttributeError, ImportError):
|
|
24
22
|
# if cython not installed, use mock module with no-op decorators and types
|
|
25
23
|
from fontTools.misc import cython
|
|
26
|
-
|
|
27
|
-
COMPILED = False
|
|
24
|
+
COMPILED = cython.compiled
|
|
28
25
|
|
|
29
26
|
from fontTools.misc.bezierTools import splitCubicAtTC
|
|
30
27
|
from collections import namedtuple
|
fontTools/ttLib/ttGlyphSet.py
CHANGED
|
@@ -119,19 +119,35 @@ class _TTGlyphSetCFF(_TTGlyphSet):
|
|
|
119
119
|
tableTag = "CFF2" if "CFF2" in font else "CFF "
|
|
120
120
|
self.charStrings = list(font[tableTag].cff.values())[0].CharStrings
|
|
121
121
|
super().__init__(font, location, self.charStrings)
|
|
122
|
+
self.setLocation(location)
|
|
123
|
+
|
|
124
|
+
def __getitem__(self, glyphName):
|
|
125
|
+
return _TTGlyphCFF(self, glyphName)
|
|
126
|
+
|
|
127
|
+
def setLocation(self, location):
|
|
122
128
|
self.blender = None
|
|
123
129
|
if location:
|
|
130
|
+
# TODO Optimize by using instancer.setLocation()
|
|
131
|
+
|
|
124
132
|
from fontTools.varLib.varStore import VarStoreInstancer
|
|
125
133
|
|
|
126
134
|
varStore = getattr(self.charStrings, "varStore", None)
|
|
127
135
|
if varStore is not None:
|
|
128
136
|
instancer = VarStoreInstancer(
|
|
129
|
-
varStore.otVarStore, font["fvar"].axes, location
|
|
137
|
+
varStore.otVarStore, self.font["fvar"].axes, location
|
|
130
138
|
)
|
|
131
139
|
self.blender = instancer.interpolateFromDeltas
|
|
140
|
+
else:
|
|
141
|
+
self.blender = None
|
|
132
142
|
|
|
133
|
-
|
|
134
|
-
|
|
143
|
+
@contextmanager
|
|
144
|
+
def pushLocation(self, location, reset: bool):
|
|
145
|
+
self.setLocation(location)
|
|
146
|
+
with _TTGlyphSet.pushLocation(self, location, reset) as value:
|
|
147
|
+
try:
|
|
148
|
+
yield value
|
|
149
|
+
finally:
|
|
150
|
+
self.setLocation(self.location)
|
|
135
151
|
|
|
136
152
|
|
|
137
153
|
class _TTGlyphSetVARC(_TTGlyphSet):
|
|
@@ -335,7 +351,6 @@ class _TTGlyphVARC(_TTGlyph):
|
|
|
335
351
|
)
|
|
336
352
|
|
|
337
353
|
for comp in glyph.components:
|
|
338
|
-
|
|
339
354
|
if comp.flags & VarComponentFlags.HAVE_CONDITION:
|
|
340
355
|
condition = varc.ConditionList.ConditionTable[comp.conditionIndex]
|
|
341
356
|
if not _evaluateCondition(
|
|
Binary file
|
fontTools/varLib/iup.py
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
try:
|
|
2
2
|
import cython
|
|
3
|
-
|
|
4
|
-
COMPILED = cython.compiled
|
|
5
3
|
except (AttributeError, ImportError):
|
|
6
4
|
# if cython not installed, use mock module with no-op decorators and types
|
|
7
5
|
from fontTools.misc import cython
|
|
8
|
-
|
|
9
|
-
COMPILED = False
|
|
6
|
+
COMPILED = cython.compiled
|
|
10
7
|
|
|
11
8
|
from typing import (
|
|
12
9
|
Sequence,
|
|
@@ -77,7 +74,14 @@ def iup_segment(
|
|
|
77
74
|
d = d2
|
|
78
75
|
else:
|
|
79
76
|
# Interpolate
|
|
80
|
-
|
|
77
|
+
#
|
|
78
|
+
# NOTE: we assign an explicit intermediate variable here in
|
|
79
|
+
# order to disable a fused mul-add optimization. See:
|
|
80
|
+
#
|
|
81
|
+
# - https://godbolt.org/z/YsP4T3TqK,
|
|
82
|
+
# - https://github.com/fonttools/fonttools/issues/3703
|
|
83
|
+
nudge = (x - x1) * scale
|
|
84
|
+
d = d1 + nudge
|
|
81
85
|
|
|
82
86
|
out.append(d)
|
|
83
87
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fonttools
|
|
3
|
-
Version: 4.55.
|
|
3
|
+
Version: 4.55.2
|
|
4
4
|
Summary: Tools to manipulate font files
|
|
5
5
|
Home-page: http://github.com/fonttools/fonttools
|
|
6
6
|
Author: Just van Rossum
|
|
@@ -377,6 +377,22 @@ Have fun!
|
|
|
377
377
|
Changelog
|
|
378
378
|
~~~~~~~~~
|
|
379
379
|
|
|
380
|
+
4.55.2 (released 2024-12-05)
|
|
381
|
+
----------------------------
|
|
382
|
+
|
|
383
|
+
- [Docs] update Sphinx config (#3712)
|
|
384
|
+
- [designspaceLib] Allow axisOrdering to be set to zero (#3715)
|
|
385
|
+
- [feaLib] Don’t modify variable anchors in place (#3717)
|
|
386
|
+
|
|
387
|
+
4.55.1 (released 2024-12-02)
|
|
388
|
+
----------------------------
|
|
389
|
+
|
|
390
|
+
- [ttGlyphSet] Support VARC CFF2 fonts (#3683)
|
|
391
|
+
- [DecomposedTransform] Document and implement always skewY == 0 (#3697)
|
|
392
|
+
- [varLib] "Fix" cython iup issue? (#3704)
|
|
393
|
+
- Cython minor refactor (#3705)
|
|
394
|
+
|
|
395
|
+
|
|
380
396
|
4.55.0 (released 2024-11-14)
|
|
381
397
|
----------------------------
|
|
382
398
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
fontTools/__init__.py,sha256=
|
|
1
|
+
fontTools/__init__.py,sha256=h__fmsn3dGnZMojhMWR1Z0XYsIgfhZ8NB1v8GoaNku8,191
|
|
2
2
|
fontTools/__main__.py,sha256=T8Tg8xPKHOCVoYVG82p_zpQXfW7_ERRAphBkZVvhWN8,960
|
|
3
3
|
fontTools/afmLib.py,sha256=YbmmjT8Du6qFUhFHwnAhOdvsyfXszODVjSJtd18CCjY,13603
|
|
4
4
|
fontTools/agl.py,sha256=4aKwnbvSVUa39eV5Ka8e5ULwV-IEp4pcfwlMwEH_z3k,118208
|
|
@@ -11,7 +11,7 @@ fontTools/cffLib/CFF2ToCFF.py,sha256=5uPKDFwoJvH0KVDrCjpf3MdOpqbyvdZMe0jZ3emjdsQ
|
|
|
11
11
|
fontTools/cffLib/CFFToCFF2.py,sha256=0dCYSSozptUC9BVUre49e6LgjSxJRtVyMl8vDB6i3r4,10424
|
|
12
12
|
fontTools/cffLib/__init__.py,sha256=dts9y-OM8u0-MRsLqQ6WoL2kcDQSNLiYOrQVkd88T8g,110745
|
|
13
13
|
fontTools/cffLib/specializer.py,sha256=TTPFdTmtpirYFpTCTbaL-wFL0a3GXwRmjSEbPIWltV0,33468
|
|
14
|
-
fontTools/cffLib/transforms.py,sha256=
|
|
14
|
+
fontTools/cffLib/transforms.py,sha256=8hffhsWRhBhVukNSL-7ieuygTVV5Ta3Cz9s4s8Awvgg,17861
|
|
15
15
|
fontTools/cffLib/width.py,sha256=3L9NWI0uQrJHvHF_IvC_tbW1cq94zgDEPSjubdug8qM,6284
|
|
16
16
|
fontTools/colorLib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
fontTools/colorLib/builder.py,sha256=S8z4Qzw2FAE-d1Zm1eHyqDBYh6FW4W_hQJWjVeVicOk,23672
|
|
@@ -24,11 +24,11 @@ fontTools/cu2qu/__init__.py,sha256=OoM_nBJAleZal6kxeNJn1ESy1pNm5c3DG417yVIE0-Q,6
|
|
|
24
24
|
fontTools/cu2qu/__main__.py,sha256=6Vb8Ler3yqJ5w84UwlMJV6cS01uhV4PN10OlXQ6jlqo,98
|
|
25
25
|
fontTools/cu2qu/benchmark.py,sha256=FwdvNjKfWHo18_CX0CO8AY5c68XSBE4M4TJo_EkB4q8,1350
|
|
26
26
|
fontTools/cu2qu/cli.py,sha256=CvWzC5a6XF_v5o0yrS4vGI1JXiVVLzSJahTIqpJmiPk,6274
|
|
27
|
-
fontTools/cu2qu/cu2qu.cp38-win_amd64.pyd,sha256=
|
|
28
|
-
fontTools/cu2qu/cu2qu.py,sha256=
|
|
27
|
+
fontTools/cu2qu/cu2qu.cp38-win_amd64.pyd,sha256=zJlp_ZT6y9nx3RGqBDuqJrbxKXvj7EWryRz1-nwujDo,104960
|
|
28
|
+
fontTools/cu2qu/cu2qu.py,sha256=XH2bnQ5aG9ic921ZWzQzU1-q3MQU6INCjLk4XjRj5_Y,16970
|
|
29
29
|
fontTools/cu2qu/errors.py,sha256=uYyPSs_x-EMJKO2S3cLGWyk_KlHoOoh_XEtdB_oKBp0,2518
|
|
30
30
|
fontTools/cu2qu/ufo.py,sha256=Mpd_7Be9jxNcOKFqkyRp8Oem3CS3R-ZYMMSD03LJL6o,12143
|
|
31
|
-
fontTools/designspaceLib/__init__.py,sha256=
|
|
31
|
+
fontTools/designspaceLib/__init__.py,sha256=80fzbsWaoTMaXsPGMnevXAxR4eqvZeYCwV_GYpBvlkM,132601
|
|
32
32
|
fontTools/designspaceLib/__main__.py,sha256=QOn1SNf8xmw-zQ5EJN0JnrHllu9rbRm8kTpWF9b3jlo,109
|
|
33
33
|
fontTools/designspaceLib/split.py,sha256=MjgyVDfhLEdb844nioL3xIN6VinHqY4jcdOlwmvr03M,19714
|
|
34
34
|
fontTools/designspaceLib/statNames.py,sha256=n9EyVpvFfISQbejzs45AHj6kSBHHgFr-8xl9jVmcHng,9322
|
|
@@ -40,9 +40,9 @@ fontTools/encodings/codecs.py,sha256=bSpO6kuPbEIDsXSVHhzftqsm_FFUiXpLVfPSk410SqE
|
|
|
40
40
|
fontTools/feaLib/__init__.py,sha256=RprjP6BKswq4pt0J-9L1XGuZfjIFAGD6HDly_haMAN4,217
|
|
41
41
|
fontTools/feaLib/__main__.py,sha256=niUAPkiYxeRAJMlJuvVJZism2VFufZrNaQtieA7sNLk,2318
|
|
42
42
|
fontTools/feaLib/ast.py,sha256=rjEQSs5fFCCUM03RIEJ1iohPv-VPttlkngE_UzTKOL8,75935
|
|
43
|
-
fontTools/feaLib/builder.py,sha256=
|
|
43
|
+
fontTools/feaLib/builder.py,sha256=FBdQP5Eq2UFKQE95zey3LBoCI6TlEObyf3w0qzcYtfA,71653
|
|
44
44
|
fontTools/feaLib/error.py,sha256=PSXeclXORb9hkvXh95e6YrNKZpPPWkekXOJZCSEhSjg,665
|
|
45
|
-
fontTools/feaLib/lexer.cp38-win_amd64.pyd,sha256=
|
|
45
|
+
fontTools/feaLib/lexer.cp38-win_amd64.pyd,sha256=HGyo6Qjmtjq0Va-z9UCQM6mkrwEZlMFUVBiTvR7SPGA,142336
|
|
46
46
|
fontTools/feaLib/lexer.py,sha256=7VZ3NPFH7V1mvRbym111BNKvbB4hLfGLTMS0VV_3Ipw,11408
|
|
47
47
|
fontTools/feaLib/location.py,sha256=teHrhjT8zzImcGBEJS1J43oaX9onCPu_pynxS8d-tUg,246
|
|
48
48
|
fontTools/feaLib/lookupDebugInfo.py,sha256=h4Ig8kmEk5WlGf1C9JJAbbOKQK5OwkFLdj8CT7fOkmU,316
|
|
@@ -59,8 +59,8 @@ fontTools/merge/unicode.py,sha256=mgqRFhRugda62Xt0r28SduaN7YBzRfHxrpNprjLqoX8,43
|
|
|
59
59
|
fontTools/merge/util.py,sha256=3alo4b7mhFNC6h8PjeqNU99dS7EuO8sdZkZpvRsEE6E,3521
|
|
60
60
|
fontTools/misc/__init__.py,sha256=QoK6HlOoqtVqX5gOyv0bJiTXsVBbBRreUifdccWNp2k,76
|
|
61
61
|
fontTools/misc/arrayTools.py,sha256=baENNALPvYRUhS4rdx_F3ltOmVIf1PV9G2EaMt7gAHM,11907
|
|
62
|
-
fontTools/misc/bezierTools.cp38-win_amd64.pyd,sha256=
|
|
63
|
-
fontTools/misc/bezierTools.py,sha256=
|
|
62
|
+
fontTools/misc/bezierTools.cp38-win_amd64.pyd,sha256=6ErsdlBjBDKupLteNW3o5C2Vns_1z9uX9z03q7bf3K0,381952
|
|
63
|
+
fontTools/misc/bezierTools.py,sha256=pGC_2kFPjSftWVm7DJTh9xxfddUw2DkBPFn4779iq1o,46221
|
|
64
64
|
fontTools/misc/classifyTools.py,sha256=wLTjOhLiZaLiwwUTj2Ad5eZ5T_38W0Eo_uzRGWHWYvE,5783
|
|
65
65
|
fontTools/misc/cliTools.py,sha256=7zKOXczaCKRMW6Yv5jdCZYHco8y0-lfimhIWzQ2IL8A,1915
|
|
66
66
|
fontTools/misc/configTools.py,sha256=JNR7HqId8zudAlFcK4lwocHZkwgaTSH4u6BOyFLTujw,11537
|
|
@@ -83,11 +83,11 @@ fontTools/misc/psOperators.py,sha256=9nZ4ymbiiCApY9V8OARpYqvO73OEcJgGyTtCuGzD-rw
|
|
|
83
83
|
fontTools/misc/py23.py,sha256=BhByQabxZis6fDvK3ZVeI-YRj_1rMQeBZCFzGWIac0U,2334
|
|
84
84
|
fontTools/misc/roundTools.py,sha256=2rmbuk73NYGPmJqP58FQCFioSLilvNffd0WbL5znKUg,3283
|
|
85
85
|
fontTools/misc/sstruct.py,sha256=RG8qOzTkp9LIN5bis5XkbA-6amnuv2Pi-foZTzIQRRE,7389
|
|
86
|
-
fontTools/misc/symfont.py,sha256=
|
|
86
|
+
fontTools/misc/symfont.py,sha256=ZxyD-mipj7raOtXDdCakpwoSo0hsKPJXLlp3OBPHraE,7235
|
|
87
87
|
fontTools/misc/testTools.py,sha256=OhWQmnuWrgJWtME_9fHG7Npd1JzVktCPcbHiccxL2wI,7162
|
|
88
88
|
fontTools/misc/textTools.py,sha256=NIBmM6k9PXIs8DMpio-9ckHS35QxL2EMFwBXP6zG-8w,3531
|
|
89
89
|
fontTools/misc/timeTools.py,sha256=lmncKUKvxQKO4Kqx2k7UNFkYYpj2n5CwR1lPiLZv3tA,2322
|
|
90
|
-
fontTools/misc/transform.py,sha256=
|
|
90
|
+
fontTools/misc/transform.py,sha256=WZ9mVAEBqcyhCCUmLLS-hDuiFgppQYvK3e-jESkugGY,16136
|
|
91
91
|
fontTools/misc/treeTools.py,sha256=IMopMUcuhelvz8gNra50Zc1w8DSlWywnL6DFaz1ijQs,1314
|
|
92
92
|
fontTools/misc/vector.py,sha256=yaNixq5pXXpPCD_wRP-LsXYSLr4WPX_y92Po05FeLU0,4209
|
|
93
93
|
fontTools/misc/visitor.py,sha256=h35A4SWww-MNII7f68bc9pj1-2poTxztvVpKH5EEtEE,5456
|
|
@@ -115,8 +115,8 @@ fontTools/pens/explicitClosingLinePen.py,sha256=knCXcjSl2iPy6mLCDnsdDYx6J5rV7FH4
|
|
|
115
115
|
fontTools/pens/filterPen.py,sha256=tWhgklyaCTUt7oQRTBbFUcOlc702V0NfadCH3X93CYg,8031
|
|
116
116
|
fontTools/pens/freetypePen.py,sha256=NqNzXrOTDckoH4N6WLnj-KuxGcg6z7DlqSCfmpq8qAE,20370
|
|
117
117
|
fontTools/pens/hashPointPen.py,sha256=ZAU87uw5ge3Kb4i9kRV28a5VFeZ_TWSsJabyAzwAHrU,3662
|
|
118
|
-
fontTools/pens/momentsPen.cp38-win_amd64.pyd,sha256=
|
|
119
|
-
fontTools/pens/momentsPen.py,sha256=
|
|
118
|
+
fontTools/pens/momentsPen.cp38-win_amd64.pyd,sha256=TDdJs9MQpnj_rbkGGwroQogK3_Jx_93FrRFM0BALLGs,95232
|
|
119
|
+
fontTools/pens/momentsPen.py,sha256=Z-V5CjQBSj3qPxg3C_DBFKExqno89nOe3jWwHT9_xsM,26537
|
|
120
120
|
fontTools/pens/perimeterPen.py,sha256=Zy5F8QzaNJAkkQQSb2QJCp-wZTvDAjBn-B099t2ABds,2222
|
|
121
121
|
fontTools/pens/pointInsidePen.py,sha256=Hy48iR5NWV3x_wWoos-UC7GMtwvvUhd_q_ykiwaWdzQ,6547
|
|
122
122
|
fontTools/pens/pointPen.py,sha256=iB5vNauqHSeCPHKVBHXg6RAyC_e8Rmuaeldjwb-hpG8,22896
|
|
@@ -138,8 +138,8 @@ fontTools/qu2cu/__init__.py,sha256=MpdE0XsHSDo9M3hyHLkPPLxB3FKr3aiT0dPW5qHCuSo,6
|
|
|
138
138
|
fontTools/qu2cu/__main__.py,sha256=leKpToUNNyHf0nobr1I19vus2ziA1pO7rRKkreat-Xw,100
|
|
139
139
|
fontTools/qu2cu/benchmark.py,sha256=PFxx2Bfu7-KuNrzdOIBXHPZvyNphqqcTVy4CneaCo3M,1456
|
|
140
140
|
fontTools/qu2cu/cli.py,sha256=1QLBTSZW7e_VATJN9vjszRxIk_-Xjxu1KP53yX4T7q8,3839
|
|
141
|
-
fontTools/qu2cu/qu2cu.cp38-win_amd64.pyd,sha256=
|
|
142
|
-
fontTools/qu2cu/qu2cu.py,sha256=
|
|
141
|
+
fontTools/qu2cu/qu2cu.cp38-win_amd64.pyd,sha256=csH-Ydlvp9qHeC4UplA8dAOeiE6AbwtQMrDJHKtOSU4,115200
|
|
142
|
+
fontTools/qu2cu/qu2cu.py,sha256=dtp5Zqhcs_NePwA2U5fgG2LtWleRwmBilTurau8sLL0,12693
|
|
143
143
|
fontTools/subset/__init__.py,sha256=a0OHXLf9m8qlXRFA7Gxp5qxe8ImUQ5ziK3bD-4fm618,137743
|
|
144
144
|
fontTools/subset/__main__.py,sha256=cEIC52EtGOJvFDfHXzi0M2EAYmyHAcI-ZZ0lb2y4r7s,101
|
|
145
145
|
fontTools/subset/cff.py,sha256=GSmxdsokxuFKvJJQVcAIOhd5hYQq8KkzxnXE_dgm8yo,6329
|
|
@@ -161,7 +161,7 @@ fontTools/ttLib/sfnt.py,sha256=7X9xujgV0Za4nOEfUD3mSrrRb-f9NuzEqgJ-IFLNVQU,23494
|
|
|
161
161
|
fontTools/ttLib/standardGlyphOrder.py,sha256=VG-8hW1VgQIro7cDJusSXThILIr4pQgmU37t85SQ65Y,6056
|
|
162
162
|
fontTools/ttLib/ttCollection.py,sha256=1_wMr_ONgwPZh6wfbS_a7lNeE2IxUqd029TGObOsWs0,4088
|
|
163
163
|
fontTools/ttLib/ttFont.py,sha256=zyTL_lOCvJye5gzc1zvcqph2uEbR69AH79VclrLOftc,42131
|
|
164
|
-
fontTools/ttLib/ttGlyphSet.py,sha256=
|
|
164
|
+
fontTools/ttLib/ttGlyphSet.py,sha256=FvznrgEaD-Rz0737kfQGRFD6jX4uGpGqbu5ZCQtVuyI,18353
|
|
165
165
|
fontTools/ttLib/ttVisitor.py,sha256=_Dkmz0tDs-5AFUR46kyg3Ku6BMPifrZzRU8-9UvXdz4,1057
|
|
166
166
|
fontTools/ttLib/woff2.py,sha256=LuX5SHMlhuhNRI0W5J2UnDua7_3NCnGaoofXhmjkf3g,62741
|
|
167
167
|
fontTools/ttLib/tables/B_A_S_E_.py,sha256=4UZNhdCuaS5mPHQiatgtTBh73TIUyRxmNVQd7zMLagk,93
|
|
@@ -293,8 +293,8 @@ fontTools/varLib/interpolatablePlot.py,sha256=tUKFd8H9B2eD_GE6jV13J-dZkkIeLmk3oj
|
|
|
293
293
|
fontTools/varLib/interpolatableTestContourOrder.py,sha256=Pbt0jW0LoVggIwrtADZ7HWK6Ftdoo1bjuWz0ost0HD0,3103
|
|
294
294
|
fontTools/varLib/interpolatableTestStartingPoint.py,sha256=f5MJ3mj8MctJCvDJwqmW1fIVOgovUMYAOela9HweaRU,4403
|
|
295
295
|
fontTools/varLib/interpolate_layout.py,sha256=tTPUes_K7MwooUO_wac9AeFEVgL1uGSz4ITYiOizaME,3813
|
|
296
|
-
fontTools/varLib/iup.cp38-win_amd64.pyd,sha256=
|
|
297
|
-
fontTools/varLib/iup.py,sha256=
|
|
296
|
+
fontTools/varLib/iup.cp38-win_amd64.pyd,sha256=c--_qQyXBJit4_W_3sEUMQed-qC12cJNVzv7wCIO5pw,138240
|
|
297
|
+
fontTools/varLib/iup.py,sha256=O_xPJOBECrNDbQqCC3e5xf9KsWXUd1i3BAp9Fl6Hv2Y,15474
|
|
298
298
|
fontTools/varLib/merger.py,sha256=V-B17poOYbbrRsfUYJbdqt46GtRfG833MKwtv9NOB3Q,62519
|
|
299
299
|
fontTools/varLib/models.py,sha256=ZqQb1Lapj5dCO8dwa3UTx1LsIpF0-GiDte32t_TMJJQ,23040
|
|
300
300
|
fontTools/varLib/multiVarStore.py,sha256=OvrrTaKrCZCXP40Rrv-2w416P-dNz3xE6gPOEyS3PrY,8558
|
|
@@ -314,10 +314,10 @@ fontTools/voltLib/error.py,sha256=3TsaZBA82acFd2j5Beq3WUQTURTKM0zxOnUFGZovSNA,40
|
|
|
314
314
|
fontTools/voltLib/lexer.py,sha256=v9V4zdBO2VqVJG__IWrL8fv_CRURmh2eD_1UpbIJn9g,3467
|
|
315
315
|
fontTools/voltLib/parser.py,sha256=xAQPwO8uyYHKi-v9yMtz2RGE3lj75V4lanUGgIL9AC4,25572
|
|
316
316
|
fontTools/voltLib/voltToFea.py,sha256=iJ7mJa9q-vWpmQgfCJC_ZrzNop_mgC1pazr1DhPJleE,29235
|
|
317
|
-
fonttools-4.55.
|
|
318
|
-
fonttools-4.55.
|
|
319
|
-
fonttools-4.55.
|
|
320
|
-
fonttools-4.55.
|
|
321
|
-
fonttools-4.55.
|
|
322
|
-
fonttools-4.55.
|
|
323
|
-
fonttools-4.55.
|
|
317
|
+
fonttools-4.55.2.data/data/share/man/man1/ttx.1,sha256=E71F9mRNWlttVpzlnP7w_fqkQygPkph5s-AtVa0Js50,5601
|
|
318
|
+
fonttools-4.55.2.dist-info/LICENSE,sha256=Ir74Bpfs-qF_l-YrmibfoSggvgVYPo3RKtFpskEnTJk,1093
|
|
319
|
+
fonttools-4.55.2.dist-info/METADATA,sha256=5oKBi0XO-t-ka9vsxHUUNA_FC2M53mkpVN3EaHUFT74,168402
|
|
320
|
+
fonttools-4.55.2.dist-info/WHEEL,sha256=rTcqimtzpX3smAWAhGmiRSWAxTY4PqYPNE-p4kscHDQ,99
|
|
321
|
+
fonttools-4.55.2.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
|
|
322
|
+
fonttools-4.55.2.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
|
|
323
|
+
fonttools-4.55.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|