fonttools 4.58.0__cp310-cp310-musllinux_1_2_aarch64.whl → 4.58.2__cp310-cp310-musllinux_1_2_aarch64.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 (38) hide show
  1. fontTools/__init__.py +1 -1
  2. fontTools/cffLib/specializer.py +4 -1
  3. fontTools/cu2qu/cu2qu.c +36 -24
  4. fontTools/cu2qu/cu2qu.cpython-310-aarch64-linux-gnu.so +0 -0
  5. fontTools/feaLib/ast.py +1 -72
  6. fontTools/feaLib/builder.py +55 -45
  7. fontTools/feaLib/lexer.c +60 -43
  8. fontTools/feaLib/lexer.cpython-310-aarch64-linux-gnu.so +0 -0
  9. fontTools/merge/cmap.py +33 -1
  10. fontTools/merge/tables.py +12 -1
  11. fontTools/misc/bezierTools.c +137 -125
  12. fontTools/misc/bezierTools.cpython-310-aarch64-linux-gnu.so +0 -0
  13. fontTools/misc/loggingTools.py +1 -1
  14. fontTools/misc/symfont.py +6 -8
  15. fontTools/mtiLib/__init__.py +1 -1
  16. fontTools/otlLib/builder.py +164 -0
  17. fontTools/pens/momentsPen.c +42 -25
  18. fontTools/pens/momentsPen.cpython-310-aarch64-linux-gnu.so +0 -0
  19. fontTools/pens/t2CharStringPen.py +31 -11
  20. fontTools/qu2cu/qu2cu.c +47 -35
  21. fontTools/qu2cu/qu2cu.cpython-310-aarch64-linux-gnu.so +0 -0
  22. fontTools/subset/__init__.py +82 -2
  23. fontTools/ttLib/reorderGlyphs.py +8 -7
  24. fontTools/ufoLib/__init__.py +1 -1
  25. fontTools/varLib/__init__.py +18 -6
  26. fontTools/varLib/featureVars.py +13 -7
  27. fontTools/varLib/hvar.py +1 -1
  28. fontTools/varLib/instancer/__init__.py +14 -5
  29. fontTools/varLib/iup.c +52 -40
  30. fontTools/varLib/iup.cpython-310-aarch64-linux-gnu.so +0 -0
  31. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/METADATA +26 -1
  32. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/RECORD +38 -38
  33. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/WHEEL +1 -1
  34. {fonttools-4.58.0.data → fonttools-4.58.2.data}/data/share/man/man1/ttx.1 +0 -0
  35. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/entry_points.txt +0 -0
  36. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/licenses/LICENSE +0 -0
  37. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/licenses/LICENSE.external +0 -0
  38. {fonttools-4.58.0.dist-info → fonttools-4.58.2.dist-info}/top_level.txt +0 -0
fontTools/varLib/iup.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Generated by Cython 3.1.0 */
1
+ /* Generated by Cython 3.1.1 */
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_0"
30
- #define CYTHON_HEX_VERSION 0x030100F0
29
+ #define __PYX_ABI_VERSION "3_1_1"
30
+ #define CYTHON_HEX_VERSION 0x030101F0
31
31
  #define CYTHON_FUTURE_DIVISION 1
32
32
  /* CModulePreamble */
33
33
  #include <stddef.h>
@@ -12072,8 +12072,8 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
12072
12072
  } __Pyx_PyCode_New_function_description;
12073
12073
  /* NewCodeObj.proto */
12074
12074
  static PyObject* __Pyx_PyCode_New(
12075
- __Pyx_PyCode_New_function_description descr,
12076
- PyObject **varnames,
12075
+ const __Pyx_PyCode_New_function_description descr,
12076
+ PyObject * const *varnames,
12077
12077
  PyObject *filename,
12078
12078
  PyObject *funcname,
12079
12079
  const char *line_table,
@@ -12085,58 +12085,58 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
12085
12085
  PyObject* tuple_dedup_map = PyDict_New();
12086
12086
  if (unlikely(!tuple_dedup_map)) return -1;
12087
12087
  {
12088
- __Pyx_PyCode_New_function_description descr = {0, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 197, 2};
12089
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_j, __pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y, __pyx_mstate->__pyx_n_u_p, __pyx_mstate->__pyx_n_u_q};
12088
+ const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 197, 2};
12089
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_j, __pyx_mstate->__pyx_n_u_x, __pyx_mstate->__pyx_n_u_y, __pyx_mstate->__pyx_n_u_p, __pyx_mstate->__pyx_n_u_q};
12090
12090
  __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_genexpr, __pyx_k_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
12091
12091
  }
12092
12092
  {
12093
- __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 378, 2};
12094
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_p};
12093
+ const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 378, 2};
12094
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_p};
12095
12095
  __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_genexpr, __pyx_k_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
12096
12096
  }
12097
12097
  {
12098
- __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 387, 2};
12099
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_d};
12098
+ const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 387, 2};
12099
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_d};
12100
12100
  __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_genexpr, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
12101
12101
  }
12102
12102
  {
12103
- __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 91, 438};
12104
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_indices, __pyx_mstate->__pyx_n_u_out, __pyx_mstate->__pyx_n_u_it, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_i1, __pyx_mstate->__pyx_n_u_i2, __pyx_mstate->__pyx_n_u_ri1, __pyx_mstate->__pyx_n_u_ri2, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_v};
12103
+ const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 91, 438};
12104
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_indices, __pyx_mstate->__pyx_n_u_out, __pyx_mstate->__pyx_n_u_it, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_i1, __pyx_mstate->__pyx_n_u_i2, __pyx_mstate->__pyx_n_u_ri1, __pyx_mstate->__pyx_n_u_ri2, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_v};
12105
12105
  __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_iup_contour, __pyx_k_55Gq_3axs_Qa_uG1_q_1A_ar_S_Yaxs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
12106
12106
  }
12107
12107
  {
12108
- __Pyx_PyCode_New_function_description descr = {3, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 143, 162};
12109
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_ends, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_out, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_contour};
12108
+ const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 143, 162};
12109
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_ends, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_out, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_contour};
12110
12110
  __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_iup_delta, __pyx_k_a_5_Cq_D_RuJcQSST_1A_5_2Rs_Bc_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
12111
12111
  }
