fonttools 4.59.2__cp313-cp313-win32.whl → 4.60.1__cp313-cp313-win32.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.

Files changed (44) hide show
  1. fontTools/__init__.py +1 -1
  2. fontTools/annotations.py +30 -0
  3. fontTools/cu2qu/cu2qu.c +1067 -946
  4. fontTools/cu2qu/cu2qu.cp313-win32.pyd +0 -0
  5. fontTools/cu2qu/cu2qu.py +19 -2
  6. fontTools/feaLib/lexer.c +18 -12
  7. fontTools/feaLib/lexer.cp313-win32.pyd +0 -0
  8. fontTools/misc/bezierTools.c +18 -12
  9. fontTools/misc/bezierTools.cp313-win32.pyd +0 -0
  10. fontTools/misc/enumTools.py +23 -0
  11. fontTools/misc/visitor.py +24 -16
  12. fontTools/pens/filterPen.py +218 -26
  13. fontTools/pens/momentsPen.c +18 -12
  14. fontTools/pens/momentsPen.cp313-win32.pyd +0 -0
  15. fontTools/pens/pointPen.py +40 -6
  16. fontTools/qu2cu/qu2cu.c +30 -16
  17. fontTools/qu2cu/qu2cu.cp313-win32.pyd +0 -0
  18. fontTools/subset/__init__.py +178 -12
  19. fontTools/ttLib/tables/_p_o_s_t.py +5 -5
  20. fontTools/ufoLib/__init__.py +278 -175
  21. fontTools/ufoLib/converters.py +14 -5
  22. fontTools/ufoLib/filenames.py +16 -6
  23. fontTools/ufoLib/glifLib.py +286 -190
  24. fontTools/ufoLib/kerning.py +32 -12
  25. fontTools/ufoLib/utils.py +41 -13
  26. fontTools/ufoLib/validators.py +121 -97
  27. fontTools/varLib/avar/__init__.py +0 -0
  28. fontTools/varLib/avar/__main__.py +72 -0
  29. fontTools/varLib/avar/build.py +79 -0
  30. fontTools/varLib/avar/map.py +108 -0
  31. fontTools/varLib/avar/plan.py +1004 -0
  32. fontTools/varLib/{avar.py → avar/unbuild.py} +70 -59
  33. fontTools/varLib/avarPlanner.py +3 -999
  34. fontTools/varLib/interpolatableHelpers.py +3 -0
  35. fontTools/varLib/iup.c +24 -14
  36. fontTools/varLib/iup.cp313-win32.pyd +0 -0
  37. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/METADATA +41 -2
  38. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/RECORD +44 -37
  39. {fonttools-4.59.2.data → fonttools-4.60.1.data}/data/share/man/man1/ttx.1 +0 -0
  40. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/WHEEL +0 -0
  41. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/entry_points.txt +0 -0
  42. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/licenses/LICENSE +0 -0
  43. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/licenses/LICENSE.external +0 -0
  44. {fonttools-4.59.2.dist-info → fonttools-4.60.1.dist-info}/top_level.txt +0 -0
@@ -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.3 */
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 "3_1_3"
30
- #define CYTHON_HEX_VERSION 0x030103F0
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
- __pyx_t_3 = (__Pyx_PyList_GET_SIZE(__pyx_v_indices) != 0);
3974
- if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_3 < 0))) __PYX_ERR(0, 104, __pyx_L1_error)
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
 
@@ -12096,15 +12100,16 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
12096
12100
  return -1;
12097
12101
  }
12098
12102
  /* #### Code section: init_codeobjects ### */
12099
- typedef struct {
12100
- unsigned int argcount : 3;
12101
- unsigned int num_posonly_args : 1;
12102
- unsigned int num_kwonly_args : 1;
12103
- unsigned int nlocals : 5;
12104
- unsigned int flags : 10;
12105
- unsigned int first_line : 9;
12106
- unsigned int line_table_length : 14;
12107
- } __Pyx_PyCode_New_function_description;
12103
+ \
12104
+ typedef struct {
12105
+ unsigned int argcount : 3;
12106
+ unsigned int num_posonly_args : 1;
12107
+ unsigned int num_kwonly_args : 1;
12108
+ unsigned int nlocals : 5;
12109
+ unsigned int flags : 10;
12110
+ unsigned int first_line : 9;
12111
+ unsigned int line_table_length : 14;
12112
+ } __Pyx_PyCode_New_function_description;
12108
12113
  /* NewCodeObj.proto */
12109
12114
  static PyObject* __Pyx_PyCode_New(
12110
12115
  const __Pyx_PyCode_New_function_description descr,
@@ -15532,6 +15537,7 @@ static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
15532
15537
  return -1;
15533
15538
  }
15534
15539
  mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
15540
+ Py_DECREF(bases);
15535
15541
  if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
15536
15542
  return -1;
15537
15543
  }
@@ -19189,6 +19195,10 @@ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt
19189
19195
  PyCode_NewWithPosOnlyArgs
19190
19196
  #endif
19191
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
19192
19202
  return result;
19193
19203
  }
