fonttools 4.58.2__cp312-cp312-musllinux_1_2_aarch64.whl → 4.58.4__cp312-cp312-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.
- fontTools/__init__.py +1 -1
- fontTools/cu2qu/cu2qu.c +280 -92
- fontTools/cu2qu/cu2qu.cpython-312-aarch64-linux-musl.so +0 -0
- fontTools/feaLib/ast.py +2 -2
- fontTools/feaLib/builder.py +2 -2
- fontTools/feaLib/lexer.c +238 -62
- fontTools/feaLib/lexer.cpython-312-aarch64-linux-musl.so +0 -0
- fontTools/misc/bezierTools.c +390 -202
- fontTools/misc/bezierTools.cpython-312-aarch64-linux-musl.so +0 -0
- fontTools/pens/momentsPen.c +222 -46
- fontTools/pens/momentsPen.cpython-312-aarch64-linux-musl.so +0 -0
- fontTools/qu2cu/qu2cu.c +293 -105
- fontTools/qu2cu/qu2cu.cpython-312-aarch64-linux-musl.so +0 -0
- fontTools/varLib/iup.c +260 -72
- fontTools/varLib/iup.cpython-312-aarch64-linux-musl.so +0 -0
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/METADATA +11 -1
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/RECORD +23 -23
- {fonttools-4.58.2.data → fonttools-4.58.4.data}/data/share/man/man1/ttx.1 +0 -0
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/WHEEL +0 -0
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/entry_points.txt +0 -0
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/licenses/LICENSE +0 -0
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/licenses/LICENSE.external +0 -0
- {fonttools-4.58.2.dist-info → fonttools-4.58.4.dist-info}/top_level.txt +0 -0
fontTools/varLib/iup.c
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Generated by Cython 3.1.
|
|
1
|
+
/* Generated by Cython 3.1.2 */
|
|
2
2
|
|
|
3
3
|
/* BEGIN: Cython Metadata
|
|
4
4
|
{
|
|
@@ -26,8 +26,8 @@ END: Cython Metadata */
|
|
|
26
26
|
#elif PY_VERSION_HEX < 0x03080000
|
|
27
27
|
#error Cython requires Python 3.8+.
|
|
28
28
|
#else
|
|
29
|
-
#define __PYX_ABI_VERSION "
|
|
30
|
-
#define CYTHON_HEX_VERSION
|
|
29
|
+
#define __PYX_ABI_VERSION "3_1_2"
|
|
30
|
+
#define CYTHON_HEX_VERSION 0x030102F0
|
|
31
31
|
#define CYTHON_FUTURE_DIVISION 1
|
|
32
32
|
/* CModulePreamble */
|
|
33
33
|
#include <stddef.h>
|
|
@@ -442,7 +442,7 @@ END: Cython Metadata */
|
|
|
442
442
|
#define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
|
|
443
443
|
#endif
|
|
444
444
|
#ifndef CYTHON_NCP_UNUSED
|
|
445
|
-
# if CYTHON_COMPILING_IN_CPYTHON
|
|
445
|
+
# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
|
|
446
446
|
# define CYTHON_NCP_UNUSED
|
|
447
447
|
# else
|
|
448
448
|
# define CYTHON_NCP_UNUSED CYTHON_UNUSED
|
|
@@ -887,11 +887,19 @@ static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict,
|
|
|
887
887
|
#define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
|
|
888
888
|
#define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
|
|
889
889
|
#endif
|
|
890
|
-
#if
|
|
890
|
+
#if CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
|
|
891
891
|
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
|
|
892
892
|
#define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
|
|
893
|
+
#elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
|
|
894
|
+
#define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
|
|
893
895
|
#else
|
|
894
|
-
#define __Pyx_PyList_GetItemRef(o, i)
|
|
896
|
+
#define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
|
|
897
|
+
#endif
|
|
898
|
+
#elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
|
|
899
|
+
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
|
|
900
|
+
#define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
|
|
901
|
+
#else
|
|
902
|
+
#define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
|
|
895
903
|
#endif
|
|
896
904
|
#else
|
|
897
905
|
#define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i))
|
|
@@ -1299,7 +1307,9 @@ static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
|
|
1299
1307
|
#endif /* __GNUC__ */
|
|
1300
1308
|
/* PretendToInitialize */
|
|
1301
1309
|
#ifdef __cplusplus
|
|
1310
|
+
#if __cplusplus > 201103L
|
|
1302
1311
|
#include <type_traits>
|
|
1312
|
+
#endif
|
|
1303
1313
|
template <typename T>
|
|
1304
1314
|
static void __Pyx_pretend_to_initialize(T* ptr) {
|
|
1305
1315
|
#if __cplusplus > 201103L
|
|
@@ -1728,7 +1738,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, P
|
|
|
1728
1738
|
static PyObject *__Pyx_GetBuiltinName(PyObject *name);
|
|
1729
1739
|
|
|
1730
1740
|
/* SetItemInt.proto */
|
|
1731
|
-
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
|
|
1741
|
+
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil)\
|
|
1732
1742
|
(__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
|
|
1733
1743
|
__Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
|
|
1734
1744
|
(is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
|
|
@@ -1738,18 +1748,18 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObje
|
|
|
1738
1748
|
int is_list, int wraparound, int boundscheck);
|
|
1739
1749
|
|
|
1740
1750
|
/* GetItemInt.proto */
|
|
1741
|
-
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
|
|
1751
|
+
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil)\
|
|
1742
1752
|
(__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
|
|
1743
1753
|
__Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
|
|
1744
1754
|
(is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
|
|
1745
1755
|
__Pyx_GetItemInt_Generic(o, to_py_func(i))))
|
|
1746
|
-
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
|
|
1756
|
+
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil)\
|
|
1747
1757
|
(__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
|
|
1748
1758
|
__Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
|
|
1749
1759
|
(PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
|
|
1750
1760
|
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
|
|
1751
1761
|
int wraparound, int boundscheck);
|
|
1752
|
-
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
|
|
1762
|
+
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil)\
|
|
1753
1763
|
(__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
|
|
1754
1764
|
__Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
|
|
1755
1765
|
(PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
|
|
@@ -2213,6 +2223,15 @@ static CYTHON_INLINE int __Pyx_PySet_Remove(PyObject *set, PyObject *key);
|
|
|
2213
2223
|
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
|
|
2214
2224
|
#endif
|
|
2215
2225
|
|
|
2226
|
+
/* LimitedApiGetTypeDict.proto */
|
|
2227
|
+
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
2228
|
+
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp);
|
|
2229
|
+
#endif
|
|
2230
|
+
|
|
2231
|
+
/* SetItemOnTypeDict.proto */
|
|
2232
|
+
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
|
|
2233
|
+
#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)
|
|
2234
|
+
|
|
2216
2235
|
/* FixUpExtensionType.proto */
|
|
2217
2236
|
static CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
|
|
2218
2237
|
|
|
@@ -2246,7 +2265,11 @@ static PyObject *__Pyx_FetchSharedCythonABIModule(void);
|
|
|
2246
2265
|
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value, int is_safe_type);
|
|
2247
2266
|
|
|
2248
2267
|
/* FetchCommonType.proto */
|
|
2249
|
-
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
|
|
2268
|
+
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);
|
|
2269
|
+
|
|
2270
|
+
/* CommonTypesMetaclass.proto */
|
|
2271
|
+
static int __pyx_CommonTypesMetaclass_init(PyObject *module);
|
|
2272
|
+
#define __Pyx_CommonTypesMetaclass_USED
|
|
2250
2273
|
|
|
2251
2274
|
/* PyMethodNew.proto */
|
|
2252
2275
|
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);
|
|
@@ -2568,6 +2591,7 @@ static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *clos
|
|
|
2568
2591
|
#if __PYX_HAS_PY_AM_SEND == 2
|
|
2569
2592
|
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send);
|
|
2570
2593
|
#endif
|
|
2594
|
+
static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg);
|
|
2571
2595
|
|
|
2572
2596
|
/* Generator.proto */
|
|
2573
2597
|
#define __Pyx_Generator_USED
|
|
@@ -2743,6 +2767,7 @@ static const char __pyx_k_best_sol[] = "best_sol";
|
|
|
2743
2767
|
static const char __pyx_k_lookback[] = "lookback";
|
|
2744
2768
|
static const char __pyx_k_qualname[] = "__qualname__";
|
|
2745
2769
|
static const char __pyx_k_rot_list[] = "_rot_list";
|
|
2770
|
+
static const char __pyx_k_set_name[] = "__set_name__";
|
|
2746
2771
|
static const char __pyx_k_solution[] = "solution";
|
|
2747
2772
|
static const char __pyx_k_Endpoints[] = "_Endpoints";
|
|
2748
2773
|
static const char __pyx_k_best_cost[] = "best_cost";
|
|
@@ -2852,7 +2877,7 @@ typedef struct {
|
|
|
2852
2877
|
__Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
|
|
2853
2878
|
PyObject *__pyx_tuple[4];
|
|
2854
2879
|
PyObject *__pyx_codeobj_tab[11];
|
|
2855
|
-
PyObject *__pyx_string_tab[
|
|
2880
|
+
PyObject *__pyx_string_tab[117];
|
|
2856
2881
|
PyObject *__pyx_float_0_0;
|
|
2857
2882
|
PyObject *__pyx_int_0;
|
|
2858
2883
|
PyObject *__pyx_int_1;
|
|
@@ -2892,6 +2917,9 @@ int __pyx_freecount_9fontTools_6varLib_3iup___pyx_scope_struct_3_genexpr;
|
|
|
2892
2917
|
struct __pyx_obj_9fontTools_6varLib_3iup___pyx_scope_struct_4_genexpr *__pyx_freelist_9fontTools_6varLib_3iup___pyx_scope_struct_4_genexpr[8];
|
|
2893
2918
|
int __pyx_freecount_9fontTools_6varLib_3iup___pyx_scope_struct_4_genexpr;
|
|
2894
2919
|
#endif
|
|
2920
|
+
/* CommonTypesMetaclass.module_state_decls */
|
|
2921
|
+
PyTypeObject *__pyx_CommonTypesMetaclassType;
|
|
2922
|
+
|
|
2895
2923
|
/* CachedMethodType.module_state_decls */
|
|
2896
2924
|
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
2897
2925
|
PyObject *__Pyx_CachedMethodType;
|
|
@@ -3030,17 +3058,18 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati
|
|
|
3030
3058
|
#define __pyx_n_u_s __pyx_string_tab[102]
|
|
3031
3059
|
#define __pyx_n_u_send __pyx_string_tab[103]
|
|
3032
3060
|
#define __pyx_n_u_set __pyx_string_tab[104]
|
|
3033
|
-
#define
|
|
3034
|
-
#define
|
|
3035
|
-
#define
|
|
3036
|
-
#define
|
|
3037
|
-
#define
|
|
3038
|
-
#define
|
|
3039
|
-
#define
|
|
3040
|
-
#define
|
|
3041
|
-
#define
|
|
3042
|
-
#define
|
|
3043
|
-
#define
|
|
3061
|
+
#define __pyx_n_u_set_name __pyx_string_tab[105]
|
|
3062
|
+
#define __pyx_n_u_solution __pyx_string_tab[106]
|
|
3063
|
+
#define __pyx_n_u_start __pyx_string_tab[107]
|
|
3064
|
+
#define __pyx_n_u_test __pyx_string_tab[108]
|
|
3065
|
+
#define __pyx_n_u_throw __pyx_string_tab[109]
|
|
3066
|
+
#define __pyx_n_u_tolerance __pyx_string_tab[110]
|
|
3067
|
+
#define __pyx_n_u_typing __pyx_string_tab[111]
|
|
3068
|
+
#define __pyx_n_u_v __pyx_string_tab[112]
|
|
3069
|
+
#define __pyx_n_u_value __pyx_string_tab[113]
|
|
3070
|
+
#define __pyx_n_u_x __pyx_string_tab[114]
|
|
3071
|
+
#define __pyx_n_u_y __pyx_string_tab[115]
|
|
3072
|
+
#define __pyx_n_u_zip __pyx_string_tab[116]
|
|
3044
3073
|
/* #### Code section: module_state_clear ### */
|
|
3045
3074
|
#if CYTHON_USE_MODULE_STATE
|
|
3046
3075
|
static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
|
|
@@ -3075,7 +3104,7 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
|
|
|
3075
3104
|
Py_CLEAR(clear_module_state->__pyx_type_9fontTools_6varLib_3iup___pyx_scope_struct_4_genexpr);
|
|
3076
3105
|
for (int i=0; i<4; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
|
|
3077
3106
|
for (int i=0; i<11; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
|
|
3078
|
-
for (int i=0; i<
|
|
3107
|
+
for (int i=0; i<117; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
|
|
3079
3108
|
Py_CLEAR(clear_module_state->__pyx_float_0_0);
|
|
3080
3109
|
Py_CLEAR(clear_module_state->__pyx_int_0);
|
|
3081
3110
|
Py_CLEAR(clear_module_state->__pyx_int_1);
|
|
@@ -3118,7 +3147,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void
|
|
|
3118
3147
|
Py_VISIT(traverse_module_state->__pyx_type_9fontTools_6varLib_3iup___pyx_scope_struct_4_genexpr);
|
|
3119
3148
|
for (int i=0; i<4; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
|
|
3120
3149
|
for (int i=0; i<11; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
|
|
3121
|
-
for (int i=0; i<
|
|
3150
|
+
for (int i=0; i<117; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
|
|
3122
3151
|
__Pyx_VISIT_CONST(traverse_module_state->__pyx_float_0_0);
|
|
3123
3152
|
__Pyx_VISIT_CONST(traverse_module_state->__pyx_int_0);
|
|
3124
3153
|
__Pyx_VISIT_CONST(traverse_module_state->__pyx_int_1);
|
|
@@ -3224,7 +3253,7 @@ static PyObject *__pyx_f_9fontTools_6varLib_3iup_iup_segment(PyObject *__pyx_v_c
|
|
|
3224
3253
|
*/
|
|
3225
3254
|
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __pyx_L1_error)
|
|
3226
3255
|
__Pyx_GOTREF(__pyx_t_3);
|
|
3227
|
-
if (unlikely((__Pyx_SetItemInt(__pyx_v_out_arrays, __pyx_v_j, __pyx_t_3, int, 1, __Pyx_PyLong_From_int, 1, 1, 1) < 0))) __PYX_ERR(0, 51, __pyx_L1_error)
|
|
3256
|
+
if (unlikely((__Pyx_SetItemInt(__pyx_v_out_arrays, __pyx_v_j, __pyx_t_3, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1) < 0))) __PYX_ERR(0, 51, __pyx_L1_error)
|
|
3228
3257
|
__Pyx_INCREF(__pyx_t_3);
|
|
3229
3258
|
__Pyx_XDECREF_SET(__pyx_v_out, __pyx_t_3);
|
|
3230
3259
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
@@ -3236,19 +3265,19 @@ static PyObject *__pyx_f_9fontTools_6varLib_3iup_iup_segment(PyObject *__pyx_v_c
|
|
|
3236
3265
|
*
|
|
3237
3266
|
* if x1 == x2:
|
|
3238
3267
|
*/
|
|
3239
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rc1, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3268
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rc1, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3240
3269
|
__Pyx_GOTREF(__pyx_t_3);
|
|
3241
3270
|
__pyx_t_5 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3242
3271
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
3243
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rc2, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3272
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rc2, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3244
3273
|
__Pyx_GOTREF(__pyx_t_3);
|
|
3245
3274
|
__pyx_t_6 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3246
3275
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
3247
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rd1, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3276
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rd1, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3248
3277
|
__Pyx_GOTREF(__pyx_t_3);
|
|
3249
3278
|
__pyx_t_7 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3250
3279
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
3251
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rd2, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3280
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rd2, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3252
3281
|
__Pyx_GOTREF(__pyx_t_3);
|
|
3253
3282
|
__pyx_t_8 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error)
|
|
3254
3283
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
@@ -3483,7 +3512,7 @@ static PyObject *__pyx_f_9fontTools_6varLib_3iup_iup_segment(PyObject *__pyx_v_c
|
|
|
3483
3512
|
*
|
|
3484
3513
|
* if x <= x1:
|
|
3485
3514
|
*/
|
|
3486
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pair, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
|
|
3515
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pair, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
|
|
3487
3516
|
__Pyx_GOTREF(__pyx_t_3);
|
|
3488
3517
|
__pyx_t_7 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L1_error)
|
|
3489
3518
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
@@ -3658,7 +3687,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
3658
3687
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
3659
3688
|
#endif
|
|
3660
3689
|
); /*proto*/
|
|
3661
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_iup_contour, "iup_contour(deltas: _DeltaOrNoneSegment, coords: _PointSegment) -> _DeltaSegment\nFor the contour given in `coords`, interpolate any missing\ndelta values in delta vector `deltas`.\n\nReturns fully filled-out delta vector.");
|
|
3690
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_iup_contour, "iup_contour(deltas: _DeltaOrNoneSegment, coords: _PointSegment) -> _DeltaSegment\n\nFor the contour given in `coords`, interpolate any missing\ndelta values in delta vector `deltas`.\n\nReturns fully filled-out delta vector.");
|
|
3662
3691
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_1iup_contour = {"iup_contour", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_1iup_contour, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_iup_contour};
|
|
3663
3692
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_1iup_contour(PyObject *__pyx_self,
|
|
3664
3693
|
#if CYTHON_METH_FASTCALL
|
|
@@ -4033,7 +4062,7 @@ static PyObject *__pyx_pf_9fontTools_6varLib_3iup_iup_contour(CYTHON_UNUSED PyOb
|
|
|
4033
4062
|
__Pyx_INCREF(__pyx_t_5);
|
|
4034
4063
|
__pyx_t_6 = __pyx_v_start;
|
|
4035
4064
|
__Pyx_INCREF(__pyx_t_6);
|
|
4036
|
-
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_indices, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 113, __pyx_L1_error)
|
|
4065
|
+
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_indices, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 113, __pyx_L1_error)
|
|
4037
4066
|
__Pyx_GOTREF(__pyx_t_8);
|
|
4038
4067
|
__pyx_v_i1 = __pyx_t_4;
|
|
4039
4068
|
__pyx_t_4 = 0;
|
|
@@ -4318,7 +4347,7 @@ static PyObject *__pyx_pf_9fontTools_6varLib_3iup_iup_contour(CYTHON_UNUSED PyOb
|
|
|
4318
4347
|
__Pyx_INCREF(__pyx_t_11);
|
|
4319
4348
|
__pyx_t_8 = __pyx_v_start;
|
|
4320
4349
|
__Pyx_INCREF(__pyx_t_8);
|
|
4321
|
-
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_indices, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
|
|
4350
|
+
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_indices, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
|
|
4322
4351
|
__Pyx_GOTREF(__pyx_t_4);
|
|
4323
4352
|
__Pyx_XDECREF_SET(__pyx_v_i1, __pyx_t_13);
|
|
4324
4353
|
__pyx_t_13 = 0;
|
|
@@ -4485,7 +4514,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
4485
4514
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
4486
4515
|
#endif
|
|
4487
4516
|
); /*proto*/
|
|
4488
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_2iup_delta, "iup_delta(deltas: _DeltaOrNoneSegment, coords: _PointSegment, ends: _Endpoints) -> _DeltaSegment\nFor the outline given in `coords`, with contour endpoints given\nin sorted increasing order in `ends`, interpolate any missing\ndelta values in delta vector `deltas`.\n\nReturns fully filled-out delta vector.");
|
|
4517
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_2iup_delta, "iup_delta(deltas: _DeltaOrNoneSegment, coords: _PointSegment, ends: _Endpoints) -> _DeltaSegment\n\nFor the outline given in `coords`, with contour endpoints given\nin sorted increasing order in `ends`, interpolate any missing\ndelta values in delta vector `deltas`.\n\nReturns fully filled-out delta vector.");
|
|
4489
4518
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_3iup_delta = {"iup_delta", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_3iup_delta, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_2iup_delta};
|
|
4490
4519
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_3iup_delta(PyObject *__pyx_self,
|
|
4491
4520
|
#if CYTHON_METH_FASTCALL
|
|
@@ -4631,7 +4660,7 @@ static PyObject *__pyx_pf_9fontTools_6varLib_3iup_2iup_delta(CYTHON_UNUSED PyObj
|
|
|
4631
4660
|
__Pyx_GOTREF(__pyx_t_3);
|
|
4632
4661
|
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ends); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 152, __pyx_L1_error)
|
|
4633
4662
|
if (__pyx_t_4) {
|
|
4634
|
-
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_ends, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 152, __pyx_L1_error)
|
|
4663
|
+
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_ends, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 152, __pyx_L1_error)
|
|
4635
4664
|
__Pyx_GOTREF(__pyx_t_6);
|
|
4636
4665
|
__pyx_t_7 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 152, __pyx_L1_error)
|
|
4637
4666
|
__Pyx_GOTREF(__pyx_t_7);
|
|
@@ -5397,13 +5426,13 @@ static CYTHON_INLINE int __pyx_f_9fontTools_6varLib_3iup_can_iup_in_between(PyOb
|
|
|
5397
5426
|
*/
|
|
5398
5427
|
__pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_coords, (__pyx_v_i + 1), __pyx_v_j, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5399
5428
|
__Pyx_GOTREF(__pyx_t_2);
|
|
5400
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_coords, __pyx_v_i, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5429
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_coords, __pyx_v_i, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5401
5430
|
__Pyx_GOTREF(__pyx_t_3);
|
|
5402
|
-
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_deltas, __pyx_v_i, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5431
|
+
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_deltas, __pyx_v_i, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5403
5432
|
__Pyx_GOTREF(__pyx_t_4);
|
|
5404
|
-
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_coords, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5433
|
+
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_coords, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5405
5434
|
__Pyx_GOTREF(__pyx_t_5);
|
|
5406
|
-
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_deltas, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5435
|
+
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_deltas, __pyx_v_j, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5407
5436
|
__Pyx_GOTREF(__pyx_t_6);
|
|
5408
5437
|
__pyx_t_7 = __pyx_f_9fontTools_6varLib_3iup_iup_segment(__pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 193, __pyx_L1_error)
|
|
5409
5438
|
__Pyx_GOTREF(__pyx_t_7);
|
|
@@ -5508,7 +5537,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
5508
5537
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
5509
5538
|
#endif
|
|
5510
5539
|
); /*proto*/
|
|
5511
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_4_iup_contour_bound_forced_set, "_iup_contour_bound_forced_set(deltas: _DeltaSegment, coords: _PointSegment, tolerance: Real = 0) -> set\nThe forced set is a conservative set of points on the contour that must be encoded\nexplicitly (ie. cannot be interpolated). Calculating this set allows for significantly\nspeeding up the dynamic-programming, as well as resolve circularity in DP.\n\nThe set is precise; that is, if an index is in the returned set, then there is no way\nthat IUP can generate delta for that point, given `coords` and `deltas`.");
|
|
5540
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_4_iup_contour_bound_forced_set, "_iup_contour_bound_forced_set(deltas: _DeltaSegment, coords: _PointSegment, tolerance: Real = 0) -> set\n\nThe forced set is a conservative set of points on the contour that must be encoded\nexplicitly (ie. cannot be interpolated). Calculating this set allows for significantly\nspeeding up the dynamic-programming, as well as resolve circularity in DP.\n\nThe set is precise; that is, if an index is in the returned set, then there is no way\nthat IUP can generate delta for that point, given `coords` and `deltas`.");
|
|
5512
5541
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_5_iup_contour_bound_forced_set = {"_iup_contour_bound_forced_set", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_5_iup_contour_bound_forced_set, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_4_iup_contour_bound_forced_set};
|
|
5513
5542
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_5_iup_contour_bound_forced_set(PyObject *__pyx_self,
|
|
5514
5543
|
#if CYTHON_METH_FASTCALL
|
|
@@ -6609,7 +6638,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
6609
6638
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
6610
6639
|
#endif
|
|
6611
6640
|
); /*proto*/
|
|
6612
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_6_iup_contour_optimize_dp, "_iup_contour_optimize_dp(deltas: _DeltaSegment, coords: _PointSegment, set forced=set(), double tolerance: Real = 0, lookback: Integral = None)\nStraightforward Dynamic-Programming. For each index i, find least-costly encoding of\npoints 0 to i where i is explicitly encoded. We find this by considering all previous\nexplicit points j and check whether interpolation can fill points between j and i.\n\nNote that solution always encodes last point explicitly. Higher-level is responsible\nfor removing that restriction.\n\nAs major speedup, we stop looking further whenever we see a \"forced\" point.");
|
|
6641
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_6_iup_contour_optimize_dp, "_iup_contour_optimize_dp(deltas: _DeltaSegment, coords: _PointSegment, set forced=set(), double tolerance: Real = 0, lookback: Integral = None)\n\nStraightforward Dynamic-Programming. For each index i, find least-costly encoding of\npoints 0 to i where i is explicitly encoded. We find this by considering all previous\nexplicit points j and check whether interpolation can fill points between j and i.\n\nNote that solution always encodes last point explicitly. Higher-level is responsible\nfor removing that restriction.\n\nAs major speedup, we stop looking further whenever we see a \"forced\" point.");
|
|
6613
6642
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_7_iup_contour_optimize_dp = {"_iup_contour_optimize_dp", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_7_iup_contour_optimize_dp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_6_iup_contour_optimize_dp};
|
|
6614
6643
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_7_iup_contour_optimize_dp(PyObject *__pyx_self,
|
|
6615
6644
|
#if CYTHON_METH_FASTCALL
|
|
@@ -7202,7 +7231,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
7202
7231
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
7203
7232
|
#endif
|
|
7204
7233
|
); /*proto*/
|
|
7205
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_8_rot_list, "_rot_list(list l: list, int k: int)\nRotate list by k items forward. Ie. item at position 0 will be\nat position k in returned list. Negative k is allowed.");
|
|
7234
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_8_rot_list, "_rot_list(list l: list, int k: int)\n\nRotate list by k items forward. Ie. item at position 0 will be\nat position k in returned list. Negative k is allowed.");
|
|
7206
7235
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_9_rot_list = {"_rot_list", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_9_rot_list, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_8_rot_list};
|
|
7207
7236
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_9_rot_list(PyObject *__pyx_self,
|
|
7208
7237
|
#if CYTHON_METH_FASTCALL
|
|
@@ -7707,7 +7736,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
7707
7736
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
7708
7737
|
#endif
|
|
7709
7738
|
); /*proto*/
|
|
7710
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_12iup_contour_optimize, "iup_contour_optimize(deltas: _DeltaSegment, coords: _PointSegment, tolerance: Real = 0.0) -> _DeltaOrNoneSegment\nFor contour with coordinates `coords`, optimize a set of delta\nvalues `deltas` within error `tolerance`.\n\nReturns delta vector that has most number of None items instead of\nthe input delta.");
|
|
7739
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_12iup_contour_optimize, "iup_contour_optimize(deltas: _DeltaSegment, coords: _PointSegment, tolerance: Real = 0.0) -> _DeltaOrNoneSegment\n\nFor contour with coordinates `coords`, optimize a set of delta\nvalues `deltas` within error `tolerance`.\n\nReturns delta vector that has most number of None items instead of\nthe input delta.");
|
|
7711
7740
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_13iup_contour_optimize = {"iup_contour_optimize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_13iup_contour_optimize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_12iup_contour_optimize};
|
|
7712
7741
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_13iup_contour_optimize(PyObject *__pyx_self,
|
|
7713
7742
|
#if CYTHON_METH_FASTCALL
|
|
@@ -8307,7 +8336,7 @@ static PyObject *__pyx_pf_9fontTools_6varLib_3iup_12iup_contour_optimize(CYTHON_
|
|
|
8307
8336
|
* if all(d0 == d for d in deltas):
|
|
8308
8337
|
* return [d0] + [None] * (n - 1)
|
|
8309
8338
|
*/
|
|
8310
|
-
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_deltas, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error)
|
|
8339
|
+
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_deltas, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error)
|
|
8311
8340
|
__Pyx_GOTREF(__pyx_t_3);
|
|
8312
8341
|
__Pyx_GIVEREF(__pyx_t_3);
|
|
8313
8342
|
__pyx_cur_scope->__pyx_v_d0 = __pyx_t_3;
|
|
@@ -9455,7 +9484,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
|
|
|
9455
9484
|
PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
9456
9485
|
#endif
|
|
9457
9486
|
); /*proto*/
|
|
9458
|
-
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_14iup_delta_optimize, "iup_delta_optimize(deltas: _DeltaSegment, coords: _PointSegment, ends: _Endpoints, tolerance: Real = 0.0) -> _DeltaOrNoneSegment\nFor the outline given in `coords`, with contour endpoints given\nin sorted increasing order in `ends`, optimize a set of delta\nvalues `deltas` within error `tolerance`.\n\nReturns delta vector that has most number of None items instead of\nthe input delta.");
|
|
9487
|
+
PyDoc_STRVAR(__pyx_doc_9fontTools_6varLib_3iup_14iup_delta_optimize, "iup_delta_optimize(deltas: _DeltaSegment, coords: _PointSegment, ends: _Endpoints, tolerance: Real = 0.0) -> _DeltaOrNoneSegment\n\nFor the outline given in `coords`, with contour endpoints given\nin sorted increasing order in `ends`, optimize a set of delta\nvalues `deltas` within error `tolerance`.\n\nReturns delta vector that has most number of None items instead of\nthe input delta.");
|
|
9459
9488
|
static PyMethodDef __pyx_mdef_9fontTools_6varLib_3iup_15iup_delta_optimize = {"iup_delta_optimize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9fontTools_6varLib_3iup_15iup_delta_optimize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9fontTools_6varLib_3iup_14iup_delta_optimize};
|
|
9460
9489
|
static PyObject *__pyx_pw_9fontTools_6varLib_3iup_15iup_delta_optimize(PyObject *__pyx_self,
|
|
9461
9490
|
#if CYTHON_METH_FASTCALL
|
|
@@ -9618,7 +9647,7 @@ static PyObject *__pyx_pf_9fontTools_6varLib_3iup_14iup_delta_optimize(CYTHON_UN
|
|
|
9618
9647
|
__Pyx_GOTREF(__pyx_t_3);
|
|
9619
9648
|
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ends); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 477, __pyx_L1_error)
|
|
9620
9649
|
if (__pyx_t_4) {
|
|
9621
|
-
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_ends, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 477, __pyx_L1_error)
|
|
9650
|
+
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_ends, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 477, __pyx_L1_error)
|
|
9622
9651
|
__Pyx_GOTREF(__pyx_t_6);
|
|
9623
9652
|
__pyx_t_7 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 477, __pyx_L1_error)
|
|
9624
9653
|
__Pyx_GOTREF(__pyx_t_7);
|
|
@@ -11333,6 +11362,13 @@ __Pyx_RefNannySetupContext("PyInit_iup", 0);
|
|
|
11333
11362
|
__pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11334
11363
|
__pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11335
11364
|
__pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11365
|
+
/*--- Initialize various global constants etc. ---*/
|
|
11366
|
+
if (__Pyx_InitConstants(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11367
|
+
stringtab_initialized = 1;
|
|
11368
|
+
if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11369
|
+
#if 0 || defined(__Pyx_CyFunction_USED) || defined(__Pyx_FusedFunction_USED) || defined(__Pyx_Coroutine_USED) || defined(__Pyx_Generator_USED) || defined(__Pyx_AsyncGen_USED)
|
|
11370
|
+
if (__pyx_CommonTypesMetaclass_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11371
|
+
#endif
|
|
11336
11372
|
#ifdef __Pyx_CyFunction_USED
|
|
11337
11373
|
if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11338
11374
|
#endif
|
|
@@ -11349,10 +11385,6 @@ __Pyx_RefNannySetupContext("PyInit_iup", 0);
|
|
|
11349
11385
|
if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11350
11386
|
#endif
|
|
11351
11387
|
/*--- Library function declarations ---*/
|
|
11352
|
-
/*--- Initialize various global constants etc. ---*/
|
|
11353
|
-
if (__Pyx_InitConstants(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11354
|
-
stringtab_initialized = 1;
|
|
11355
|
-
if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11356
11388
|
if (__pyx_module_is_main_fontTools__varLib__iup) {
|
|
11357
11389
|
if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name, __pyx_mstate_global->__pyx_n_u_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
11358
11390
|
}
|
|
@@ -11953,6 +11985,7 @@ static const __Pyx_StringTabEntry __pyx_string_tab[] = {
|
|
|
11953
11985
|
{__pyx_k_s, sizeof(__pyx_k_s), 0, 1, 1}, /* PyObject cname: __pyx_n_u_s */
|
|
11954
11986
|
{__pyx_k_send, sizeof(__pyx_k_send), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send */
|
|
11955
11987
|
{__pyx_k_set, sizeof(__pyx_k_set), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set */
|
|
11988
|
+
{__pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_name */
|
|
11956
11989
|
{__pyx_k_solution, sizeof(__pyx_k_solution), 0, 1, 1}, /* PyObject cname: __pyx_n_u_solution */
|
|
11957
11990
|
{__pyx_k_start, sizeof(__pyx_k_start), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start */
|
|
11958
11991
|
{__pyx_k_test, sizeof(__pyx_k_test), 0, 1, 1}, /* PyObject cname: __pyx_n_u_test */
|
|
@@ -14808,24 +14841,83 @@ static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visi
|
|
|
14808
14841
|
}
|
|
14809
14842
|
#endif
|
|
14810
14843
|
|
|
14844
|
+
/* LimitedApiGetTypeDict */
|
|
14845
|
+
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
14846
|
+
static Py_ssize_t __Pyx_GetTypeDictOffset(void) {
|
|
14847
|
+
PyObject *tp_dictoffset_o;
|
|
14848
|
+
Py_ssize_t tp_dictoffset;
|
|
14849
|
+
tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), "__dictoffset__");
|
|
14850
|
+
if (unlikely(!tp_dictoffset_o)) return -1;
|
|
14851
|
+
tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
|
|
14852
|
+
Py_DECREF(tp_dictoffset_o);
|
|
14853
|
+
if (unlikely(tp_dictoffset == 0)) {
|
|
14854
|
+
PyErr_SetString(
|
|
14855
|
+
PyExc_TypeError,
|
|
14856
|
+
"'type' doesn't have a dictoffset");
|
|
14857
|
+
return -1;
|
|
14858
|
+
} else if (unlikely(tp_dictoffset < 0)) {
|
|
14859
|
+
PyErr_SetString(
|
|
14860
|
+
PyExc_TypeError,
|
|
14861
|
+
"'type' has an unexpected negative dictoffset. "
|
|
14862
|
+
"Please report this as Cython bug");
|
|
14863
|
+
return -1;
|
|
14864
|
+
}
|
|
14865
|
+
return tp_dictoffset;
|
|
14866
|
+
}
|
|
14867
|
+
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) {
|
|
14868
|
+
static Py_ssize_t tp_dictoffset = 0;
|
|
14869
|
+
if (unlikely(tp_dictoffset == 0)) {
|
|
14870
|
+
tp_dictoffset = __Pyx_GetTypeDictOffset();
|
|
14871
|
+
if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
|
|
14872
|
+
tp_dictoffset = 0; // try again next time?
|
|
14873
|
+
return NULL;
|
|
14874
|
+
}
|
|
14875
|
+
}
|
|
14876
|
+
return *(PyObject**)((char*)tp + tp_dictoffset);
|
|
14877
|
+
}
|
|
14878
|
+
#endif
|
|
14879
|
+
|
|
14880
|
+
/* SetItemOnTypeDict */
|
|
14881
|
+
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
|
|
14882
|
+
int result;
|
|
14883
|
+
PyObject *tp_dict;
|
|
14884
|
+
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
14885
|
+
tp_dict = __Pyx_GetTypeDict(tp);
|
|
14886
|
+
if (unlikely(!tp_dict)) return -1;
|
|
14887
|
+
#else
|
|
14888
|
+
tp_dict = tp->tp_dict;
|
|
14889
|
+
#endif
|
|
14890
|
+
result = PyDict_SetItem(tp_dict, k, v);
|
|
14891
|
+
if (likely(!result)) {
|
|
14892
|
+
PyType_Modified(tp);
|
|
14893
|
+
if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
|
|
14894
|
+
PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name, (PyObject *) tp, k, NULL);
|
|
14895
|
+
if (!setNameResult) return -1;
|
|
14896
|
+
Py_DECREF(setNameResult);
|
|
14897
|
+
}
|
|
14898
|
+
}
|
|
14899
|
+
return result;
|
|
14900
|
+
}
|
|
14901
|
+
|
|
14811
14902
|
/* FixUpExtensionType */
|
|
14812
14903
|
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
|
|
14813
|
-
#if
|
|
14904
|
+
#if __PYX_LIMITED_VERSION_HEX > 0x030900B1
|
|
14814
14905
|
CYTHON_UNUSED_VAR(spec);
|
|
14815
14906
|
CYTHON_UNUSED_VAR(type);
|
|
14907
|
+
CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
|
|
14816
14908
|
#else
|
|
14817
14909
|
const PyType_Slot *slot = spec->slots;
|
|
14910
|
+
int changed = 0;
|
|
14911
|
+
#if !CYTHON_COMPILING_IN_LIMITED_API
|
|
14818
14912
|
while (slot && slot->slot && slot->slot != Py_tp_members)
|
|
14819
14913
|
slot++;
|
|
14820
14914
|
if (slot && slot->slot == Py_tp_members) {
|
|
14821
|
-
|
|
14822
|
-
#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
|
|
14915
|
+
#if !CYTHON_COMPILING_IN_CPYTHON
|
|
14823
14916
|
const
|
|
14824
|
-
#endif
|
|
14917
|
+
#endif // !CYTHON_COMPILING_IN_CPYTHON)
|
|
14825
14918
|
PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
|
|
14826
14919
|
while (memb && memb->name) {
|
|
14827
14920
|
if (memb->name[0] == '_' && memb->name[1] == '_') {
|
|
14828
|
-
#if PY_VERSION_HEX < 0x030900b1
|
|
14829
14921
|
if (strcmp(memb->name, "__weaklistoffset__") == 0) {
|
|
14830
14922
|
assert(memb->type == T_PYSSIZET);
|
|
14831
14923
|
assert(memb->flags == READONLY);
|
|
@@ -14849,11 +14941,7 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
|
|
|
14849
14941
|
#endif
|
|
14850
14942
|
changed = 1;
|
|
14851
14943
|
}
|
|
14852
|
-
#endif
|
|
14853
|
-
#else
|
|
14854
|
-
if ((0));
|
|
14855
|
-
#endif
|
|
14856
|
-
#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
|
|
14944
|
+
#endif // CYTHON_METH_FASTCALL
|
|
14857
14945
|
else if (strcmp(memb->name, "__module__") == 0) {
|
|
14858
14946
|
PyObject *descr;
|
|
14859
14947
|
assert(memb->type == T_OBJECT);
|
|
@@ -14861,21 +14949,52 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
|
|
|
14861
14949
|
descr = PyDescr_NewMember(type, memb);
|
|
14862
14950
|
if (unlikely(!descr))
|
|
14863
14951
|
return -1;
|
|
14864
|
-
|
|
14865
|
-
|
|
14952
|
+
int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
|
|
14953
|
+
Py_DECREF(descr);
|
|
14954
|
+
if (unlikely(set_item_result < 0)) {
|
|
14866
14955
|
return -1;
|
|
14867
14956
|
}
|
|
14868
|
-
Py_DECREF(descr);
|
|
14869
14957
|
changed = 1;
|
|
14870
14958
|
}
|
|
14871
|
-
#endif
|
|
14872
14959
|
}
|
|
14873
14960
|
memb++;
|
|
14874
14961
|
}
|
|
14875
|
-
if (changed)
|
|
14876
|
-
PyType_Modified(type);
|
|
14877
14962
|
}
|
|
14878
|
-
#endif
|
|
14963
|
+
#endif // !CYTHON_COMPILING_IN_LIMITED_API
|
|
14964
|
+
slot = spec->slots;
|
|
14965
|
+
while (slot && slot->slot && slot->slot != Py_tp_getset)
|
|
14966
|
+
slot++;
|
|
14967
|
+
if (slot && slot->slot == Py_tp_getset) {
|
|
14968
|
+
PyGetSetDef *getset = (PyGetSetDef*) slot->pfunc;
|
|
14969
|
+
while (getset && getset->name) {
|
|
14970
|
+
if (getset->name[0] == '_' && getset->name[1] == '_' && strcmp(getset->name, "__module__") == 0) {
|
|
14971
|
+
PyObject *descr = PyDescr_NewGetSet(type, getset);
|
|
14972
|
+
if (unlikely(!descr))
|
|
14973
|
+
return -1;
|
|
14974
|
+
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
14975
|
+
PyObject *pyname = PyUnicode_FromString(getset->name);
|
|
14976
|
+
if (unlikely(!pyname)) {
|
|
14977
|
+
Py_DECREF(descr);
|
|
14978
|
+
return -1;
|
|
14979
|
+
}
|
|
14980
|
+
int set_item_result = __Pyx_SetItemOnTypeDict(type, pyname, descr);
|
|
14981
|
+
Py_DECREF(pyname);
|
|
14982
|
+
#else
|
|
14983
|
+
CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
|
|
14984
|
+
int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
|
|
14985
|
+
#endif
|
|
14986
|
+
Py_DECREF(descr);
|
|
14987
|
+
if (unlikely(set_item_result < 0)) {
|
|
14988
|
+
return -1;
|
|
14989
|
+
}
|
|
14990
|
+
changed = 1;
|
|
14991
|
+
}
|
|
14992
|
+
++getset;
|
|
14993
|
+
}
|
|
14994
|
+
}
|
|
14995
|
+
if (changed)
|
|
14996
|
+
PyType_Modified(type);
|
|
14997
|
+
#endif // PY_VERSION_HEX > 0x030900B1
|
|
14879
14998
|
return 0;
|
|
14880
14999
|
}
|
|
14881
15000
|
|
|
@@ -15267,6 +15386,24 @@ static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *ke
|
|
|
15267
15386
|
}
|
|
15268
15387
|
|
|
15269
15388
|
/* FetchCommonType */
|
|
15389
|
+
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
|
|
15390
|
+
static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
|
|
15391
|
+
PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
|
|
15392
|
+
if (result && metaclass) {
|
|
15393
|
+
PyObject *old_tp = (PyObject*)Py_TYPE(result);
|
|
15394
|
+
Py_INCREF((PyObject*)metaclass);
|
|
15395
|
+
#if __PYX_LIMITED_VERSION_HEX >= 0x03090000
|
|
15396
|
+
Py_SET_TYPE(result, metaclass);
|
|
15397
|
+
#else
|
|
15398
|
+
result->ob_type = metaclass;
|
|
15399
|
+
#endif
|
|
15400
|
+
Py_DECREF(old_tp);
|
|
15401
|
+
}
|
|
15402
|
+
return result;
|
|
15403
|
+
}
|
|
15404
|
+
#else
|
|
15405
|
+
#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
|
|
15406
|
+
#endif
|
|
15270
15407
|
static int __Pyx_VerifyCachedType(PyObject *cached_type,
|
|
15271
15408
|
const char *name,
|
|
15272
15409
|
Py_ssize_t expected_basicsize) {
|
|
@@ -15276,6 +15413,9 @@ static int __Pyx_VerifyCachedType(PyObject *cached_type,
|
|
|
15276
15413
|
"Shared Cython type %.200s is not a type object", name);
|
|
15277
15414
|
return -1;
|
|
15278
15415
|
}
|
|
15416
|
+
if (expected_basicsize == 0) {
|
|
15417
|
+
return 0; // size is inherited, nothing useful to check
|
|
15418
|
+
}
|
|
15279
15419
|
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
15280
15420
|
PyObject *py_basicsize;
|
|
15281
15421
|
py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
|
|
@@ -15295,7 +15435,7 @@ static int __Pyx_VerifyCachedType(PyObject *cached_type,
|
|
|
15295
15435
|
}
|
|
15296
15436
|
return 0;
|
|
15297
15437
|
}
|
|
15298
|
-
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
|
|
15438
|
+
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
|
|
15299
15439
|
PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
|
|
15300
15440
|
int get_item_ref_result;
|
|
15301
15441
|
const char* object_name = strrchr(spec->name, '.');
|
|
@@ -15319,7 +15459,7 @@ static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec
|
|
|
15319
15459
|
goto bad;
|
|
15320
15460
|
}
|
|
15321
15461
|
CYTHON_UNUSED_VAR(module);
|
|
15322
|
-
cached_type =
|
|
15462
|
+
cached_type = __Pyx_PyType_FromMetaclass(metaclass, abi_module, spec, bases);
|
|
15323
15463
|
if (unlikely(!cached_type)) goto bad;
|
|
15324
15464
|
if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
|
|
15325
15465
|
new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type, 1);
|
|
@@ -15348,6 +15488,42 @@ bad:
|
|
|
15348
15488
|
goto done;
|
|
15349
15489
|
}
|
|
15350
15490
|
|
|
15491
|
+
/* CommonTypesMetaclass */
|
|
15492
|
+
PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
|
|
15493
|
+
return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
|
|
15494
|
+
}
|
|
15495
|
+
static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
|
|
15496
|
+
{"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
|
|
15497
|
+
{0, 0, 0, 0, 0}
|
|
15498
|
+
};
|
|
15499
|
+
static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
|
|
15500
|
+
{Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
|
|
15501
|
+
{0, 0}
|
|
15502
|
+
};
|
|
15503
|
+
static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
|
|
15504
|
+
__PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
|
|
15505
|
+
0,
|
|
15506
|
+
0,
|
|
15507
|
+
#if PY_VERSION_HEX >= 0x030A0000
|
|
15508
|
+
Py_TPFLAGS_IMMUTABLETYPE |
|
|
15509
|
+
Py_TPFLAGS_DISALLOW_INSTANTIATION |
|
|
15510
|
+
#endif
|
|
15511
|
+
Py_TPFLAGS_DEFAULT,
|
|
15512
|
+
__pyx_CommonTypesMetaclass_slots
|
|
15513
|
+
};
|
|
15514
|
+
static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
|
|
15515
|
+
__pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
|
|
15516
|
+
PyObject *bases = PyTuple_Pack(1, &PyType_Type);
|
|
15517
|
+
if (unlikely(!bases)) {
|
|
15518
|
+
return -1;
|
|
15519
|
+
}
|
|
15520
|
+
mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
|
|
15521
|
+
if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
|
|
15522
|
+
return -1;
|
|
15523
|
+
}
|
|
15524
|
+
return 0;
|
|
15525
|
+
}
|
|
15526
|
+
|
|
15351
15527
|
/* PyMethodNew */
|
|
15352
15528
|
#if CYTHON_COMPILING_IN_LIMITED_API
|
|
15353
15529
|
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
|
|
@@ -16445,7 +16621,8 @@ static PyType_Spec __pyx_CyFunctionType_spec = {
|
|
|
16445
16621
|
};
|
|
16446
16622
|
static int __pyx_CyFunction_init(PyObject *module) {
|
|
16447
16623
|
__pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
|
|
16448
|
-
mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
|
|
16624
|
+
mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
|
|
16625
|
+
mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
|
|
16449
16626
|
if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
|
|
16450
16627
|
return -1;
|
|
16451
16628
|
}
|
|
@@ -18790,6 +18967,14 @@ static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethods
|
|
|
18790
18967
|
type->tp_as_async = __Pyx_SlotTpAsAsync(static_amsend_methods);
|
|
18791
18968
|
}
|
|
18792
18969
|
#endif
|
|
18970
|
+
static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg) {
|
|
18971
|
+
CYTHON_UNUSED_VAR(arg);
|
|
18972
|
+
__Pyx_TypeName self_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE((PyObject*)self));
|
|
18973
|
+
PyErr_Format(PyExc_TypeError, "cannot pickle '" __Pyx_FMT_TYPENAME "' object",
|
|
18974
|
+
self_type_name);
|
|
18975
|
+
__Pyx_DECREF_TypeName(self_type_name);
|
|
18976
|
+
return NULL;
|
|
18977
|
+
}
|
|
18793
18978
|
|
|
18794
18979
|
/* Generator */
|
|
18795
18980
|
static PyMethodDef __pyx_Generator_methods[] = {
|
|
@@ -18799,6 +18984,8 @@ static PyMethodDef __pyx_Generator_methods[] = {
|
|
|
18799
18984
|
PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
|
|
18800
18985
|
{"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
|
|
18801
18986
|
PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
|
|
18987
|
+
{"__reduce_ex__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_O, 0},
|
|
18988
|
+
{"__reduce__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_NOARGS, 0},
|
|
18802
18989
|
{0, 0, 0, 0}
|
|
18803
18990
|
};
|
|
18804
18991
|
static PyMemberDef __pyx_Generator_memberlist[] = {
|
|
@@ -18851,7 +19038,8 @@ static __Pyx_PyAsyncMethodsStruct __pyx_Generator_as_async;
|
|
|
18851
19038
|
#endif
|
|
18852
19039
|
static int __pyx_Generator_init(PyObject *module) {
|
|
18853
19040
|
__pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
|
|
18854
|
-
mstate->__pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(
|
|
19041
|
+
mstate->__pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(
|
|
19042
|
+
mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_GeneratorType_spec, NULL);
|
|
18855
19043
|
if (unlikely(!mstate->__pyx_GeneratorType)) {
|
|
18856
19044
|
return -1;
|
|
18857
19045
|
}
|