12112
12112
  {
12113
- __Pyx_PyCode_New_function_description descr = {3, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 202, 504};
12114
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_cj, __pyx_mstate->__pyx_n_u_dj, __pyx_mstate->__pyx_n_u_lcj, __pyx_mstate->__pyx_n_u_ldj, __pyx_mstate->__pyx_n_u_ncj, __pyx_mstate->__pyx_n_u_ndj, __pyx_mstate->__pyx_n_u_force, __pyx_mstate->__pyx_n_u_forced, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_ld, __pyx_mstate->__pyx_n_u_lc, __pyx_mstate->__pyx_n_u_d, __pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_nd, __pyx_mstate->__pyx_n_u_nc, __pyx_mstate->__pyx_n_u_j, __pyx_mstate->__pyx_n_u_c1, __pyx_mstate->__pyx_n_u_c2, __pyx_mstate->__pyx_n_u_d1, __pyx_mstate->__pyx_n_u_d2};
12113
+ const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 202, 504};
12114
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_cj, __pyx_mstate->__pyx_n_u_dj, __pyx_mstate->__pyx_n_u_lcj, __pyx_mstate->__pyx_n_u_ldj, __pyx_mstate->__pyx_n_u_ncj, __pyx_mstate->__pyx_n_u_ndj, __pyx_mstate->__pyx_n_u_force, __pyx_mstate->__pyx_n_u_forced, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_ld, __pyx_mstate->__pyx_n_u_lc, __pyx_mstate->__pyx_n_u_d, __pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_nd, __pyx_mstate->__pyx_n_u_nc, __pyx_mstate->__pyx_n_u_j, __pyx_mstate->__pyx_n_u_c1, __pyx_mstate->__pyx_n_u_c2, __pyx_mstate->__pyx_n_u_d1, __pyx_mstate->__pyx_n_u_d2};
12115
12115
  __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_iup_contour_bound_forced_set, __pyx_k_Q_3axs_Qa_1A_U_3axr_T_E_q_D_ar, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
12116
12116
  }
12117
12117
  {
12118
- __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 293, 242};
12119
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_forced, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_j, __pyx_mstate->__pyx_n_u_best_cost, __pyx_mstate->__pyx_n_u_best_j, __pyx_mstate->__pyx_n_u_cost, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_costs, __pyx_mstate->__pyx_n_u_chain};
12118
+ const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 293, 242};
12119
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_forced, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_j, __pyx_mstate->__pyx_n_u_best_cost, __pyx_mstate->__pyx_n_u_best_j, __pyx_mstate->__pyx_n_u_cost, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_costs, __pyx_mstate->__pyx_n_u_chain};
12120
12120
  __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_iup_contour_optimize_dp, __pyx_k_q_a_1A_y_1_1_Q_c_c_U_3a_E_Bc_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
12121
12121
  }
12122
12122
  {
12123
- __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 346, 60};
12124
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_l, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_n};
12123
+ const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 346, 60};
12124
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_l, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_n};
12125
12125
  __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_rot_list, __pyx_k_1A_t1_q_1ARr_b_Bb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
12126
12126
  }
12127
12127
  {
12128
- __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 356, 47};
12129
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_s, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_v};
12128
+ const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 356, 47};
12129
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_v};
12130
12130
  __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_rot_set, __pyx_k_t1_q_2Rr_Bb_E, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
12131
12131
  }
12132
12132
  {
12133
- __Pyx_PyCode_New_function_description descr = {3, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 363, 522};
12134
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_d0, __pyx_mstate->__pyx_n_u_forced, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_chain, __pyx_mstate->__pyx_n_u_costs, __pyx_mstate->__pyx_n_u_solution, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_best_sol, __pyx_mstate->__pyx_n_u_best_cost, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_cost, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_i};
12133
+ const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 363, 522};
12134
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_d0, __pyx_mstate->__pyx_n_u_forced, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_chain, __pyx_mstate->__pyx_n_u_costs, __pyx_mstate->__pyx_n_u_solution, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_best_sol, __pyx_mstate->__pyx_n_u_best_cost, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_cost, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_i};
12135
12135
  __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_iup_contour_optimize, __pyx_k_Q_1A_A_q_r_A_q_q_a_q_Bay_A_881, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
12136
12136
  }
12137
12137
  {
12138
- __Pyx_PyCode_New_function_description descr = {4, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 464, 200};
12139
- PyObject* varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_ends, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_out, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_contour};
12138
+ const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 464, 200};
12139
+ PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_deltas, __pyx_mstate->__pyx_n_u_coords, __pyx_mstate->__pyx_n_u_ends, __pyx_mstate->__pyx_n_u_tolerance, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_out, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_contour};
12140
12140
  __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_Lib_fontTools_varLib_iup_py, __pyx_mstate->__pyx_n_u_iup_delta_optimize, __pyx_k_q_5_Cq_D_RuJcQSST_1A_5_2Rs_Bc_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
12141
12141
  }
12142
12142
  Py_DECREF(tuple_dedup_map);
@@ -13012,6 +13012,11 @@ static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *
13012
13012
  Py_DECREF(selfless_args);
13013
13013
  return result;
13014
13014
  }
13015
+ #elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000
13016
+ static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) {
13017
+ return _PyObject_Vectorcall
13018
+ (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames);
13019
+ }
13015
13020
  #else
13016
13021
  static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
13017
13022
  return