19194
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.59.2
3
+ Version: 4.60.1
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,41 @@ Have fun!
388
392
  Changelog
389
393
  ~~~~~~~~~
390
394
 
395
+ 4.60.1 (released 2025-09-29)
396
+ ----------------------------
397
+
398
+ - [ufoLib] Reverted accidental method name change in ``UFOReader.getKerningGroupConversionRenameMaps``
399
+ that broke compatibility with downstream projects like defcon (#3948, #3947, robotools/defcon#478).
400
+ - [ufoLib] Added test coverage for ``getKerningGroupConversionRenameMaps`` method (#3950).
401
+ - [subset] Don't try to subset BASE table; pass it through by default instead (#3949).
402
+ - [subset] Remove empty BaseRecord entries in MarkBasePos lookups (#3897, #3892).
403
+ - [subset] Add pruning for MarkLigPos and MarkMarkPos lookups (#3946).
404
+ - [subset] Remove duplicate features when subsetting (#3945).
405
+ - [Docs] Added documentation for the visitor module (#3944).
406
+
407
+ 4.60.0 (released 2025-09-17)
408
+ ----------------------------
409
+
410
+ - [pointPen] Allow ``reverseFlipped`` parameter of ``DecomposingPointPen`` to take a ``ReverseFlipped``
411
+ enum value to control whether/how to reverse contour direction of flipped components, in addition to
412
+ the existing True/False. This allows to set ``ReverseFlipped.ON_CURVE_FIRST`` to ensure that
413
+ the decomposed outline starts with an on-curve point before being reversed, for better consistency
414
+ with other segment-oriented contour transformations. The change is backward compatible, and the
415
+ default behavior hasn't changed (#3934).
416
+ - [filterPen] Added ``ContourFilterPointPen``, base pen for buffered contour operations, and
417
+ ``OnCurveStartPointPen`` filter to ensure contours start with an on-curve point (#3934).
418
+ - [cu2qu] Fixed difference in cython vs pure-python complex division by real number (#3930).
419
+ - [varLib.avar] Refactored and added some new sub-modules and scripts (#3926).
420
+ * ``varLib.avar.build`` module to build avar (and a missing fvar) binaries into a possibly empty TTFont,
421
+ * ``varLib.avar.unbuild`` module to print a .designspace snippet that would generate the same avar binary,
422
+ * ``varLib.avar.map`` module to take TTFont and do the mapping, in user/normalized space,
423
+ * ``varLib.avar.plan`` module moved from ``varLib.avarPlanner``.
424
+ The bare ``fonttools varLib.avar`` script is deprecated, in favour of ``fonttools varLib.avar.build`` (or ``unbuild``).
425
+ - [interpolatable] Clarify ``linear_sum_assignment`` backend options and minimal dependency
426
+ usage (#3927).
427
+ - [post] Speed up ``build_psNameMapping`` (#3923).
428
+ - [ufoLib] Added typing annotations to fontTools.ufoLib (#3875).
429
+
391
430
  4.59.2 (released 2025-08-27)
392
431
  ----------------------------
393
432
 
@@ -1,7 +1,8 @@
1
- fontTools/__init__.py,sha256=tDtr9dKOrmxz5xXK-4JYaRrVOBx6WHpvfrXg_aWIzYU,191
1
+ fontTools/__init__.py,sha256=Kx6CqtCPpUeyrf7vwLVhBcoe7feUBG34YBh7HlfUk2Q,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
5
+ fontTools/annotations.py,sha256=9qO1E6zyl_cyF_vSJtFUz9FQAv2brjTrJ_rDXbREEVM,1255
5
6
  fontTools/fontBuilder.py,sha256=qeUEUzacKdZXZ9dS_e2AuLE62c17eg_oHwnZgD04TaQ,35144
6
7
  fontTools/help.py,sha256=8yn5iAonGPsijFSHmU6aLuuZtaLMhR5CIkSp9hVYL2c,1161
7
8
  fontTools/tfmLib.py,sha256=-bv4iv2VhUSse5pA0oXdudf7o7ZuFWdWNsiHElO06dk,14730
@@ -24,9 +25,9 @@ fontTools/cu2qu/__init__.py,sha256=OoM_nBJAleZal6kxeNJn1ESy1pNm5c3DG417yVIE0-Q,6
24
25
  fontTools/cu2qu/__main__.py,sha256=6Vb8Ler3yqJ5w84UwlMJV6cS01uhV4PN10OlXQ6jlqo,98
25
26
  fontTools/cu2qu/benchmark.py,sha256=FwdvNjKfWHo18_CX0CO8AY5c68XSBE4M4TJo_EkB4q8,1350
26
27
  fontTools/cu2qu/cli.py,sha256=CvWzC5a6XF_v5o0yrS4vGI1JXiVVLzSJahTIqpJmiPk,6274
27
- fontTools/cu2qu/cu2qu.c,sha256=XulAMk8KQNi6r0jua6LwcVYkjogcD-V4F9fe1lwKa5s,648967
28
- fontTools/cu2qu/cu2qu.cp313-win32.pyd,sha256=s67jAWsIeSA5EryCbwG1t6imyVzJTg9mmHznAV28uh0,90112
29
- fontTools/cu2qu/cu2qu.py,sha256=ZciNHndtwWFx5leQO7Gxuk5ybyYTd8ZMsVawBOprNMc,17907
28
+ fontTools/cu2qu/cu2qu.c,sha256=2FsHl-S3Z_szu4zNH2Hv9ouU4Kg7jlK_GFax_U57xeU,653740
29
+ fontTools/cu2qu/cu2qu.cp313-win32.pyd,sha256=SsHpTUREA1dfdWHvfQsftwiN4l15w6R8cgmkT4W-G-M,92160
30
+ fontTools/cu2qu/cu2qu.py,sha256=nyniLf18Y6D7CBjp6NXZj2XOpYdaiiZVFprZLiFTwtc,18549
30
31
  fontTools/cu2qu/errors.py,sha256=uYyPSs_x-EMJKO2S3cLGWyk_KlHoOoh_XEtdB_oKBp0,2518
31
32
  fontTools/cu2qu/ufo.py,sha256=Mpd_7Be9jxNcOKFqkyRp8Oem3CS3R-ZYMMSD03LJL6o,12143
32
33
  fontTools/designspaceLib/__init__.py,sha256=80fzbsWaoTMaXsPGMnevXAxR4eqvZeYCwV_GYpBvlkM,132601
@@ -43,8 +44,8 @@ fontTools/feaLib/__main__.py,sha256=niUAPkiYxeRAJMlJuvVJZism2VFufZrNaQtieA7sNLk,
43
44
  fontTools/feaLib/ast.py,sha256=q-UvEPZ97AAHpggVOzVHdgfTcE072kuOK08rdAYpCXU,76301
44
45
  fontTools/feaLib/builder.py,sha256=_ofuSJ9Jtz1Ybzk4ReCWSa431PXfIq-UcVkYZ2B0Ruo,75565
45
46
  fontTools/feaLib/error.py,sha256=pqi8F2tnH2h7pXVffxwzuBuWaSHMzZsXs5VckdQKQAI,670
46
- fontTools/feaLib/lexer.c,sha256=m0YzN-VNwtnglL5NrlYvUTJGlJjpnDANAfwpfujmOtk,771396
47
- fontTools/feaLib/lexer.cp313-win32.pyd,sha256=3CIYHRBsBts-tapN6dPuk5sfU7vvSu0IpRdzx8JN8UY,111104
47
+ fontTools/feaLib/lexer.c,sha256=y9M2Lf0jZy0tYvxpZBWoPs5DZPOVIoZSzmD5Ab5jjRM,771641
48
+ fontTools/feaLib/lexer.cp313-win32.pyd,sha256=zBMMQXcM7Ji9IeEt1yxOeUW_HG9ba_1HCIKcb14p_hU,111104
48
49
  fontTools/feaLib/lexer.py,sha256=7VZ3NPFH7V1mvRbym111BNKvbB4hLfGLTMS0VV_3Ipw,11408
49
50
  fontTools/feaLib/location.py,sha256=teHrhjT8zzImcGBEJS1J43oaX9onCPu_pynxS8d-tUg,246
50
51
  fontTools/feaLib/lookupDebugInfo.py,sha256=h4Ig8kmEk5WlGf1C9JJAbbOKQK5OwkFLdj8CT7fOkmU,316
@@ -61,8 +62,8 @@ fontTools/merge/unicode.py,sha256=mgqRFhRugda62Xt0r28SduaN7YBzRfHxrpNprjLqoX8,43
61
62
  fontTools/merge/util.py,sha256=3alo4b7mhFNC6h8PjeqNU99dS7EuO8sdZkZpvRsEE6E,3521
62
63
  fontTools/misc/__init__.py,sha256=QoK6HlOoqtVqX5gOyv0bJiTXsVBbBRreUifdccWNp2k,76
63
64
  fontTools/misc/arrayTools.py,sha256=baENNALPvYRUhS4rdx_F3ltOmVIf1PV9G2EaMt7gAHM,11907
64
- fontTools/misc/bezierTools.c,sha256=RIXuhMVdCd71LHQyLE0tKUAaX74qoZeYigooTdUvI50,1861643
65
- fontTools/misc/bezierTools.cp313-win32.pyd,sha256=Fh5RSVajS9SfU4HgDfKi_oKJUg2MjiXNaHLBgURHIJo,323584
65
+ fontTools/misc/bezierTools.c,sha256=wub0OhTy2OMmdZ6ppQxP1YTKNzEskK_i6lNfRiVNW9M,1861888
66
+ fontTools/misc/bezierTools.cp313-win32.pyd,sha256=Sv-ew4_5vpJIPxM9ies1aZnoeUaRX-XIyt70gtHxqIg,323584
66
67
  fontTools/misc/bezierTools.py,sha256=m4j14ckKYtrKy8NhFFFY_Uv3kuL8g-SWNdEKUzqGjRQ,46535
67
68
  fontTools/misc/classifyTools.py,sha256=wLTjOhLiZaLiwwUTj2Ad5eZ5T_38W0Eo_uzRGWHWYvE,5783
68
69
  fontTools/misc/cliTools.py,sha256=7zKOXczaCKRMW6Yv5jdCZYHco8y0-lfimhIWzQ2IL8A,1915
@@ -71,6 +72,7 @@ fontTools/misc/cython.py,sha256=fZ9_mObkVzdJoK6sufiIU95k5GStjp6LWOk4AQ8zW_Q,709
71
72
  fontTools/misc/dictTools.py,sha256=GZa83GxwQD4-kZYkbCCefW-ggH4WG8G6f5jCy0NcO6w,2500
72
73
  fontTools/misc/eexec.py,sha256=eN9R1_67tWaeWn3ikEs0VwB1N7yr4vBbzs-aMbAUROw,3450
73
74
  fontTools/misc/encodingTools.py,sha256=rlAZpxgcKXPzfpfHKk0BQW2Edz2JwTT8d0IIMRib3VE,2145
75
+ fontTools/misc/enumTools.py,sha256=0oNH7O7JR_lKi9GNy2IcbFnvyND7P3htiGR2Tdgx51U,525
74
76
  fontTools/misc/etree.py,sha256=M_4wKgaiaV7ALP3Uiv3HnK_KXFJmb37SUIK4tFZFVws,16760
75
77
  fontTools/misc/filenames.py,sha256=IZuoPgh88KI2Rdo56FrHAtNSUoCeIaiWqrQk2VEeRoQ,8468
76
78
  fontTools/misc/fixedTools.py,sha256=3HzMFAs57LqsGBnbslq2btQ3KJbKwxmxkJPvTvOi8sY,7900
@@ -93,7 +95,7 @@ fontTools/misc/timeTools.py,sha256=lmncKUKvxQKO4Kqx2k7UNFkYYpj2n5CwR1lPiLZv3tA,2
93
95
  fontTools/misc/transform.py,sha256=pCR0tbKzmhH6crB_rDT5hnAWySztW_XqL0efmKOVsCU,16314
94
96
  fontTools/misc/treeTools.py,sha256=IMopMUcuhelvz8gNra50Zc1w8DSlWywnL6DFaz1ijQs,1314
95
97
  fontTools/misc/vector.py,sha256=yaNixq5pXXpPCD_wRP-LsXYSLr4WPX_y92Po05FeLU0,4209
96
- fontTools/misc/visitor.py,sha256=30EPyUKvNsYU81uiYKjp_9gFj2KSqF8W2y_ldyIBJYQ,5760
98
+ fontTools/misc/visitor.py,sha256=jZ2I2yTiao67kUL2GPLx1Rpuw-X2gIx0ikqZOkcfYf8,5912
97
99
  fontTools/misc/xmlReader.py,sha256=gqYg3qlDkrKsO55DPaJ-dU0i5rltqZgnKlrXmR2Z7dQ,6768
98
100
  fontTools/misc/xmlWriter.py,sha256=rGn6BDiB2MPrhoNabDbY4vAHZC6-mEciwCJXtOL6hMA,7060
99
101
  fontTools/misc/filesystem/__init__.py,sha256=wAfcTDA9TBfzZpEN-jnlhNgJ-7tsvsEpbEb3TP9B8Vs,2079
@@ -127,15 +129,15 @@ fontTools/pens/cairoPen.py,sha256=jQL-9usqCU_FvfFpH4uaKjOcGd6jsarPpVM3vrhdyOU,61
127
129
  fontTools/pens/cocoaPen.py,sha256=ReJkXzlgP8qe4zi_6X4oO_I6m0jQGATeB6ZHjJhNv_I,638
128
130
  fontTools/pens/cu2quPen.py,sha256=w9xTNmhb96kvNZwcM5WT9q8FnRgA51AOISzVRpkiI3g,13332
129
131
  fontTools/pens/explicitClosingLinePen.py,sha256=knCXcjSl2iPy6mLCDnsdDYx6J5rV7FH4S24OXFdINjg,3320
130
- fontTools/pens/filterPen.py,sha256=tWhgklyaCTUt7oQRTBbFUcOlc702V0NfadCH3X93CYg,8031
132
+ fontTools/pens/filterPen.py,sha256=wvNVXLGKmNxJcpAKAnmev2wy6Rshq6aXgRfxL0Iobdg,15136
131
133
  fontTools/pens/freetypePen.py,sha256=NqNzXrOTDckoH4N6WLnj-KuxGcg6z7DlqSCfmpq8qAE,20370
132
134
  fontTools/pens/hashPointPen.py,sha256=ZAU87uw5ge3Kb4i9kRV28a5VFeZ_TWSsJabyAzwAHrU,3662
133
- fontTools/pens/momentsPen.c,sha256=jZXVypFPp5jR1IwgQGJf4Bp4lig_IuG2iWRvnkp3M0I,578536
134
- fontTools/pens/momentsPen.cp313-win32.pyd,sha256=zpiC74zHkk0DwTGOOglUo2Bnj3dkrkNf4Yjpzq2YUYQ,83456
135
+ fontTools/pens/momentsPen.c,sha256=tccF2oegGdXqHhmkR_ReOr-SveDxltMm67E3XryuVbI,578781
136
+ fontTools/pens/momentsPen.cp313-win32.pyd,sha256=DrITgFdEtrvZvvI1MEm6GV2PcQ-nb95MeB3MraV2RN8,83456
135
137
  fontTools/pens/momentsPen.py,sha256=Z-V5CjQBSj3qPxg3C_DBFKExqno89nOe3jWwHT9_xsM,26537
136
138
  fontTools/pens/perimeterPen.py,sha256=Zy5F8QzaNJAkkQQSb2QJCp-wZTvDAjBn-B099t2ABds,2222
137
139
  fontTools/pens/pointInsidePen.py,sha256=Hy48iR5NWV3x_wWoos-UC7GMtwvvUhd_q_ykiwaWdzQ,6547
138
- fontTools/pens/pointPen.py,sha256=GV28cLEwSgpZZ4QGV7_eUw4Mdks_UqIpShQU0DBcvRs,23339
140
+ fontTools/pens/pointPen.py,sha256=bYvSSBXvcMv6Emzdi31C4lnaI_WUhRtW1adBPj_8Zp0,24840
139
141
  fontTools/pens/qtPen.py,sha256=KHHQggFQc6Gq-kPdn9X2_wBXTPWzvyzKTSUeq0mqvSM,663
140
142
  fontTools/pens/qu2cuPen.py,sha256=VIqUzA_y_6xnRmTESKzlKkoByh7ZU5TnQwHnVAoy4no,4090
141
143
  fontTools/pens/quartzPen.py,sha256=6DMDWPYfsOb374VDnLLpKLqcMJig4GCGbTsW1Jr0fgg,1330
@@ -154,10 +156,10 @@ fontTools/qu2cu/__init__.py,sha256=MpdE0XsHSDo9M3hyHLkPPLxB3FKr3aiT0dPW5qHCuSo,6
154
156
  fontTools/qu2cu/__main__.py,sha256=leKpToUNNyHf0nobr1I19vus2ziA1pO7rRKkreat-Xw,100
155
157
  fontTools/qu2cu/benchmark.py,sha256=PFxx2Bfu7-KuNrzdOIBXHPZvyNphqqcTVy4CneaCo3M,1456
156
158
  fontTools/qu2cu/cli.py,sha256=1QLBTSZW7e_VATJN9vjszRxIk_-Xjxu1KP53yX4T7q8,3839
157
- fontTools/qu2cu/qu2cu.c,sha256=htIol4qS19oUMmn4dtbpX31cK3_zlZxHXp2_wnoxFB8,706830
158
- fontTools/qu2cu/qu2cu.cp313-win32.pyd,sha256=NBahwXXGS-gJO9_7yCEPGAib820-TkheK3lmcacke5Y,98816
159
+ fontTools/qu2cu/qu2cu.c,sha256=zpMJuiGamoWxvBEqP84gp1DPDsSlvbqMxf0gkxgA0u8,707187
160
+ fontTools/qu2cu/qu2cu.cp313-win32.pyd,sha256=txB_cfDMWUukd7HKj4aApyQqR2s032lK4qMr8WVfJlo,98816
159
161
  fontTools/qu2cu/qu2cu.py,sha256=dtp5Zqhcs_NePwA2U5fgG2LtWleRwmBilTurau8sLL0,12693
160
- fontTools/subset/__init__.py,sha256=BIx4NBKTps8oFRnB_3uN6MDsQh10IPkrId5VyR9AI9M,141672
162
+ fontTools/subset/__init__.py,sha256=ALzTEOHbFPSwQB7T6ro7vopxv-rud6d3oo-9KqPe9z0,147359
161
163
  fontTools/subset/__main__.py,sha256=cEIC52EtGOJvFDfHXzi0M2EAYmyHAcI-ZZ0lb2y4r7s,101
162
164
  fontTools/subset/cff.py,sha256=GSmxdsokxuFKvJJQVcAIOhd5hYQq8KkzxnXE_dgm8yo,6329
163
165
  fontTools/subset/svg.py,sha256=y_yTZuAm3bjcoEOFu5likXoHuG5u1oNiv0mOni2Z9fQ,9637
@@ -263,7 +265,7 @@ fontTools/ttLib/tables/_m_o_r_t.py,sha256=LU3D9PmV_nFs6hoccGmr1pfUzjJaeB_WRW2OIS
263
265
  fontTools/ttLib/tables/_m_o_r_x.py,sha256=vLyrtx_O__BwnPi7Qo3oT8WHaANRARtHcqHSdZ5ct0E,563
264
266
  fontTools/ttLib/tables/_n_a_m_e.py,sha256=Z3BZtWPZfL-tpRjypnxjsvJzdwZWMbJ50BuFngtnkCs,42508
265
267
  fontTools/ttLib/tables/_o_p_b_d.py,sha256=lfJi6kblt_nGmGmRSupwEaud3Ri_y6ftWNuyrCPpzQ0,462
266
- fontTools/ttLib/tables/_p_o_s_t.py,sha256=HIsvathEMOAm8QFG7vcRfPQvBqXh-QmsVyOoDWsaRNc,12020
268
+ fontTools/ttLib/tables/_p_o_s_t.py,sha256=eCOxa-PocooWBk5TIAdkc0K9b9ylYLIN9oo7HsLCuqw,11990
267
269
  fontTools/ttLib/tables/_p_r_e_p.py,sha256=qWDjHiHvHaJCx2hYFmjJeMwpgwvD-cG5zkibMh9TWuk,443
268
270
  fontTools/ttLib/tables/_p_r_o_p.py,sha256=ux5Z0FrE7uuKQrO-SCQwButVtKmEAsvfDE6mOP_SOnE,439
269
271
  fontTools/ttLib/tables/_s_b_i_x.py,sha256=KF9acCLqBcYpg92h5vJBp5LsNT7c4MDKD4rocixRPKw,4994
@@ -281,17 +283,17 @@ fontTools/ttLib/tables/sbixGlyph.py,sha256=a-mCmO5EibN_He7QQohG06Qg-fCOHWiNFMAbC
281
283
  fontTools/ttLib/tables/sbixStrike.py,sha256=Q1F4rFlj-SwUKFDJkcta1oz_b393dt9VYFOyxaFSc_o,6828
282
284
  fontTools/ttLib/tables/table_API_readme.txt,sha256=E9lwGW1P_dGqy1FYBcYLVEDDmikbsqW4pUtpv1RKCJU,2839
283
285
  fontTools/ttLib/tables/ttProgram.py,sha256=vkRtptH7QXD0Ng8LNzh-A_Ln27VPCxSJOXgW8878nSo,36482
284
- fontTools/ufoLib/__init__.py,sha256=HbYdVqQUpL5szGEnkuBhRSOKgpWTQLuRADfy1te1Rv0,96811
285
- fontTools/ufoLib/converters.py,sha256=hPVFC0K1IPXG8tCGZQOIUXB4ILdiGPuzbgtqSiWHZn4,13442
286
+ fontTools/ufoLib/__init__.py,sha256=SNoNeSIgQMccB0jZSnlCEPQ4nRF2aSVC8fSSlJZ0K4c,101556
287
+ fontTools/ufoLib/converters.py,sha256=7B5JwsY2GrtgEcPirkkYnsWGvQpbntQRaERFH1LiG7c,13851
286
288
  fontTools/ufoLib/errors.py,sha256=pgJKS2A5RcsfQS2Z6Y_l3mIz62-VD_SrpIysKmywuYA,875
287
289
  fontTools/ufoLib/etree.py,sha256=kTUP1EzN2wSXZ4jwAX8waNfKz52u7jc2qQ2LrqPYLBw,237
288
- fontTools/ufoLib/filenames.py,sha256=wuXjT9VX3791TBJ0WL4lWhFQ6pInkcYML9Mgc2cdJsE,10764
289
- fontTools/ufoLib/glifLib.py,sha256=lV42VMkIDuYL10L5lqLj6c4JNqSgvWGJZT05Kw2ddVI,74723
290
- fontTools/ufoLib/kerning.py,sha256=VgE-xhGMAD2ipauleB-liNxwBuR_Ze5Jceb4XDi2Ob4,4354
290
+ fontTools/ufoLib/filenames.py,sha256=Q35r0-W8pQE-mNEif-lyZE5_X6m7yZmBkcZU_SJQk7M,11010
291
+ fontTools/ufoLib/glifLib.py,sha256=en3UH38tRjPYNfZkHrHh375uvi7cQMhpsJOyiOVo8yo,79290
292
+ fontTools/ufoLib/kerning.py,sha256=RoRFBDlimIx9MhqrTmnOQFwmLi6Xr2fma8Sva42cooA,4977
291
293
  fontTools/ufoLib/plistlib.py,sha256=GpWReRtO7S1JCv6gJnnuiYooo4Hwbgc2vagT041kFk8,1557
292
294
  fontTools/ufoLib/pointPen.py,sha256=bU0-DLHrWKyutmwjw0tvhT-QPE-kmqs2Dqe0cflYgOk,250
293
- fontTools/ufoLib/utils.py,sha256=3hKaFRkCBhmwP6NRst6H0d5ZKSXYTzKK8kNfGGwzEaw,2074
294
- fontTools/ufoLib/validators.py,sha256=VtH8-SzQv16T6oVqYkRmdcwLBE8E0c9t0kiDgCMgqO4,31997
295
+ fontTools/ufoLib/utils.py,sha256=Lh7_vWibH2ztfwexp4NRKcniWFNebmP4cZy1i3XOBKU,3299
296
+ fontTools/ufoLib/validators.py,sha256=1C6l6bs62u4HmN3BcyJQi3uVORLE0oeqhUOpPNjBbYA,33595
295
297
  fontTools/unicodedata/Blocks.py,sha256=R0rSdM3NktyDMxtyLQJV4nvlTJylX9osWKkQQ_ZTEpQ,33216
296
298
  fontTools/unicodedata/Mirrored.py,sha256=I6Fy7stp4cphy9JQ2zFZOynXvqIp3eKL6Clw7CTI8IU,9688
297
299
  fontTools/unicodedata/OTTags.py,sha256=IAt8NXaZOhu5cuuks46DDX3E7Ovoqp-PMUQC-WJUPIs,1246
@@ -300,21 +302,20 @@ fontTools/unicodedata/Scripts.py,sha256=jCKY8wlKrSFmsFndzLegVS6vrhVGZ-S3T0dw2vO9
300
302
  fontTools/unicodedata/__init__.py,sha256=dUWWA4Ga1Wud8XkCIWZ02NCHBLtX2XYYUJo4ZLHTd0U,9337
301
303
  fontTools/varLib/__init__.py,sha256=HTGmRXieDmkNGeav4uSmoHuhV6IasgiLbeT5TAfu-tQ,58918
302
304
  fontTools/varLib/__main__.py,sha256=ykyZY5GG9IPDsPrUWiHgXEnsgKrQudZkneCTes6GUpU,101
303
- fontTools/varLib/avar.py,sha256=tRgKAUn_K5MTCSkB2MgPYYZ2U6Qo_Cg3jFQV0TDKFgc,9907
304
- fontTools/varLib/avarPlanner.py,sha256=orjyFvg3YkC-slt7fgSEU1AGjLCkGgMEJ7hTRV6CqUA,28362
305
+ fontTools/varLib/avarPlanner.py,sha256=qU3Fw4pZKQc_a1swRW-_d0P-czIT-WJrZJFIxCAq2FM,117
305
306
  fontTools/varLib/builder.py,sha256=1k-N-rTwnZqQpzhNLBx2tqu2oYGG44sJSXKTCjAvIVM,6824
306
307
  fontTools/varLib/cff.py,sha256=bl8rrPHHpwzUdZBY80_5JJLWYcXQOolhKKvTJiiU-Bs,23532
307
308
  fontTools/varLib/errors.py,sha256=mXl-quT2Z75_t7Uwb6ug3VMhmbQjO841YNLeghwuY_s,7153
308
309
  fontTools/varLib/featureVars.py,sha256=cPiijbzRMZ0AiudBNPhF8XE1LoBr5VGkjiwpw5N0oKQ,26883
309
310
  fontTools/varLib/hvar.py,sha256=Tm0ibxOtSVrBQeHiA5-idUQaJEjzOdUWxAQyKTGsOdQ,3808
310
311
  fontTools/varLib/interpolatable.py,sha256=8AXrhsnYY1z0hR6gskqYRYx8qcFsvUKmIIHZRpIOlAU,46430
311
- fontTools/varLib/interpolatableHelpers.py,sha256=JnabttZY7sY9-QzdiqkgzQ_S5nG8k_O1TzLEmfNUvNo,11892
312
+ fontTools/varLib/interpolatableHelpers.py,sha256=CnQIzgJPe_QvhYuDV4QJwf1XelUEPuv5UDG5iPPSifs,12071
312
313
  fontTools/varLib/interpolatablePlot.py,sha256=tUKFd8H9B2eD_GE6jV13J-dZkkIeLmk3ojAYrf-edsA,45644
313
314
  fontTools/varLib/interpolatableTestContourOrder.py,sha256=Pbt0jW0LoVggIwrtADZ7HWK6Ftdoo1bjuWz0ost0HD0,3103
314
315
  fontTools/varLib/interpolatableTestStartingPoint.py,sha256=f5MJ3mj8MctJCvDJwqmW1fIVOgovUMYAOela9HweaRU,4403
315
316
  fontTools/varLib/interpolate_layout.py,sha256=tTPUes_K7MwooUO_wac9AeFEVgL1uGSz4ITYiOizaME,3813
316
- fontTools/varLib/iup.c,sha256=P2w9qYqmYXAowP_RWmnqI0ei6ahoK2Cik5d-gq39JzY,847276
317
- fontTools/varLib/iup.cp313-win32.pyd,sha256=zsf96bDyBv04O3NS16LK2-_fypR6D5QKvhsxN2xRntM,119808
317
+ fontTools/varLib/iup.c,sha256=ah8enmoMLi_AO2jjHrcRou4Wip4X8Y-0ik8_N-KNGmw,847577
318
+ fontTools/varLib/iup.cp313-win32.pyd,sha256=P-r8gQenEtWrg1g8VTQg5O4wOHOrvvoazTj9TFvlx8o,119808
318
319
  fontTools/varLib/iup.py,sha256=O_xPJOBECrNDbQqCC3e5xf9KsWXUd1i3BAp9Fl6Hv2Y,15474
319
320
  fontTools/varLib/merger.py,sha256=V-B17poOYbbrRsfUYJbdqt46GtRfG833MKwtv9NOB3Q,62519
320
321
  fontTools/varLib/models.py,sha256=ZqQb1Lapj5dCO8dwa3UTx1LsIpF0-GiDte32t_TMJJQ,23040
@@ -324,6 +325,12 @@ fontTools/varLib/mvar.py,sha256=Gf3q54ICH-E9oAwKYeIKUPLZabfjY0bUT4t220zLzYI,2489
324
325
  fontTools/varLib/plot.py,sha256=BtozrcnKoEyCs0rGy7PZmrUvUNTmZT-5_sylW5PuJ28,7732
325
326
  fontTools/varLib/stat.py,sha256=ScaVFIVpXTqA-F07umv_66GoxtcjaZ54MPLFvFK4s68,4960
326
327
  fontTools/varLib/varStore.py,sha256=GWz-B1YcR-JnIh2aDmeQg621GDEBj9M4pKYcbZraA3w,24808
328
+ fontTools/varLib/avar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
+ fontTools/varLib/avar/__main__.py,sha256=ILAMsUy9WhhOLjS7XhVKRZteaYjYUx-FT6sahT7PSdE,1842
330
+ fontTools/varLib/avar/build.py,sha256=Fe7w6sYaqXb4UzI2yWd7WAvoMOUcSBtbLvq1rwpxEBo,2166
331
+ fontTools/varLib/avar/map.py,sha256=PYuIRhdYp4TpluFiC_sszp86cGbW5q1PCSdD817QqOw,2975
332
+ fontTools/varLib/avar/plan.py,sha256=G67bjebEBzGsawB_ODEw6ypnhxg8G-Pt98mYir2lmZI,28358
333
+ fontTools/varLib/avar/unbuild.py,sha256=NrdvoZXIpvCwxPjUyc6fKQLzYc0PxhbgZyo37OpMW9E,10738
327
334
  fontTools/varLib/instancer/__init__.py,sha256=Enbv3I0j25PhYymbZNTboqnx5dnQXmUSv3ORT9-qib8,77606
328
335
  fontTools/varLib/instancer/__main__.py,sha256=YN_tyJDdmLlH3umiLDS2ue0Zc3fSFexa9wCuk3Wuod0,109
329
336
  fontTools/varLib/instancer/featureVars.py,sha256=b3qtGCYVZ9fqkqcgFQUikYQBX_3_x0YgdrvvxIALbuU,7300
@@ -336,11 +343,11 @@ fontTools/voltLib/error.py,sha256=3TsaZBA82acFd2j5Beq3WUQTURTKM0zxOnUFGZovSNA,40
336
343
  fontTools/voltLib/lexer.py,sha256=v9V4zdBO2VqVJG__IWrL8fv_CRURmh2eD_1UpbIJn9g,3467
337
344
  fontTools/voltLib/parser.py,sha256=HS72gxtFzvcPSwEbUYj3E41CPK7ZqK9mSe0nLRxn-IY,26060
338
345
  fontTools/voltLib/voltToFea.py,sha256=nS-OSlx_a-TngGICFNKyFxMhjqkV3OQLcvyzw4sQFyk,37460
339
- fonttools-4.59.2.data/data/share/man/man1/ttx.1,sha256=E71F9mRNWlttVpzlnP7w_fqkQygPkph5s-AtVa0Js50,5601
340
- fonttools-4.59.2.dist-info/licenses/LICENSE,sha256=Ir74Bpfs-qF_l-YrmibfoSggvgVYPo3RKtFpskEnTJk,1093
341
- fonttools-4.59.2.dist-info/licenses/LICENSE.external,sha256=sIKl-Gd1smQfAbzLi5yCkISB3l9QK7JUseE7_CqfMD0,20410
342
- fonttools-4.59.2.dist-info/METADATA,sha256=44wZQ6IJ78akWmrHMwFY8-yQxxnNyoD8fXsBLqOulnw,111931
343
- fonttools-4.59.2.dist-info/WHEEL,sha256=0ABLuJ37exXk5N_efmYNs2NU9NK1K2Qlod_6bYkofEA,97
344
- fonttools-4.59.2.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
345
- fonttools-4.59.2.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
346
- fonttools-4.59.2.dist-info/RECORD,,
346
+ fonttools-4.60.1.data/data/share/man/man1/ttx.1,sha256=E71F9mRNWlttVpzlnP7w_fqkQygPkph5s-AtVa0Js50,5601
347
+ fonttools-4.60.1.dist-info/licenses/LICENSE,sha256=Ir74Bpfs-qF_l-YrmibfoSggvgVYPo3RKtFpskEnTJk,1093
348
+ fonttools-4.60.1.dist-info/licenses/LICENSE.external,sha256=sIKl-Gd1smQfAbzLi5yCkISB3l9QK7JUseE7_CqfMD0,20410
349
+ fonttools-4.60.1.dist-info/METADATA,sha256=jvqLM8U0BGUXOJ7jWp22ISqXYUaqovRTQppZhgkPJdE,114562
350
+ fonttools-4.60.1.dist-info/WHEEL,sha256=0ABLuJ37exXk5N_efmYNs2NU9NK1K2Qlod_6bYkofEA,97
351
+ fonttools-4.60.1.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
352
+ fonttools-4.60.1.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
353
+ fonttools-4.60.1.dist-info/RECORD,,