fonttools 4.55.7__cp310-cp310-macosx_10_9_x86_64.whl → 4.56.0__cp310-cp310-macosx_10_9_x86_64.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 CHANGED
@@ -3,6 +3,6 @@ from fontTools.misc.loggingTools import configLogger
3
3
 
4
4
  log = logging.getLogger(__name__)
5
5
 
6
- version = __version__ = "4.55.7"
6
+ version = __version__ = "4.56.0"
7
7
 
8
8
  __all__ = ["version", "log", "configLogger"]
Binary file
fontTools/feaLib/error.py CHANGED
@@ -1,5 +1,5 @@
1
1
  class FeatureLibError(Exception):
2
- def __init__(self, message, location):
2
+ def __init__(self, message, location=None):
3
3
  Exception.__init__(self, message)
4
4
  self.location = location
5
5
 
@@ -58,6 +58,9 @@ class FakeFont:
58
58
  self.tables = {}
59
59
  self.cfg = Config()
60
60
 
61
+ def __contains__(self, tag):
62
+ return tag in self.tables
63
+
61
64
  def __getitem__(self, tag):
62
65
  return self.tables[tag]
63
66
 
Binary file
@@ -385,7 +385,7 @@ otData = [
385
385
  (
386
386
  "DeltaValue",
387
387
  "DeltaValue",
388
- "",
388
+ None,
389
389
  "DeltaFormat in (1,2,3)",
390
390
  "Array of compressed data",
391
391
  ),
@@ -2226,24 +2226,28 @@ _equivalents = {
2226
2226
  def fixLookupOverFlows(ttf, overflowRecord):
2227
2227
  """Either the offset from the LookupList to a lookup overflowed, or
2228
2228
  an offset from a lookup to a subtable overflowed.
2229
- The table layout is:
2230
- GPSO/GUSB
2231
- Script List
2232
- Feature List
2233
- LookUpList
2234
- Lookup[0] and contents
2235
- SubTable offset list
2236
- SubTable[0] and contents
2237
- ...
2238
- SubTable[n] and contents
2239
- ...
2240
- Lookup[n] and contents
2241
- SubTable offset list
2242
- SubTable[0] and contents
2243
- ...
2244
- SubTable[n] and contents
2229
+
2230
+ The table layout is::
2231
+
2232
+ GPSO/GUSB
2233
+ Script List
2234
+ Feature List
2235
+ LookUpList
2236
+ Lookup[0] and contents
2237
+ SubTable offset list
2238
+ SubTable[0] and contents
2239
+ ...
2240
+ SubTable[n] and contents
2241
+ ...
2242
+ Lookup[n] and contents
2243
+ SubTable offset list
2244
+ SubTable[0] and contents
2245
+ ...
2246
+ SubTable[n] and contents
2247
+
2245
2248
  If the offset to a lookup overflowed (SubTableIndex is None)
2246
- we must promote the *previous* lookup to an Extension type.
2249
+ we must promote the *previous* lookup to an Extension type.
2250
+
2247
2251
  If the offset from a lookup to subtable overflowed, then we must promote it
2248
2252
  to an Extension Lookup type.
2249
2253
  """
@@ -79,7 +79,8 @@ def bfs_base_table(
79
79
  """Breadth-first search tree of BaseTables.
80
80
 
81
81
  Args:
82
- the root of the tree.
82
+ root
83
+ the root of the tree.
83
84
  root_accessor (Optional[str]): attribute name for the root table, if any (mostly
84
85
  useful for debugging).
85
86
  skip_root (Optional[bool]): if True, the root itself is not visited, only its
fontTools/ttLib/ttFont.py CHANGED
@@ -27,6 +27,7 @@ class TTFont(object):
27
27
  they're actually accessed. This means that simple operations can be extremely fast.
28
28
 
29
29
  Example usage:
30
+
30
31
  .. code-block:: pycon
31
32
 
32
33
  >>>
@@ -39,8 +40,10 @@ class TTFont(object):
39
40
  >> tt['head'].unitsPerEm
40
41
  2048
41
42
 
42
- For details of the objects returned when accessing each table, see :ref:`tables`.
43
+ For details of the objects returned when accessing each table, see the
44
+ :doc:`tables </ttLib/tables>` documentation.
43
45
  To add a table to the font, use the :py:func:`newTable` function:
46
+
44
47
  .. code-block:: pycon
45
48
 
46
49
  >>>
@@ -50,7 +53,8 @@ class TTFont(object):
50
53
  >> font["OS/2"] = os2
51
54
 
52
55
  TrueType fonts can also be serialized to and from XML format (see also the
53
- :ref:`ttx` binary):
56
+ :doc:`ttx </ttx>` binary):
57
+
54
58
  .. code-block:: pycon
55
59
 
56
60
  >>
@@ -16,7 +16,6 @@
16
16
  # Format:
17
17
  # Start Code..End Code; Block Name
18
18
 
19
-
20
19
  RANGES = [
21
20
  0x0000, # .. 0x007F ; Basic Latin
22
21
  0x0080, # .. 0x00FF ; Latin-1 Supplement
@@ -32,9 +32,10 @@
32
32
  #
33
33
  # @missing: 0000..10FFFF; <script>
34
34
 
35
-
36
35
  RANGES = [
37
- 0x0000, # .. 0x02BB ; None
36
+ 0x0000, # .. 0x00B6 ; None
37
+ 0x00B7, # .. 0x00B7 ; {'Avst', 'Cari', 'Copt', 'Dupl', 'Elba', 'Geor', 'Glag', 'Gong', 'Goth', 'Grek', 'Hani', 'Latn', 'Lydi', 'Mahj', 'Perm', 'Shaw'}
38
+ 0x00B8, # .. 0x02BB ; None
38
39
  0x02BC, # .. 0x02BC ; {'Beng', 'Cyrl', 'Deva', 'Latn', 'Lisu', 'Thai', 'Toto'}
39
40
  0x02BD, # .. 0x02C6 ; None
40
41
  0x02C7, # .. 0x02C7 ; {'Bopo', 'Latn'}
@@ -316,7 +317,26 @@ RANGES = [
316
317
  ]
317
318
 
318
319
  VALUES = [
319
- None, # 0000..02BB
320
+ None, # 0000..00B6
321
+ {
322
+ "Avst",
323
+ "Cari",
324
+ "Copt",
325
+ "Dupl",
326
+ "Elba",
327
+ "Geor",
328
+ "Glag",
329
+ "Gong",
330
+ "Goth",
331
+ "Grek",
332
+ "Hani",
333
+ "Latn",
334
+ "Lydi",
335
+ "Mahj",
336
+ "Perm",
337
+ "Shaw",
338
+ }, # 00B7..00B7
339
+ None, # 00B8..02BB
320
340
  {"Beng", "Cyrl", "Deva", "Latn", "Lisu", "Thai", "Toto"}, # 02BC..02BC
321
341
  None, # 02BD..02C6
322
342
  {"Bopo", "Latn"}, # 02C7..02C7
@@ -19,7 +19,6 @@
19
19
  # https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
20
20
  #
21
21
 
22
-
23
22
  RANGES = [
24
23
  0x0000, # .. 0x0040 ; Common
25
24
  0x0041, # .. 0x005A ; Latin
@@ -325,7 +325,6 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
325
325
 
326
326
  for glyph in font.getGlyphOrder():
327
327
  log.debug("building gvar for glyph '%s'", glyph)
328
- isComposite = glyf[glyph].isComposite()
329
328
 
330
329
  allData = [
331
330
  m.glyf._getCoordinatesAndControls(glyph, m.hMetrics, m.vMetrics)
@@ -363,7 +362,7 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
363
362
  endPts = control.endPts
364
363
 
365
364
  for i, (delta, support) in enumerate(zip(deltas[1:], supports[1:])):
366
- if all(v == 0 for v in delta.array) and not isComposite:
365
+ if all(v == 0 for v in delta.array):
367
366
  continue
368
367
  var = TupleVariation(support, delta)
369
368
  if optimize:
@@ -372,16 +371,6 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
372
371
  )
373
372
 
374
373
  if None in delta_opt:
375
- """In composite glyphs, there should be one 0 entry
376
- to make sure the gvar entry is written to the font.
377
-
378
- This is to work around an issue with macOS 10.14 and can be
379
- removed once the behaviour of macOS is changed.
380
-
381
- https://github.com/fonttools/fonttools/issues/1381
382
- """
383
- if all(d is None for d in delta_opt):
384
- delta_opt = [(0, 0)] + [None] * (len(delta_opt) - 1)
385
374
  # Use "optimized" version only if smaller...
386
375
  var_opt = TupleVariation(support, delta_opt)
387
376
 
Binary file
@@ -412,25 +412,6 @@ class _Encoding(object):
412
412
  def extend(self, lst):
413
413
  self.items.update(lst)
414
414
 
415
- def get_room(self):
416
- """Maximum number of bytes that can be added to characteristic
417
- while still being beneficial to merge it into another one."""
418
- count = len(self.items)
419
- return max(0, (self.overhead - 1) // count - self.width)
420
-
421
- room = property(get_room)
422
-
423
- def get_gain(self):
424
- """Maximum possible byte gain from merging this into another
425
- characteristic."""
426
- count = len(self.items)
427
- return max(0, self.overhead - count)
428
-
429
- gain = property(get_gain)
430
-
431
- def gain_sort_key(self):
432
- return self.gain, self.chars
433
-
434
415
  def width_sort_key(self):
435
416
  return self.width, self.chars
436
417
 
@@ -534,13 +515,9 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
534
515
  # of the old encoding is completely eliminated. However, each row
535
516
  # now would require more bytes to encode, to the tune of one byte
536
517
  # per characteristic bit that is active in the new encoding but not
537
- # in the old one. The number of bits that can be added to an encoding
538
- # while still beneficial to merge it into another encoding is called
539
- # the "room" for that encoding.
518
+ # in the old one.
540
519
  #
541
- # The "gain" of an encodings is the maximum number of bytes we can
542
- # save by merging it into another encoding. The "gain" of merging
543
- # two encodings is how many bytes we save by doing so.
520
+ # The "gain" of merging two encodings is how many bytes we save by doing so.
544
521
  #
545
522
  # High-level algorithm:
546
523
  #
@@ -554,7 +531,11 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
554
531
  #
555
532
  # - Put all encodings into a "todo" list.
556
533
  #
557
- # - Sort todo list by decreasing gain (for stability).
534
+ # - Sort todo list (for stability) by width_sort_key(), which is a tuple
535
+ # of the following items:
536
+ # * The "width" of the encoding.
537
+ # * The characteristic bitmap of the encoding, with higher-numbered
538
+ # columns compared first.
558
539
  #
559
540
  # - Make a priority-queue of the gain from combining each two
560
541
  # encodings in the todo list. The priority queue is sorted by
@@ -575,16 +556,7 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
575
556
  #
576
557
  # The output is then sorted for stability, in the following way:
577
558
  # - The VarRegionList of the input is kept intact.
578
- # - All encodings are sorted before the main algorithm, by
579
- # gain_key_sort(), which is a tuple of the following items:
580
- # * The gain of the encoding.
581
- # * The characteristic bitmap of the encoding, with higher-numbered
582
- # columns compared first.
583
- # - The VarData is sorted by width_sort_key(), which is a tuple
584
- # of the following items:
585
- # * The "width" of the encoding.
586
- # * The characteristic bitmap of the encoding, with higher-numbered
587
- # columns compared first.
559
+ # - The VarData is sorted by the same width_sort_key() used at the beginning.
588
560
  # - Within each VarData, the items are sorted as vectors of numbers.
589
561
  #
590
562
  # Finally, each VarData is optimized to remove the empty columns and
@@ -626,7 +598,7 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1):
626
598
  front_mapping[(major << 16) + minor] = row
627
599
 
628
600
  # Prepare for the main algorithm.
629
- todo = sorted(encodings.values(), key=_Encoding.gain_sort_key)
601
+ todo = sorted(encodings.values(), key=_Encoding.width_sort_key)
630
602
  del encodings
631
603
 
632
604
  # Repeatedly pick two best encodings to combine, and combine them.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: fonttools
3
- Version: 4.55.7
3
+ Version: 4.56.0
4
4
  Summary: Tools to manipulate font files
5
5
  Home-page: http://github.com/fonttools/fonttools
6
6
  Author: Just van Rossum
@@ -391,6 +391,20 @@ Have fun!
391
391
  Changelog
392
392
  ~~~~~~~~~
393
393
 
394
+ 4.56.0 (released 2025-02-07)
395
+ ----------------------------
396
+
397
+ - [varStore] Sort the input todo list with the same sorting key used for the opimizer's output (#3767).
398
+ - [otData] Fix DeviceTable's ``DeltaValue`` repeat value which caused a crash after importing from XML and then compiling a GPOS containing Device tables (#3758).
399
+ - [feaLib] Make ``FeatureLibError`` pickleable, so client can e.g. use feaLib to can compile features in parallel with multiprocessing (#3762).
400
+ - [varLib/gvar] Removed workaround for old, long-fixed macOS bug about composite glyphs with all zero deltas (#1381, #1788).
401
+ - [Docs] Updated ttLib documentation, beefed up TTFont and TTGlyphSet explanations (#3720).
402
+
403
+ 4.55.8 (released 2025-01-29)
404
+ ----------------------------
405
+
406
+ - [MetaTools] Fixed bug in buildUCD.py script whereby the first non-header line of some UCD text file was being skipped. This affected in particular the U+00B7 (MIDDLE DOT) entry of ScriptExtensions.txt (#3756).
407
+
394
408
  4.55.7 (released 2025-01-28)
395
409
  ----------------------------
396
410
 
@@ -1,8 +1,7 @@
1
- fonttools-4.55.7.data/data/share/man/man1/ttx.1,sha256=cLbm_pOOj1C76T2QXvDxzwDj9gk-GTd5RztvTMsouFw,5377
2
1
  fontTools/ttx.py,sha256=XCerBn2ySMc5Bn54io4j5U5cW228GFREYvEeuvp0ZfM,16652
3
2
  fontTools/fontBuilder.py,sha256=ntG0lXnhXNcHK-C7bp0nGNQ68OutFA-84TNNpzntTcE,33952
4
3
  fontTools/unicode.py,sha256=ZZ7OMmWvIyV1IL1k6ioTzaRAh3tUvm6gvK7QgFbOIHY,1237
5
- fontTools/__init__.py,sha256=Ro8KilefcAY85fcoJjUo-CVnGfblXeJONKuyiC0oYwA,183
4
+ fontTools/__init__.py,sha256=_orqitJ6zKfuWG-XX0I6vuq1MhBXcEAA8-wdaVMksIo,183
6
5
  fontTools/tfmLib.py,sha256=UMbkM73JXRJVS9t2B-BJc13rSjImaWBuzCoehLwHFhs,14270
7
6
  fontTools/afmLib.py,sha256=1MagIItOzRV4vV5kKPxeDZbPJsfxLB3wdHLFkQvl0uk,13164
8
7
  fontTools/agl.py,sha256=05bm8Uq45uVWW8nPbP6xbNgmFyxQr8sWhYAiP0VSjnI,112975
@@ -13,7 +12,7 @@ fontTools/encodings/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01
13
12
  fontTools/encodings/MacRoman.py,sha256=4vEooUDm2gLCG8KIIDhRxm5-A64w7XrhP9cjDRr2Eo0,3576
14
13
  fontTools/encodings/StandardEncoding.py,sha256=Eo3AGE8FE_p-IVYYuV097KouSsF3UrXoRRN0XyvYbrs,3581
15
14
  fontTools/qu2cu/benchmark.py,sha256=GMcr_4r7L6K9SmJ13itt-_XKhnKqSVUDPlXUG6IZmmM,1400
16
- fontTools/qu2cu/qu2cu.cpython-310-darwin.so,sha256=JvtX3TIBXukPdjYjrEs4M_uaXYli1Ql7yrbie6LISCA,168072
15
+ fontTools/qu2cu/qu2cu.cpython-310-darwin.so,sha256=uEH2krE3R9M9IERyxJB6QyT0o9Yr6OZlwht8yzyVBYM,168072
17
16
  fontTools/qu2cu/__init__.py,sha256=Jfm1JljXbt91w4gyvZn6jzEmVnhRx50sh2fDongrOsE,618
18
17
  fontTools/qu2cu/qu2cu.py,sha256=IYtpkwHdfKOXJr65Y_pJ9Lrt_MgJaISAKGMAs5ilFSM,12288
19
18
  fontTools/qu2cu/cli.py,sha256=U2rooYnVVEalGRAWGFHk-Kp6Okys8wtzdaWLjw1bngY,3714
@@ -38,9 +37,9 @@ fontTools/misc/py23.py,sha256=aPVCEUz_deggwLBCeTSsccX6QgJavZqvdVtuhpzrPvA,2238
38
37
  fontTools/misc/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75
39
38
  fontTools/misc/macRes.py,sha256=GT_pnfPw2NCvvOF86nHLAnOtZ6SMHqEuLntaplXzvHM,8579
40
39
  fontTools/misc/encodingTools.py,sha256=hCv5PFfnXQJVCZA8Wyn1vr3vzLBbUuEPtGk5CzWM9RY,2073
41
- fontTools/misc/testTools.py,sha256=eLKDK01zFCt2McwEl8wB5S4v1NoT6WCixhD-mElMZDs,6933
40
+ fontTools/misc/testTools.py,sha256=_JdQXAtThRxXKv8hHT2Arh6ezADIZyRJ8nO909A1bYE,7001
42
41
  fontTools/misc/lazyTools.py,sha256=BC6MmF-OzJ3GrBD8TYDZ-VCSN4UOx0pN0r3oF4GSoiw,1020
43
- fontTools/misc/bezierTools.cpython-310-darwin.so,sha256=89WutKlrr9RP9OgIwM58CkZ5_8S4B6c0W4Qjo5ORmmM,557416
42
+ fontTools/misc/bezierTools.cpython-310-darwin.so,sha256=MFgX2YEANdrLK99ftW__ou1rV77EDGbkmWGOOXm_j3Q,557416
44
43
  fontTools/misc/loggingTools.py,sha256=2uXks8fEnBjdgJEcxMLvD77-lbOPto3neJ86bMqV_qM,19898
45
44
  fontTools/misc/textTools.py,sha256=pbhr6LVhm3J-0Z4saYnJfxBDzyoiw4BR9pAgwypiOw8,3377
46
45
  fontTools/misc/visitor.py,sha256=S3I_OCavPhkwGQpwIKV9XjNCaWUcafo7HQCyxDI0nQg,5314
@@ -61,7 +60,7 @@ fontTools/misc/plistlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
61
60
  fontTools/cu2qu/benchmark.py,sha256=wasPJmf8q9k9UHjpHChC3WQAGbBAyHN9PvJzXvWC0Fw,1296
62
61
  fontTools/cu2qu/cu2qu.c,sha256=zvMRDcmpgT7WY6HSX9N97fVaSdEA9LZJYBKfE40hoK0,589430
63
62
  fontTools/cu2qu/__init__.py,sha256=Cuc7Uglb0nSgaraTxXY5J8bReznH5wApW0uakN7MycY,618
64
- fontTools/cu2qu/cu2qu.cpython-310-darwin.so,sha256=SAiUaCs-46V5fALNPq62nhq4e79fpSAg1jS9rn1i4qw,145024
63
+ fontTools/cu2qu/cu2qu.cpython-310-darwin.so,sha256=6EF0EwMEkhk_K9o3ax5Ys4gqa1lh8HiEFrGJZ6dXv1U,145024
65
64
  fontTools/cu2qu/ufo.py,sha256=qZR70uWdCia19Ff8GLn5NeItscvvn69DegjDZVF4eNI,11794
66
65
  fontTools/cu2qu/cli.py,sha256=MbAQnOpZwrUFe_tjAP3Tgf6uLdOgHlONUcPNeTXwH0Y,6076
67
66
  fontTools/cu2qu/errors.py,sha256=PyJNMy8lHDtKpfFkc0nkM8F4jNLZAC4lPQCN1Km4bpg,2441
@@ -94,21 +93,21 @@ fontTools/svgLib/path/__init__.py,sha256=C82fh7xH6ZHsSFVnV848-xeDezpokx1EwTmayJC
94
93
  fontTools/svgLib/path/parser.py,sha256=8T6okMstvgM9ufb2zBcwSzsuuoYbqfnUjNYgb6kjznU,10788
95
94
  fontTools/svgLib/path/arc.py,sha256=-f5Ym6q4tDWQ76sMNSTUTWgL_7AfgXojvBhtBS7bWwQ,5812
96
95
  fontTools/varLib/interpolatableTestContourOrder.py,sha256=mHJ9Ry7Rm7H3zHDwEUQEtEIDseiUzOxjg4MveW_FSiU,3021
97
- fontTools/varLib/iup.cpython-310-darwin.so,sha256=OeFLsObAzAEKJldSHiTjyovJPKJcXbp793yaY6QtP7k,205784
96
+ fontTools/varLib/iup.cpython-310-darwin.so,sha256=WxjU4FHNU2mGWxiV9vRjBbCPOe8GMjQeTmB0AkroKhk,205784
98
97
  fontTools/varLib/iup.py,sha256=mKq_GRWuUg4yTmw2V32nu0v2r-SzzN7xS7rIbV0mYuc,14984
99
98
  fontTools/varLib/iup.c,sha256=XPTDiH4UuevR_-kxGQ2hY4DyKU9IWHe7fBIsm_TdyRE,776364
100
99
  fontTools/varLib/plot.py,sha256=NoSZkJ5ndxNcDvJIvd5pQ9_jX6X1oM1K2G_tR4sdPVs,7494
101
100
  fontTools/varLib/cff.py,sha256=EVgaQcoROIrYQsRuftnxFuGGldEPYbrIh5yBckylJC4,22901
102
101
  fontTools/varLib/models.py,sha256=sj_ENljh_qcMbfYzRIOlRgHq6tFOmL02Wv6WO8uofis,22398
103
102
  fontTools/varLib/avar.py,sha256=Ye_u0HHznaPQaTzufNFKDj_v9o_LxOKJoa_eTK1D1F0,9647
104
- fontTools/varLib/__init__.py,sha256=RGQ1bNPr9UcGeJ3mSAwctZbJJ-avZL1brjeAukRljEA,53983
103
+ fontTools/varLib/__init__.py,sha256=Y3Yx5TlD6wN6GImZfrHsetdZJD4mH6p5VC8VU12ucMg,53391
105
104
  fontTools/varLib/mutator.py,sha256=YJkKFFWjwpYZ1MrC7UZYJ1BuYTGiwgi7jHnpqNpKfKg,19278
106
105
  fontTools/varLib/interpolatablePlot.py,sha256=w393P6mGLRhYkIjSxMww3qyoYxAUZzCXlmPBbI_84C0,44375
107
106
  fontTools/varLib/builder.py,sha256=mSKOCcnnw-WzmZs15FayoqCDh77Ts7o9Tre9psh8CUc,6609
108
107
  fontTools/varLib/stat.py,sha256=XuNKKZxGlBrl4OGFDAwVXhpBwJi23U3BdHmNTKoJnvE,4811
109
108
  fontTools/varLib/interpolatableHelpers.py,sha256=lXd7kwfIVl-4opd-vxCDhf48RnJ7IQKv_uuFQM_6vaU,11496
110
109
  fontTools/varLib/interpolatableTestStartingPoint.py,sha256=K6OYKBspim6BXc91pfLTbGLyi5XZukfMuBc6hRpENG8,4296
111
- fontTools/varLib/varStore.py,sha256=RrBoEmNWCcsaL7CFZnzrcl26URVekUqTN4qoOy81eVQ,25160
110
+ fontTools/varLib/varStore.py,sha256=gE3mrrL5aEIdMkIbOLI5NcElnP2IThC6NzQCjR0fhxU,24050
112
111
  fontTools/varLib/interpolatable.py,sha256=Bhlq_LhEZ-sXfLNY8aFEChFrsKuT2kzmnuMfG5qi0v4,45221
113
112
  fontTools/varLib/avarPlanner.py,sha256=uLMGsL6cBbEMq5YItwABG_vXlXV3bxquM93WGDJ1brA,27358
114
113
  fontTools/varLib/mvar.py,sha256=LTV77vH_3Ecg_qKBO5xQzjLOlJir_ppEr7mPVZRgad8,2449
@@ -143,7 +142,7 @@ fontTools/pens/perimeterPen.py,sha256=lr6NzrIWxi4TXBJPbcJsKzqABWfQeil2Bgm9BgUD3N
143
142
  fontTools/pens/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75
144
143
  fontTools/pens/ttGlyphPen.py,sha256=yLtB-E5pTQR59OKVYySttWBu1xC2vR8ezSaRhIMtVwg,11870
145
144
  fontTools/pens/statisticsPen.py,sha256=piWK6NjjWqk9MLROjeE2-4EsxVYMyNU7UQFGD_trE9g,9808
146
- fontTools/pens/momentsPen.cpython-310-darwin.so,sha256=ZLOZf744fRqYMi8BFeWnEeCGNd5xKziLspin5gx2wRI,127320
145
+ fontTools/pens/momentsPen.cpython-310-darwin.so,sha256=DIsmrJ94nZFlh-yQbGymzV0fWlGX9-B8cLUCOKIxZbM,127320
147
146
  fontTools/pens/cairoPen.py,sha256=wuuOJ1qQDSt_K3zscM2nukRyHZTZMwMzzCXCirfq_qQ,592
148
147
  fontTools/pens/wxPen.py,sha256=W9RRHlBWHp-CVC4Exvk3ytBmRaB4-LgJPP5Bv7o9BA0,680
149
148
  fontTools/pens/boundsPen.py,sha256=wE3owOQA8DfhH-zBGC3lJvnVwp-oyIt0KZrEqXbmS9I,3129
@@ -176,19 +175,19 @@ fontTools/ufoLib/converters.py,sha256=EjuBkQxFltzeb-qnt2jzwieJH92f9ybcdZwAvQJi_K
176
175
  fontTools/ufoLib/errors.py,sha256=UULZ4h1i_Lb9lywjScgC6N-wC4yyPceTSin0BebbhJk,584
177
176
  fontTools/unicodedata/OTTags.py,sha256=wOPpbMsNcp_gdvPFeITtgVMnTN8TJSNAsVEdu_nuPXE,1196
178
177
  fontTools/unicodedata/__init__.py,sha256=DOCX0X9-Eo3mEju7Zjgcod7d8aswTo3vjDRzV7-8Z4g,8824
179
- fontTools/unicodedata/ScriptExtensions.py,sha256=cm34XQGJEeSmkqSpNGLgWoScWvVXObQ-NnygIp64fMk,27713
180
- fontTools/unicodedata/Scripts.py,sha256=-aLU0oxjjgdVHsT9h5Ej3gMJwzxE7I7RLKOwKREIkkw,130272
181
- fontTools/unicodedata/Blocks.py,sha256=K72YZjkqty9zQH_UUIOa-hwblt3GrUrjXUbcOWhR0rg,32416
178
+ fontTools/unicodedata/ScriptExtensions.py,sha256=YTZr2bOteHiz_7I4108PRy0Is4kFof-32yFuoKjFHjc,28207
179
+ fontTools/unicodedata/Scripts.py,sha256=I0nY08ovsZ4pHU5wYchjat9DjnxcpoTzaXAn5oFaKNI,130271
180
+ fontTools/unicodedata/Blocks.py,sha256=6BL66vrr5UWylVx3bicy6U2kO-QcNNKpmPKQTGggUEU,32415
182
181
  fontTools/designspaceLib/__init__.py,sha256=NGIC5zaq0NDdSkOyl6-i327cAzgCS3jeayEDvMEXRwY,129263
183
182
  fontTools/designspaceLib/types.py,sha256=ofK65qXNADqcpl7zI72Pa5s07-cm7G41iEmLVV44-Es,5320
184
183
  fontTools/designspaceLib/split.py,sha256=FB1NuvhUO453UXveQZi9oyrW_caoCPM3RADp1rYWkDs,19239
185
184
  fontTools/designspaceLib/statNames.py,sha256=lDqFxZAKSbpMuLsgbK6XtyHA5lqLyAK0t561wsSWmaM,9069
186
185
  fontTools/designspaceLib/__main__.py,sha256=xhtYXo1T1tsykhQDD0tcconSNYgWL5hoTBORpVDUYrc,103
187
- fontTools/feaLib/error.py,sha256=Tq2dZUlCOyLfjTr3qibsT2g9t-S_JEf6bKgyNX55oCE,643
186
+ fontTools/feaLib/error.py,sha256=Bz_5tNcNVcY7_nrAmFlQNhQldtqZWd8WUGQ2E3PWhZo,648
188
187
  fontTools/feaLib/variableScalar.py,sha256=Xu8tpDlQbfIfjnKnYDEf43EqVdyIJUy8_1ROVPg9_mg,4069
189
188
  fontTools/feaLib/lexer.c,sha256=vQ4myMvJqvp8rdY6YeEQJHM2Crw_eFajkHWefik884Q,750756
190
189
  fontTools/feaLib/__init__.py,sha256=jlIru2ghxvb1HhC5Je2BCXjFJmFQlYKpruorPoz3BvQ,213
191
- fontTools/feaLib/lexer.cpython-310-darwin.so,sha256=AWpvfXNqhSyL8JEs-8l4jlvj2ju-l-rWU5sW2whSONI,214400
190
+ fontTools/feaLib/lexer.cpython-310-darwin.so,sha256=0hA5JVS81F3haNexuyxrN4CcSRzu8Se66eZkMjj9PrE,214400
192
191
  fontTools/feaLib/lookupDebugInfo.py,sha256=gVRr5-APWfT_a5-25hRuawSVX8fEvXVsOSLWkH91T2w,304
193
192
  fontTools/feaLib/builder.py,sha256=y7t8_q0-PiPoLpXZCfThx1SmvF-ZpDDyVe8605FzaL4,71036
194
193
  fontTools/feaLib/parser.py,sha256=wbfG_-rqrn2RWMRQMlR3-uaiM9k4_mzCVF-wPLr00rQ,98466
@@ -205,7 +204,7 @@ fontTools/ttLib/__init__.py,sha256=fjOFcwbRed9b_giTgJ7FLsqeJC8ndnx327WfJztW-Tc,5
205
204
  fontTools/ttLib/removeOverlaps.py,sha256=YBtj1PX-d2jMgCiWGuI6ibghWApUWqH2trJGXNxrbjQ,12612
206
205
  fontTools/ttLib/scaleUpem.py,sha256=U_-NGkwfS9GRIackdEXjGYZ-wSomcUPXQahDneLeArI,14618
207
206
  fontTools/ttLib/reorderGlyphs.py,sha256=8ClsX9-tnPfuiD8kHY4jPliGJ-31-JdybA4s1UNWx4w,10316
208
- fontTools/ttLib/ttFont.py,sha256=UXPMV4c5pctOWNygu2F6_kR6FFE9zWLLOGFjh9282WU,40976
207
+ fontTools/ttLib/ttFont.py,sha256=llMtJ3VnzRUEyHk606_ElVty3J80E9BHbJnWamB_lO0,41024
209
208
  fontTools/ttLib/ttVisitor.py,sha256=_tah4C42Tv6Pm9QeLNQwwVCxqI4VNEAqYCbmThp6cvY,1025
210
209
  fontTools/ttLib/woff2.py,sha256=Ryw4WVwUFMtdEo9FcIejP1OTV92Z4B9y5Wq7nWDW3lE,61058
211
210
  fontTools/ttLib/__main__.py,sha256=3yxwadpQ5YTM27RXqG3sFE3EaOSFLQVHaUUH9P0qrSw,3443
@@ -228,7 +227,7 @@ fontTools/ttLib/tables/S_I_N_G_.py,sha256=CFDy8R2fDeYn7ocfrZr7Ui7U9D0h4G55CdPfY5
228
227
  fontTools/ttLib/tables/V_V_A_R_.py,sha256=Cstw6tc_U4-EmTriRItBSpvTJODAjMFQjfyTaxLzsbI,319
229
228
  fontTools/ttLib/tables/T_S_I__5.py,sha256=MMbUY3My4V5YTagNcSCu0q9wKzskG9nkUhOR0dp-GAI,1586
230
229
  fontTools/ttLib/tables/grUtils.py,sha256=hcOJ5oJPOd2uJWnWA7qwR7AfL37YZ5zUT7g8o5BBV80,2270
231
- fontTools/ttLib/tables/otTables.py,sha256=aCWou5-h4uhH2nPM2jwyD6OfoPhtnsOXm_ZefAawp4I,96937
230
+ fontTools/ttLib/tables/otTables.py,sha256=wgmNkSSLbZOkT_DrF7Y-ki8OGW7SC0A7Ue6OHUJQC4E,96972
232
231
  fontTools/ttLib/tables/_c_v_a_r.py,sha256=35ayk2kX1pcLGwyx0y4I1l-r7LHgdKv0ulVx8oBPteI,3527
233
232
  fontTools/ttLib/tables/otConverters.py,sha256=JI9b387HZwbPgf_0J2AO-nJA_wr6VHPJE1lC-H_An8E,74073
234
233
  fontTools/ttLib/tables/_p_o_s_t.py,sha256=bTywskWvLwUPvSAa1oyWdUEq6upPziMDGvYT59ga2ac,11610
@@ -247,7 +246,7 @@ fontTools/ttLib/tables/D__e_b_g.py,sha256=vROIV3UTxbK9eN3rmHOu1ARwBiOXL6K5ihmq0Q
247
246
  fontTools/ttLib/tables/F__e_a_t.py,sha256=ct79Gf__5ALlqfSBn6wvw6fazb31Od71R6vIp6o9XF4,5483
248
247
  fontTools/ttLib/tables/C_O_L_R_.py,sha256=SHwFVNVmoUQR2e87KuTSe-J9LfeegS4f2hEpee29_2o,5993
249
248
  fontTools/ttLib/tables/G__l_o_c.py,sha256=5DsxGzaG7HyJVvLlKQeff1lXt-XPWaHNNaf-EYwsKh4,2685
250
- fontTools/ttLib/tables/otTraverse.py,sha256=oTr7nA7u7kEltLAhl4Kfl1RPD8O2_bKaoXa5l0hkRVA,5497
249
+ fontTools/ttLib/tables/otTraverse.py,sha256=HznEVAlVf_8eyqjsO2edgELtMlXnjnUqccK3PytvVUE,5518
251
250
  fontTools/ttLib/tables/_m_o_r_x.py,sha256=OwamVpIO7REDnFr95HuFPoY_0U6i9zQPb11K1sFTvDY,548
252
251
  fontTools/ttLib/tables/_l_t_a_g.py,sha256=9YpApjI-rZ4e3HeT8Pj-osiHl3uALD9JXg5O7pqk9L0,2552
253
252
  fontTools/ttLib/tables/D_S_I_G_.py,sha256=AgQPM9Cdro1P-ehJjTfsC9mRTTtSc16At0nnpb1XOGI,5517
@@ -282,7 +281,7 @@ fontTools/ttLib/tables/_o_p_b_d.py,sha256=TNZv_2YTrj4dGzd6wA9Jb-KGZ99un177s5p3Ll
282
281
  fontTools/ttLib/tables/V_A_R_C_.py,sha256=3jFX50J6X-Cc4dwwiztKKsDTRXVHTXlVdQH328UN1-k,289
283
282
  fontTools/ttLib/tables/_h_m_t_x.py,sha256=C_-GIrH8rHEqEQtsGeYTc6XLtLeu6ibRl8AAQxkQng8,6042
284
283
  fontTools/ttLib/tables/_a_n_k_r.py,sha256=MpAzIifmIi_3gx2oP6PC3R2lu36Ewsr2-W1rXjsz2Ug,483
285
- fontTools/ttLib/tables/otData.py,sha256=esZs8p10aaJjioueGZ5plMou2LnzhJeuD-q1AOA-Kek,197260
284
+ fontTools/ttLib/tables/otData.py,sha256=-XXRwdVfP-Wz7oBjMPpku0A0QH9lw_fFGNzZlt9N0mo,197262
286
285
  fontTools/ttLib/tables/G__l_a_t.py,sha256=Xh3IzFgYlvNjrAOn7Ja73DrWrQTJgJxmDFSUKS6yHdM,8645
287
286
  fontTools/ttLib/tables/T_S_I__2.py,sha256=q2rub-d77iWWiBM6awO0-TCl-Xq7kalPobHYC2QEOfc,496
288
287
  fontTools/ttLib/tables/asciiTable.py,sha256=4c69jsAirUnDEpylf9CYBoCKTzwbmfbtUAOrtPnpHjY,637
@@ -321,9 +320,10 @@ fontTools/colorLib/builder.py,sha256=kmO7OuudQQb3fEOS7aLzgTDVjqS9i2xIQmk9p1uBe8A
321
320
  fontTools/colorLib/geometry.py,sha256=3ScySrR2YDJa7d5K5_xM5Yt1-3NCV-ry8ikYA5VwVbI,5518
322
321
  fontTools/colorLib/errors.py,sha256=CsaviiRxxrpgVX4blm7KCyK8553ljwL44xkJOeC5U7U,41
323
322
  fontTools/colorLib/unbuilder.py,sha256=iW-E5I39WsV82K3NgCO4Cjzwm1WqzGrtypHt8epwbHM,2142
324
- fonttools-4.55.7.dist-info/RECORD,,
325
- fonttools-4.55.7.dist-info/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072
326
- fonttools-4.55.7.dist-info/WHEEL,sha256=7ffzAg6B9jNsI5fzXAu6JnblIkGEPEYZBaLviKorHoo,110
327
- fonttools-4.55.7.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
328
- fonttools-4.55.7.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
329
- fonttools-4.55.7.dist-info/METADATA,sha256=A-zHmzLh0ljDGDOx7Db_U8CGmr8e9Cwgse6p70ZUyQ4,100947
323
+ fonttools-4.56.0.dist-info/RECORD,,
324
+ fonttools-4.56.0.dist-info/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072
325
+ fonttools-4.56.0.dist-info/WHEEL,sha256=7ffzAg6B9jNsI5fzXAu6JnblIkGEPEYZBaLviKorHoo,110
326
+ fonttools-4.56.0.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
327
+ fonttools-4.56.0.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
328
+ fonttools-4.56.0.dist-info/METADATA,sha256=mHbq7JOdQyQ3-vtlnRALzKhNmCpZgtAPIWzHOxG2txQ,101907
329
+ fonttools-4.56.0.data/data/share/man/man1/ttx.1,sha256=cLbm_pOOj1C76T2QXvDxzwDj9gk-GTd5RztvTMsouFw,5377