@@ -13335,7 +13340,9 @@ static int __Pyx_ParseKeywordDict(
13335
13340
  PyObject** const *name;
13336
13341
  PyObject** const *first_kw_arg = argnames + num_pos_args;
13337
13342
  Py_ssize_t extracted = 0;
13343
+ #if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
13338
13344
  if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
13345
+ #endif
13339
13346
  name = first_kw_arg;
13340
13347
  while (*name && num_kwargs > extracted) {
13341
13348
  PyObject * key = **name;
@@ -13383,7 +13390,9 @@ static int __Pyx_ParseKeywordDictToDict(
13383
13390
  PyObject** const *name;
13384
13391
  PyObject** const *first_kw_arg = argnames + num_pos_args;
13385
13392
  Py_ssize_t len;
13393
+ #if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
13386
13394
  if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
13395
+ #endif
13387
13396
  if (PyDict_Update(kwds2, kwds) < 0) goto bad;
13388
13397
  name = first_kw_arg;
13389
13398
  while (*name) {
@@ -15174,7 +15183,8 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
15174
15183
  if (unlikely(!empty_dict))
15175
15184
  goto bad;
15176
15185
  if (level == -1) {
15177
- if (strchr(__Pyx_MODULE_NAME, '.') != (0)) {
15186
+ const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
15187
+ if (package_sep != (0)) {
15178
15188
  module = PyImport_ImportModuleLevelObject(
15179
15189
  name, __pyx_mstate_global->__pyx_d, empty_dict, from_list, 1);
15180
15190
  if (unlikely(!module)) {
@@ -17103,7 +17113,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
17103
17113
  return PyLong_FromLong((long) value);
17104
17114
  } else if (sizeof(int) <= sizeof(unsigned long)) {
17105
17115
  return PyLong_FromUnsignedLong((unsigned long) value);
17106
- #ifdef HAVE_LONG_LONG
17116
+ #if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
17107
17117
  } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
17108
17118
  return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
17109
17119
  #endif
@@ -17174,7 +17184,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
17174
17184
  return PyLong_FromLong((long) value);
17175
17185
  } else if (sizeof(long) <= sizeof(unsigned long)) {
17176
17186
  return PyLong_FromUnsignedLong((unsigned long) value);
17177
- #ifdef HAVE_LONG_LONG
17187
+ #if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
17178
17188
  } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
17179
17189
  return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
17180
17190
  #endif
@@ -17796,8 +17806,8 @@ static void __Pyx__ReturnWithStopIteration(PyObject* value, int async) {
17796
17806
  PyObject *exc;
17797
17807
  PyObject *exc_type = async ? PyExc_StopAsyncIteration : PyExc_StopIteration;
17798
17808
  #if CYTHON_COMPILING_IN_CPYTHON
17799
- if ((PY_VERSION_HEX >= 0x030C00A6) || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) {
17800
- if ((PY_VERSION_HEX >= 0x030e00A1)) {
17809
+ if ((PY_VERSION_HEX >= (0x030C00A6)) || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) {
17810
+ if (PY_VERSION_HEX >= (0x030e00A1)) {
17801
17811
  exc = __Pyx_PyObject_CallOneArg(exc_type, value);
17802
17812
  } else {
17803
17813
  PyObject *args_tuple = PyTuple_New(1);
@@ -18162,17 +18172,19 @@ __Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen, PyObject** retval)
18162
18172
  static __Pyx_PySendResult
18163
18173
  __Pyx_Coroutine_SendToDelegate(__pyx_CoroutineObject *gen, __Pyx_pyiter_sendfunc gen_am_send, PyObject *value, PyObject **retval) {
18164
18174
  PyObject *ret = NULL;
18165
- __Pyx_PySendResult result;
18175
+ __Pyx_PySendResult delegate_result, result;
18166
18176
  assert(__Pyx_Coroutine_get_is_running(gen));
18167
- result = gen_am_send(gen->yieldfrom, value, &ret);
18168
- if (result == PYGEN_NEXT) {
18177
+ delegate_result = gen_am_send(gen->yieldfrom, value, &ret);
18178
+ if (delegate_result == PYGEN_NEXT) {
18169
18179
  assert (ret != NULL);
18170
18180
  *retval = ret;
18171
18181
  return PYGEN_NEXT;
18172
18182
  }
18173
- assert (result != PYGEN_ERROR || ret == NULL);
18183
+ assert (delegate_result != PYGEN_ERROR || ret == NULL);
18174
18184
  __Pyx_Coroutine_Undelegate(gen);
18175
- return __Pyx_Coroutine_SendEx(gen, ret, retval, 0);
18185
+ result = __Pyx_Coroutine_SendEx(gen, ret, retval, 0);
18186
+ Py_XDECREF(ret);
18187
+ return result;
18176
18188
  }
18177
18189
  #endif
18178
18190
  static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
@@ -18985,9 +18997,9 @@ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt
18985
18997
  PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
18986
18998
  #endif
18987
18999
  static PyObject* __Pyx_PyCode_New(
18988
- __Pyx_PyCode_New_function_description descr,
18989
- PyObject **varnames,
18990
- PyObject* filename,
19000
+ const __Pyx_PyCode_New_function_description descr,
19001
+ PyObject * const *varnames,
19002
+ PyObject *filename,
18991
19003
  PyObject *funcname,
18992
19004
  const char *line_table,
18993
19005
  PyObject *tuple_dedup_map
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fonttools
3
- Version: 4.58.0
3
+ Version: 4.58.2
4
4
  Summary: Tools to manipulate font files
5
5
  Home-page: http://github.com/fonttools/fonttools
6
6
  Author: Just van Rossum
@@ -388,6 +388,31 @@ Have fun!
388
388
  Changelog
389
389
  ~~~~~~~~~
390
390
 
391
+ 4.58.2 (released 2025-06-06)
392
+ ----------------------------
393
+
394
+ - [ttLib.reorderGlyphs] Handle CFF2 when reordering glyphs (#3852)
395
+ - [subset] Copy name IDs in use before scrapping or scrambling them for webfonts (#3853)
396
+
397
+ 4.58.1 (released 2025-05-28)
398
+ ----------------------------
399
+
400
+ - [varLib] Make sure that fvar named instances only reuse name ID 2 or 17 if they are at the default location across all axes, to match OT spec requirement (#3831).
401
+ - [feaLib] Improve single substitution promotion to multiple/ligature substitutions, fixing a few bugs as well (#3849).
402
+ - [loggingTools] Make ``Timer._time`` a static method that doesn't take self, makes it easier to override (#3836).
403
+ - [featureVars] Use ``None`` for empty ConditionSet, which translates to a null offset in the compiled table (#3850).
404
+ - [feaLib] Raise an error on conflicting ligature substitution rules instead of silently taking the last one (#3835).
405
+ - Add typing annotations to T2CharStringPen (#3837).
406
+ - [feaLib] Add single substitutions that were promoted to multiple or ligature substitutions to ``aalt`` feature (#3847).
407
+ - [featureVars] Create a default ``LangSys`` in a ``ScriptRecord`` if missing when adding feature variations to existing GSUB later in the build (#3838).
408
+ - [symfont] Added a ``main()``.
409
+ - [cffLib.specializer] Fix rmoveto merging when blends used (#3839, #3840).
410
+ - [pyftmerge] Add support for cmap format 14 in the merge tool (#3830).
411
+ - [varLib.instancer/cff2] Fix vsindex of Private dicts when instantiating (#3828, #3232).
412
+ - Update text file read to use UTF-8 with optional BOM so it works with e.g. Windows Notepad.exe (#3824).
413
+ - [varLib] Ensure that instances only reuse name ID 2 or 17 if they are at the default location across all axes (#3831).
414
+ - [varLib] Create a dflt LangSys in a ScriptRecord when adding variations later, to fix an avoidable crash in an edge case (#3838).
415
+
391
416
  4.58.0 (released 2025-05-10)
392
417
  ----------------------------
393
418
 
@@ -1,4 +1,4 @@
1
- fontTools/__init__.py,sha256=uLgwtnzJcdJ-4fDWUiSW9elw3dtHBfQZHx6l_-L1i2s,183
1
+ fontTools/__init__.py,sha256=XeIRdnWncwRzBzhwui9It6L8mVeq0VAJRsvcJorF_AY,183
2
2
  fontTools/__main__.py,sha256=VjkGh1UD-i1zTDA1dXo1uecSs6PxHdGQ5vlCk_mCCYs,925
3
3
  fontTools/afmLib.py,sha256=1MagIItOzRV4vV5kKPxeDZbPJsfxLB3wdHLFkQvl0uk,13164
4
4
  fontTools/agl.py,sha256=05bm8Uq45uVWW8nPbP6xbNgmFyxQr8sWhYAiP0VSjnI,112975
@@ -10,7 +10,7 @@ fontTools/unicode.py,sha256=ZZ7OMmWvIyV1IL1k6ioTzaRAh3tUvm6gvK7QgFbOIHY,1237
10
10
  fontTools/cffLib/CFF2ToCFF.py,sha256=pvwh6qxJ0D7c4xgXBcyAdmZGzpTiywMy45-jjp7dKck,6088
11
11
  fontTools/cffLib/CFFToCFF2.py,sha256=Qnk7lYlsTRHnlZQ6NXNdr_f4MJwZQ21kcS08KFbsyY8,10119
12
12
  fontTools/cffLib/__init__.py,sha256=62vpcR7u8cE407kXduAwnFttHnsoCpDQ7IBK-qOYFQ8,107886
13
- fontTools/cffLib/specializer.py,sha256=uyzL0YGs07qICImEifWh8wC53YyelftwDeUrLlWHJok,32544
13
+ fontTools/cffLib/specializer.py,sha256=vsOPkR_jHNe6tESQEjmm0i76y7sWI5MKo3bsTmI3sNM,32609
14
14
  fontTools/cffLib/transforms.py,sha256=kHBnYQmcJBLIMUC6Uws4eor2mJiNNHiR_eRePXHDPC8,17371
15
15
  fontTools/cffLib/width.py,sha256=IqGL0CLyCZqi_hvsHySG08qpYxS3kaqW-tsAT-bjHV4,6074
16
16
  fontTools/colorLib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -24,8 +24,8 @@ fontTools/cu2qu/__init__.py,sha256=Cuc7Uglb0nSgaraTxXY5J8bReznH5wApW0uakN7MycY,6
24
24
  fontTools/cu2qu/__main__.py,sha256=kTUI-jczsHeelULLlory74QEeFjZWp9zigCc7PrdVQY,92
25
25
  fontTools/cu2qu/benchmark.py,sha256=wasPJmf8q9k9UHjpHChC3WQAGbBAyHN9PvJzXvWC0Fw,1296
26
26
  fontTools/cu2qu/cli.py,sha256=MbAQnOpZwrUFe_tjAP3Tgf6uLdOgHlONUcPNeTXwH0Y,6076
27
- fontTools/cu2qu/cu2qu.c,sha256=ZqtVEc5rAcl9hKNAdPgj-uI5YOQzsWQEuo3JnuMbxzw,620807
28
- fontTools/cu2qu/cu2qu.cpython-310-aarch64-linux-gnu.so,sha256=QD49hIKQMILZ-EXDrecUrfRixggcHDNbmgTQfZpuuhs,731328
27
+ fontTools/cu2qu/cu2qu.c,sha256=Ttr2QHAx0ue7Jrqa4sKm-tgMNnnOVX8TOQ6eo0RYmnM,621518
28
+ fontTools/cu2qu/cu2qu.cpython-310-aarch64-linux-gnu.so,sha256=BUN2pJHN9Gu0DmaD0Lquu3ryP18uBGedY0pHK8U1z4o,731472
29
29
  fontTools/cu2qu/cu2qu.py,sha256=GGNdNWT4xgrvxeZTczIj9Nxi6vN-5lb90KyVmB95W0Y,16439
30
30
  fontTools/cu2qu/errors.py,sha256=PyJNMy8lHDtKpfFkc0nkM8F4jNLZAC4lPQCN1Km4bpg,2441
31
31
  fontTools/cu2qu/ufo.py,sha256=qZR70uWdCia19Ff8GLn5NeItscvvn69DegjDZVF4eNI,11794
@@ -40,11 +40,11 @@ fontTools/encodings/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01
40
40
  fontTools/encodings/codecs.py,sha256=u50ruwz9fcRsrUrRGpR17Cr55Ovn1fvCHCKrElVumDE,4721
41
41
  fontTools/feaLib/__init__.py,sha256=jlIru2ghxvb1HhC5Je2BCXjFJmFQlYKpruorPoz3BvQ,213
42
42
  fontTools/feaLib/__main__.py,sha256=Df2PA6LXwna98lSXiL7R4as_ZEdWCIk3egSM5w7GpvM,2240
43
- fontTools/feaLib/ast.py,sha256=e-THLe3oOlLtlxYreCZJdEGk3Kd_8bzSLHgaCaEPFkQ,77087
44
- fontTools/feaLib/builder.py,sha256=wqec6HRhFjAwu2oVLKcFSSGe_AQf2ae9QC8dLp3XJBY,72859
43
+ fontTools/feaLib/ast.py,sha256=ElVBjb_Ut5kVgdu5_XyWLYiWIc66ZnXEj_lhynPn5Mg,74142
44
+ fontTools/feaLib/builder.py,sha256=cJGF2d4ueHO5vvzcxnKRufFsIbaJsYvTlBsrDyxDMKI,73052
45
45
  fontTools/feaLib/error.py,sha256=Bz_5tNcNVcY7_nrAmFlQNhQldtqZWd8WUGQ2E3PWhZo,648
46
- fontTools/feaLib/lexer.c,sha256=23ySgyfJppq0dzpKCoU8CxStGkfK1LUgtB1F3CiItWs,745312
47
- fontTools/feaLib/lexer.cpython-310-aarch64-linux-gnu.so,sha256=gYzrEQceDgZQuQEI2rgmy6CeRKuZOMNda9Xje97cmXg,1051176
46
+ fontTools/feaLib/lexer.c,sha256=af8u7iU6xvSMRVv5cUo0V6_hoWRWm6vn4EhAaptCJt0,746308
47
+ fontTools/feaLib/lexer.cpython-310-aarch64-linux-gnu.so,sha256=-C0Lgt41RPOUhuyTJR8ppXpI9K3MV0YNoynTYDV5D0k,1051280
48
48
  fontTools/feaLib/lexer.py,sha256=emyMPmRoqNZkzxnJyI6JRCCtXrbCOFofwa9O6ABGLiw,11121
49
49
  fontTools/feaLib/location.py,sha256=JXzHqGV56EHdcq823AwA5oaK05hf_1ySWpScbo3zGC0,234
50
50
  fontTools/feaLib/lookupDebugInfo.py,sha256=gVRr5-APWfT_a5-25hRuawSVX8fEvXVsOSLWkH91T2w,304
@@ -53,16 +53,16 @@ fontTools/feaLib/variableScalar.py,sha256=Xu8tpDlQbfIfjnKnYDEf43EqVdyIJUy8_1ROVP
53
53
  fontTools/merge/__init__.py,sha256=-l65-mbTwSh0gjarnojIfsAX-ZkMtdz3vGTjtYHQ2ws,8250
54
54
  fontTools/merge/__main__.py,sha256=hDx3gfbUBO83AJKumSEhiV-xqNTJNNgK2uFjazOGTmw,94
55
55
  fontTools/merge/base.py,sha256=l0G1Px98E9ZdVuFLMUBKWdtr7Jb8JX8vxcjeaDUUnzY,2389
56
- fontTools/merge/cmap.py,sha256=_oCBnZfm5M7ebYRJnOYw5wUEICFmdR6kMUe1w6jsVuM,5545
56
+ fontTools/merge/cmap.py,sha256=HpthxVH5lA7VegJ8yHoBjd9vrFBV7UB5OknKGYpxWY8,6728
57
57
  fontTools/merge/layout.py,sha256=fkMPGPLxEdxohS3scVM4W7LmNthSz-UPyocsffe2KqE,16075
58
58
  fontTools/merge/options.py,sha256=xko_1-WErcNQkirECzIOOYxSJR_bRtdQYQYOtmgccYI,2501
59
- fontTools/merge/tables.py,sha256=uBD1-XqOCDzFxp0D7ZDvrMRdd8R7eAm58WtYKhz-m5w,10640
59
+ fontTools/merge/tables.py,sha256=7SzXYL04awDEDhvU2-9T_8A2gAjvgGyYAHUICUJOpZg,10958
60
60
  fontTools/merge/unicode.py,sha256=kb1Jrfuoq1KUcVhhSKnflAED_wMZxXDjVwB-CI9k05Y,4273
61
61
  fontTools/merge/util.py,sha256=BH3bZWNFy-Tsj1cth7aSpGVJ18YXKXqDakPn6Wzku6U,3378
62
62
  fontTools/misc/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75
63
63
  fontTools/misc/arrayTools.py,sha256=jZk__GE-K9VViZE_H-LPPj0smWbKng-yfPE8BfGp8HI,11483
64
- fontTools/misc/bezierTools.c,sha256=sJinBI1NesLzSyVoGYYlQRCd7LDmh3NY6XPUmkEdLfw,1811547
65
- fontTools/misc/bezierTools.cpython-310-aarch64-linux-gnu.so,sha256=4p3mXXozypQwSZAmY-4SAlwq8Kuveu6lH3Wal77Acr0,3329136
64
+ fontTools/misc/bezierTools.c,sha256=dwblULvarA7DA4HwLswyjUlh1rVhJY_86COUrHeyEPU,1812835
65
+ fontTools/misc/bezierTools.cpython-310-aarch64-linux-gnu.so,sha256=dLypUieyluc2TmiIB8C-9zP8p9ol10hz4fyLkfGoFF0,3331184
66
66
  fontTools/misc/bezierTools.py,sha256=OmR3pzCGExNvZyTPrByH7gQHpAJsYOl1cmvfYQIVfQA,45038
67
67
  fontTools/misc/classifyTools.py,sha256=zcg3EM4GOerBW9c063ljaLllgeeZ772EpFZjp9CdgLI,5613
68
68
  fontTools/misc/cliTools.py,sha256=qCznJMLCQu3ZHQD_4ctUnr3TkfAUdkGl-UuxZUrppy0,1862
@@ -77,7 +77,7 @@ fontTools/misc/fixedTools.py,sha256=gsotTCOJLyMis13M4_jQJ8-QPob2Gl2TtNJhW6FER1I,
77
77
  fontTools/misc/intTools.py,sha256=l6pjk4UYlXcyLtfC0DdOC5RL6UJ8ihRR0zRiYow5xA8,586
78
78
  fontTools/misc/iterTools.py,sha256=17H6LPZszp32bTKoNorp6uZF1PKj47BAbe5QG8irUjo,390
79
79
  fontTools/misc/lazyTools.py,sha256=BC6MmF-OzJ3GrBD8TYDZ-VCSN4UOx0pN0r3oF4GSoiw,1020
80
- fontTools/misc/loggingTools.py,sha256=2uXks8fEnBjdgJEcxMLvD77-lbOPto3neJ86bMqV_qM,19898
80
+ fontTools/misc/loggingTools.py,sha256=NOYROsLK5TzONK5967OGdVonNyXC6kP_CmPr7M2PW_c,19933
81
81
  fontTools/misc/macCreatorType.py,sha256=Je9jtqUr7EPbpH3QxlVl3pizoQ-1AOPMBIctHIMTM3k,1593
82
82
  fontTools/misc/macRes.py,sha256=GT_pnfPw2NCvvOF86nHLAnOtZ6SMHqEuLntaplXzvHM,8579
83
83
  fontTools/misc/psCharStrings.py,sha256=Tb5-k_5krP0eu7qD054iGxE4Zybk9oB4jdiKzcsV0rw,43036
@@ -86,7 +86,7 @@ fontTools/misc/psOperators.py,sha256=9SLl5PPBulLo0Xxg_dqlJMitNIBdiGKdkXhOWsNSYZE
86
86
  fontTools/misc/py23.py,sha256=aPVCEUz_deggwLBCeTSsccX6QgJavZqvdVtuhpzrPvA,2238
87
87
  fontTools/misc/roundTools.py,sha256=1RSXZ0gyi1qW42tz6WSBMJD1FlPdtgqKfWixVN9bd78,3173
88
88
  fontTools/misc/sstruct.py,sha256=HuXwoRr9-mAbBxI3gJ3n34ML7NAGSHsAAazaaloWQB4,7158
89
- fontTools/misc/symfont.py,sha256=SJtc3-9VdhT6fokx5Vvzs7YErqRib1u-rItNqXI0rTM,6991
89
+ fontTools/misc/symfont.py,sha256=x5ZwqK9Ik9orG6qSftgVGygBFE1wTSngrMK2We1Z5AM,6977
90
90
  fontTools/misc/testTools.py,sha256=3vj_KllUQVEiVFbS0SzTmeuKv44-L-disI1dZ4XhOfw,7052
91
91
  fontTools/misc/textTools.py,sha256=pbhr6LVhm3J-0Z4saYnJfxBDzyoiw4BR9pAgwypiOw8,3377
92
92
  fontTools/misc/timeTools.py,sha256=e9h5pgzL04tBDXmCv_8eRGB4boFV8GKXlS6dq3ggEpw,2234
@@ -98,10 +98,10 @@ fontTools/misc/xmlReader.py,sha256=igut4_d13RT4WarliqVvuuPybO1uSXVeoBOeW4j0_e4,6
98
98
  fontTools/misc/xmlWriter.py,sha256=CA1c-Ov5vFTF9tT4bGk-f3yBvaX7lVmSdLPYygUqlAE,6046
99
99
  fontTools/misc/plistlib/__init__.py,sha256=1HfhHPt3As6u2eRSlFfl6XdnXv_ypQImeQdWIw6wK7Y,21113
100
100
  fontTools/misc/plistlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
- fontTools/mtiLib/__init__.py,sha256=3kkb3G86QIiskaP8gNQIKLSBG2v6FfTsxQRfhHtZVo0,46598
101
+ fontTools/mtiLib/__init__.py,sha256=EzYwNaENLf906h1THBeq6nSRHUKpOAYxuzO9x9PHzh8,46602
102
102
  fontTools/mtiLib/__main__.py,sha256=gd8X89jnZOe-752k7uaR1lWoiju-2zIT5Yx35Kl0Xek,94
103
103
  fontTools/otlLib/__init__.py,sha256=D2leUW-3gsUTOFcJYGC18edBYjIJ804ut4qitJYWsaQ,45
104
- fontTools/otlLib/builder.py,sha256=nCJJGYuToDSDeJ5prQSgk5Bt-mgY_s9avp6Odcl2Eqc,120780
104
+ fontTools/otlLib/builder.py,sha256=nv1bEbN-Q3OhDZJyz3t1CK4M-EoFZ1iPHIPHIQUBNB8,127669
105
105
  fontTools/otlLib/error.py,sha256=cthuhBuOwZYpkTLi5gFPupUxkXkCHe-L_YgkE7N1wCI,335
106
106
  fontTools/otlLib/maxContextCalc.py,sha256=3es4Kt84TaZ49sA2ev1zrlwPJikJCAECx5KavwhyB-I,3175
107
107
  fontTools/otlLib/optimize/__init__.py,sha256=UUQRpNkHU2RczCRt-Gz7sEiYE9AQq9BHLXZEOyvsnX4,1530
@@ -118,8 +118,8 @@ fontTools/pens/explicitClosingLinePen.py,sha256=kKKtdZiwaf8Cj4_ytrIDdGB2GMpPPDXm
118
118
  fontTools/pens/filterPen.py,sha256=kKSvLmWCW4MkCF0ciJhjTj-LdUGOQL593PFkpm5PhP8,7790
119
119
  fontTools/pens/freetypePen.py,sha256=HD-gXJSbgImJdBc8sIBk0HWBdjv3WKFofs6PgCCsGOY,19908
120
120
  fontTools/pens/hashPointPen.py,sha256=gElrFyQoOQp3ZbpKHRWPwC61A9OgT2Js8crVUD8BQAY,3573
121
- fontTools/pens/momentsPen.c,sha256=HFud4BE7q7Yxey-UtpJHq9wBLu8RoJ8e92RiP13pco0,557028
122
- fontTools/pens/momentsPen.cpython-310-aarch64-linux-gnu.so,sha256=vfb72mmKcH35VywS3D1gkQRT4crAVFGDEFoI7f49LJ4,710272
121
+ fontTools/pens/momentsPen.c,sha256=umFAUQn7-vvrXZKOxXeA5NZWhnWeaRjD7trG7CInXi4,557916
122
+ fontTools/pens/momentsPen.cpython-310-aarch64-linux-gnu.so,sha256=OfVZmqr_gN9A2hKHFGdy6aY6I494mx_rOOtIEYKgzzk,710416
123
123
  fontTools/pens/momentsPen.py,sha256=kjLVXhGe55Abl__Yr1gob0bl0dHe7fPSwyr7TRJnbug,25658
124
124
  fontTools/pens/perimeterPen.py,sha256=lr6NzrIWxi4TXBJPbcJsKzqABWfQeil2Bgm9BgUD3N4,2153
125
125
  fontTools/pens/pointInsidePen.py,sha256=noEUvBQIeAheDMJwzvvfnEiKhmwbS1i0RQE9jik6Gl4,6355
@@ -133,7 +133,7 @@ fontTools/pens/reverseContourPen.py,sha256=oz64ZRhLAvT7DYMAwGKoLzZXQK8l81jRiYnTZ
133
133
  fontTools/pens/roundingPen.py,sha256=Q4vvG0Esq_sLNODU0TITU4F3wcXcKWo4BA7DWdDaVcM,4649
134
134
  fontTools/pens/statisticsPen.py,sha256=piWK6NjjWqk9MLROjeE2-4EsxVYMyNU7UQFGD_trE9g,9808
135
135
  fontTools/pens/svgPathPen.py,sha256=T3b6SZS9B9sVWMK9mSFDtjHeviQs_yOJOZKq5Sg5Zdg,8572
136
- fontTools/pens/t2CharStringPen.py,sha256=uq9KCOxrk5TEZGYpcOG-pgkWHYCe4dMwb2hx5uYOmWA,2391
136
+ fontTools/pens/t2CharStringPen.py,sha256=GgGklb5XsCer0w37ujgRLRXx-EuzdFsyCYuzCx4n-Qs,2931
137
137
  fontTools/pens/teePen.py,sha256=P1ARJOCMJ6MxK-PB1yZ-ips3CUfnadWYnQ_do6VIasQ,1290
138
138
  fontTools/pens/transformPen.py,sha256=s0kUyQdnemUwHvYr2SFboFmh4WY1S9OHBL8L4PJKRwE,4056
139
139
  fontTools/pens/ttGlyphPen.py,sha256=yLtB-E5pTQR59OKVYySttWBu1xC2vR8ezSaRhIMtVwg,11870
@@ -142,10 +142,10 @@ fontTools/qu2cu/__init__.py,sha256=Jfm1JljXbt91w4gyvZn6jzEmVnhRx50sh2fDongrOsE,6
142
142
  fontTools/qu2cu/__main__.py,sha256=9FWf6SIZaRaC8SiL0LhjAWC2yIdY9N_9wlRko8m1l2Q,93
143
143
  fontTools/qu2cu/benchmark.py,sha256=GMcr_4r7L6K9SmJ13itt-_XKhnKqSVUDPlXUG6IZmmM,1400
144
144
  fontTools/qu2cu/cli.py,sha256=U2rooYnVVEalGRAWGFHk-Kp6Okys8wtzdaWLjw1bngY,3714
145
- fontTools/qu2cu/qu2cu.c,sha256=kGP5jaHFrSk-HkSXUlB2vo2QA0s_reC36VMZlmXZRUE,680788
146
- fontTools/qu2cu/qu2cu.cpython-310-aarch64-linux-gnu.so,sha256=3fdCz1rpQvzJMvecp9Xr2x0f-PB9pDuxArSC-NZ6Iwo,891288
145
+ fontTools/qu2cu/qu2cu.c,sha256=0HvN1F6E79Vaq4zodUesZ2x1mZa5JwO5onu0hNX3o08,681544
146
+ fontTools/qu2cu/qu2cu.cpython-310-aarch64-linux-gnu.so,sha256=ln6BVkMeaFmWOp1oJ2Qt3UFtTB-trMx79ae0BsLlU7Y,890432
147
147
  fontTools/qu2cu/qu2cu.py,sha256=IYtpkwHdfKOXJr65Y_pJ9Lrt_MgJaISAKGMAs5ilFSM,12288
148
- fontTools/subset/__init__.py,sha256=FTJvbeLvC_5uwLBonOd6AIgpLLFsjJs3SELor0cqy68,134342
148
+ fontTools/subset/__init__.py,sha256=c3EulDBf-RYUaUFTM_JoIuVHvmLK7Fwf4_IlgxS46BY,137659
149
149
  fontTools/subset/__main__.py,sha256=bhtfP2SqP4k799pxtksFgnC-XGNQDr3LcO4lc8T5e5g,95
150
150
  fontTools/subset/cff.py,sha256=rqMRJOlX5FacV1LW8aDlVOglgEM87TkMA9bdsYenask,6145
151
151
  fontTools/subset/svg.py,sha256=8dLBzQlnIt4_fOKEFDAVlKTucdHvcbCcyG9-a6UBZZ0,9384
@@ -160,7 +160,7 @@ fontTools/ttLib/__init__.py,sha256=1k7qp9z04gA3m6GvxDaINjqrKbzOkdTA_4RnqW_-LrA,6
160
160
  fontTools/ttLib/__main__.py,sha256=lHMPWsnzjKPuMFavf6i1gpk9KexiAk4qzgDd50Mbby0,4733
161
161
  fontTools/ttLib/macUtils.py,sha256=lj3oeFpyjV7ko_JqnluneITmAtlc119J-vwTTg2s73A,1737
162
162
  fontTools/ttLib/removeOverlaps.py,sha256=YBtj1PX-d2jMgCiWGuI6ibghWApUWqH2trJGXNxrbjQ,12612
163
- fontTools/ttLib/reorderGlyphs.py,sha256=8ClsX9-tnPfuiD8kHY4jPliGJ-31-JdybA4s1UNWx4w,10316
163
+ fontTools/ttLib/reorderGlyphs.py,sha256=TbxLxqPTUGiKRX3ulGFCwVm2lEisFYlX6caONJr_4oY,10371
164
164
  fontTools/ttLib/scaleUpem.py,sha256=U_-NGkwfS9GRIackdEXjGYZ-wSomcUPXQahDneLeArI,14618
165
165
  fontTools/ttLib/sfnt.py,sha256=rkznKfteU_Rn9P65WSjFaiwQgpEAoh-TrQpvkQhdIlo,22832
166
166
  fontTools/ttLib/standardGlyphOrder.py,sha256=7AY_fVWdtwZ4iv5uWdyKAUcbEQiSDt1lN4sqx9xXwE0,5785
@@ -269,7 +269,7 @@ fontTools/ttLib/tables/sbixGlyph.py,sha256=tjEUPVRfx6gr5yme8UytGTtVrimKN5qmbzT1G
269
269
  fontTools/ttLib/tables/sbixStrike.py,sha256=gFyOlhRIGnd59y0SrhtsT2Ce4L3yaBrLoFJ_dK9u9mQ,6663
270
270
  fontTools/ttLib/tables/table_API_readme.txt,sha256=eZlRTLUkLzc_9Ot3pdfhyMb3ahU0_Iipx0vSbzOVGy8,2748
271
271
  fontTools/ttLib/tables/ttProgram.py,sha256=tgtxgd-EnOq-2PUlYEihp-6NHu_7HnE5rxeSAtmXOtU,35888
272
- fontTools/ufoLib/__init__.py,sha256=f5PUv0b4kDBIjnzhXRj5yd3n8qWJm256TjmBaC0P9xA,94427
272
+ fontTools/ufoLib/__init__.py,sha256=_Um-de5MGbr7lxarlsoHSdxLpzAD88LfLEYMrnup2Sc,94431
273
273
  fontTools/ufoLib/converters.py,sha256=9j4BQ7EXVfWiVoB7OZCzRGsRJWi9G9w_27iFuiJNphw,13044
274
274
  fontTools/ufoLib/errors.py,sha256=9f8l5NaFAj3BZPa6Bbqt06FL4afffLuMzy4nPf-eOlE,845
275
275
  fontTools/ufoLib/etree.py,sha256=T3sjLTgjMAq6VyYRicWPaMIVBJ2YSuwZxV6Vc5yZtQI,231
@@ -286,23 +286,23 @@ fontTools/unicodedata/OTTags.py,sha256=wOPpbMsNcp_gdvPFeITtgVMnTN8TJSNAsVEdu_nuP
286
286
  fontTools/unicodedata/ScriptExtensions.py,sha256=YTZr2bOteHiz_7I4108PRy0Is4kFof-32yFuoKjFHjc,28207
287
287
  fontTools/unicodedata/Scripts.py,sha256=I0nY08ovsZ4pHU5wYchjat9DjnxcpoTzaXAn5oFaKNI,130271
288
288
  fontTools/unicodedata/__init__.py,sha256=Ega5OM4ksWZPCeJv99NLo2pksMpzMqlhkXCScGE6byM,8983
289
- fontTools/varLib/__init__.py,sha256=4gOg4J8ghtvNP1wyL1NS5ZQqnWPEQh-3hi0VIDVLUVQ,53706
289
+ fontTools/varLib/__init__.py,sha256=dc1_8itv2pS3q6mO8vMuEe-XdWOiJLIWVsJ8-bhPflI,54236
290
290
  fontTools/varLib/__main__.py,sha256=wbdYC5bPjWCxA0I4SKcLO88gl-UMtsYS8MxdW9ySTkY,95
291
291
  fontTools/varLib/avar.py,sha256=Ye_u0HHznaPQaTzufNFKDj_v9o_LxOKJoa_eTK1D1F0,9647
292
292
  fontTools/varLib/avarPlanner.py,sha256=uLMGsL6cBbEMq5YItwABG_vXlXV3bxquM93WGDJ1brA,27358
293
293
  fontTools/varLib/builder.py,sha256=mSKOCcnnw-WzmZs15FayoqCDh77Ts7o9Tre9psh8CUc,6609
294
294
  fontTools/varLib/cff.py,sha256=EVgaQcoROIrYQsRuftnxFuGGldEPYbrIh5yBckylJC4,22901
295
295
  fontTools/varLib/errors.py,sha256=dMo8eGj76I7H4hrBEiNbYrGs2J1K1SwdsUyTHpkVOrQ,6934
296
- fontTools/varLib/featureVars.py,sha256=BCOBGjGUv2Rw_z0rlVi1ZYkTDcCMh0LyAUzDVJ2PYm4,25448
297
- fontTools/varLib/hvar.py,sha256=4W5t3s7GOBN07x9KNDmA_4NGXxVEEahzkn3cWJZ4oGw,3693
296
+ fontTools/varLib/featureVars.py,sha256=ZmHPyy4KuamR4bI1PfH-Umk4EN_CfwvNfchu7BOmECg,25695
297
+ fontTools/varLib/hvar.py,sha256=u7ppYCyWRBbJhIYyBcOxuVvwbZHnlOmXlUJH74a3LHs,3695
298
298
  fontTools/varLib/interpolatable.py,sha256=Bhlq_LhEZ-sXfLNY8aFEChFrsKuT2kzmnuMfG5qi0v4,45221
299
299
  fontTools/varLib/interpolatableHelpers.py,sha256=lXd7kwfIVl-4opd-vxCDhf48RnJ7IQKv_uuFQM_6vaU,11496
300
300
  fontTools/varLib/interpolatablePlot.py,sha256=w393P6mGLRhYkIjSxMww3qyoYxAUZzCXlmPBbI_84C0,44375
301
301
  fontTools/varLib/interpolatableTestContourOrder.py,sha256=mHJ9Ry7Rm7H3zHDwEUQEtEIDseiUzOxjg4MveW_FSiU,3021
302
302
  fontTools/varLib/interpolatableTestStartingPoint.py,sha256=K6OYKBspim6BXc91pfLTbGLyi5XZukfMuBc6hRpENG8,4296
303
303
  fontTools/varLib/interpolate_layout.py,sha256=22VjGZuV2YiAe2MpdTf0xPVz1x2G84bcOL0vOeBpGQM,3689
304
- fontTools/varLib/iup.c,sha256=rVdA_KAmBLYRX9rXCsh5NK6edLGyI2cAWxrH0DfCzWI,818158
305
- fontTools/varLib/iup.cpython-310-aarch64-linux-gnu.so,sha256=8sgE3chvpedSb8EArr0qUiv8iYzvw1qZydDJihfnmVQ,1229304
304
+ fontTools/varLib/iup.c,sha256=hsClcOzRho04LrNyixCbLIIM0p_76sL7qiakV5eml_0,818965
305
+ fontTools/varLib/iup.cpython-310-aarch64-linux-gnu.so,sha256=yhTvNsmHRU94mhssSY2DUuFUkf-GX5fL6YJ6gazb9gc,1229248
306
306
  fontTools/varLib/iup.py,sha256=mKq_GRWuUg4yTmw2V32nu0v2r-SzzN7xS7rIbV0mYuc,14984
307
307
  fontTools/varLib/merger.py,sha256=E59oli4AwqWZ-FgnuStMSBvsB-FHe-55esXTYUqGeJ8,60802
308
308
  fontTools/varLib/models.py,sha256=sj_ENljh_qcMbfYzRIOlRgHq6tFOmL02Wv6WO8uofis,22398
@@ -312,7 +312,7 @@ fontTools/varLib/mvar.py,sha256=LTV77vH_3Ecg_qKBO5xQzjLOlJir_ppEr7mPVZRgad8,2449
312
312
  fontTools/varLib/plot.py,sha256=NoSZkJ5ndxNcDvJIvd5pQ9_jX6X1oM1K2G_tR4sdPVs,7494
313
313
  fontTools/varLib/stat.py,sha256=XuNKKZxGlBrl4OGFDAwVXhpBwJi23U3BdHmNTKoJnvE,4811
314
314
  fontTools/varLib/varStore.py,sha256=2QA9SDI6jQyQ_zq82OOwa3FBkfl-ksaSo1KGmVFpa9Q,24069
315
- fontTools/varLib/instancer/__init__.py,sha256=wFqRVbww2CjuJk3MPDQ2HGmpNBGNQd9JF58KQoBl8_c,71346
315
+ fontTools/varLib/instancer/__init__.py,sha256=4I3M5PL3rLcch_yw_rflb0f09SG3zA3eADws-purFXg,71827
316
316
  fontTools/varLib/instancer/__main__.py,sha256=zfULwcP01FhplS1IlcMgNQnLxk5RVfmOuinWjqeid-g,104
317
317
  fontTools/varLib/instancer/featureVars.py,sha256=oPqSlnHLMDTtOsmQMi6gkzLox7ymCrqlRAkvC_EJ4bc,7110
318
318
  fontTools/varLib/instancer/names.py,sha256=IPRqel_M8zVU0jl30WsfgufxUm9PBBQDQCY3VHapeHc,14950
@@ -324,11 +324,11 @@ fontTools/voltLib/error.py,sha256=phcQOQj-xOspCXu9hBJQRhSOBDzxHRgZd3fWQOFNJzw,39
324
324
  fontTools/voltLib/lexer.py,sha256=OvuETOSvlS6v7iCVeJ3IdH2Cg71n3OJoEyiB3-h6vhE,3368
325
325
  fontTools/voltLib/parser.py,sha256=rkw2IHBZPsrhGVC7Kw7V501m0u52kh1JSM5HXp-xchM,25396
326
326
  fontTools/voltLib/voltToFea.py,sha256=Z2yvnaZLQXzPLT86Uta0zRsXIYgj6NnvZtSWt5xmw2s,36549
327
- fonttools-4.58.0.data/data/share/man/man1/ttx.1,sha256=cLbm_pOOj1C76T2QXvDxzwDj9gk-GTd5RztvTMsouFw,5377
328
- fonttools-4.58.0.dist-info/METADATA,sha256=AY_LgEzUlDOyf6osicMuexAXywU_LKzx3aaw416143c,104471
329
- fonttools-4.58.0.dist-info/WHEEL,sha256=jJiKnFtllFfzrv4lxdFSanhDZAzrkSeLzkHALyJbaw4,113
330
- fonttools-4.58.0.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
331
- fonttools-4.58.0.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
332
- fonttools-4.58.0.dist-info/RECORD,,
333
- fonttools-4.58.0.dist-info/licenses/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072
334
- fonttools-4.58.0.dist-info/licenses/LICENSE.external,sha256=1IdixYQuQZseNUNQ1bR3SJQhW1d5SGRUR23TNBJjzwo,18687
327
+ fonttools-4.58.2.data/data/share/man/man1/ttx.1,sha256=cLbm_pOOj1C76T2QXvDxzwDj9gk-GTd5RztvTMsouFw,5377
328
+ fonttools-4.58.2.dist-info/METADATA,sha256=rzM2sNi609hxqlGZhiaNgS6kxP83lj4AqumcSBLDxO8,106341
329
+ fonttools-4.58.2.dist-info/WHEEL,sha256=qvx19vD_zYvGQFVzkH0wrT4tVIal9wOVogYGQfy9ymw,113
330
+ fonttools-4.58.2.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147
331
+ fonttools-4.58.2.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10
332
+ fonttools-4.58.2.dist-info/RECORD,,
333
+ fonttools-4.58.2.dist-info/licenses/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072
334
+ fonttools-4.58.2.dist-info/licenses/LICENSE.external,sha256=1IdixYQuQZseNUNQ1bR3SJQhW1d5SGRUR23TNBJjzwo,18687
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-musllinux_1_2_aarch64
5
5