mirror of
https://github.com/azaion/detections.git
synced 2026-04-22 21:26:32 +00:00
fix some cython code
This commit is contained in:
+341
-459
@@ -1543,7 +1543,7 @@ struct __pyx_obj_13constants_inf_AnnotationClass {
|
||||
struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus {
|
||||
PyObject_HEAD
|
||||
struct __pyx_vtabstruct_22ai_availability_status_AIAvailabilityStatus *__pyx_vtab;
|
||||
enum __pyx_t_22ai_availability_status_AIAvailabilityEnum status;
|
||||
int status;
|
||||
PyObject *error_message;
|
||||
PyObject *_lock;
|
||||
};
|
||||
@@ -1553,7 +1553,7 @@ struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus {
|
||||
|
||||
struct __pyx_vtabstruct_22ai_availability_status_AIAvailabilityStatus {
|
||||
PyObject *(*serialize)(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *);
|
||||
PyObject *(*set_status)(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *, enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args);
|
||||
PyObject *(*set_status)(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *, int, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args);
|
||||
};
|
||||
static struct __pyx_vtabstruct_22ai_availability_status_AIAvailabilityStatus *__pyx_vtabptr_22ai_availability_status_AIAvailabilityStatus;
|
||||
/* #### Code section: utility_code_proto ### */
|
||||
@@ -2258,10 +2258,13 @@ static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, P
|
||||
#endif
|
||||
|
||||
/* CIntToPy.proto */
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum value);
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);
|
||||
|
||||
/* CIntFromPy.proto */
|
||||
static CYTHON_INLINE enum __pyx_t_22ai_availability_status_AIAvailabilityEnum __Pyx_PyLong_As_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(PyObject *);
|
||||
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);
|
||||
|
||||
/* CIntToPy.proto */
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum value);
|
||||
|
||||
/* CIntFromPy.proto */
|
||||
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);
|
||||
@@ -2286,9 +2289,6 @@ typedef const char *__Pyx_TypeName;
|
||||
#define __Pyx_DECREF_TypeName(obj)
|
||||
#endif
|
||||
|
||||
/* CIntFromPy.proto */
|
||||
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);
|
||||
|
||||
/* FastTypeChecks.proto */
|
||||
#if CYTHON_COMPILING_IN_CPYTHON
|
||||
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
|
||||
@@ -2373,7 +2373,7 @@ static int __Pyx_State_RemoveModule(void*);
|
||||
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
|
||||
|
||||
static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_serialize(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *__pyx_v_self); /* proto*/
|
||||
static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_status(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *__pyx_v_self, enum __pyx_t_22ai_availability_status_AIAvailabilityEnum __pyx_v_status, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args); /* proto*/
|
||||
static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_status(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *__pyx_v_self, int __pyx_v_status, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args); /* proto*/
|
||||
|
||||
/* Module declarations from "constants_inf" */
|
||||
static PyObject **__pyx_vp_13constants_inf_CONFIG_FILE = 0;
|
||||
@@ -2861,7 +2861,7 @@ static PyObject *__pyx_pf_22ai_availability_status_20AIAvailabilityStatus_2__str
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L4_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(__pyx_v_self->status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L4_error)
|
||||
__pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_self->status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L4_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__pyx_t_3 = 1;
|
||||
#if CYTHON_UNPACK_METHODS
|
||||
@@ -3057,7 +3057,7 @@ static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_seriali
|
||||
|
||||
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 34, __pyx_L4_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__pyx_t_6 = __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(__pyx_v_self->status); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 34, __pyx_L4_error)
|
||||
__pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_self->status); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 34, __pyx_L4_error)
|
||||
__Pyx_GOTREF(__pyx_t_6);
|
||||
if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_s, __pyx_t_6) < 0) __PYX_ERR(0, 34, __pyx_L4_error)
|
||||
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
|
||||
@@ -3183,7 +3183,7 @@ static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_seriali
|
||||
}
|
||||
|
||||
|
||||
static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_status(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *__pyx_v_self, enum __pyx_t_22ai_availability_status_AIAvailabilityEnum __pyx_v_status, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args) {
|
||||
static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_status(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *__pyx_v_self, int __pyx_v_status, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args) {
|
||||
PyObject *__pyx_v_error_message = ((PyObject*)Py_None);
|
||||
PyObject *__pyx_v_log_message = NULL;
|
||||
PyObject *__pyx_v_status_text = NULL;
|
||||
@@ -3247,7 +3247,7 @@ static PyObject *__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_sta
|
||||
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 46, __pyx_L4_error)
|
||||
__Pyx_GOTREF(__pyx_t_5);
|
||||
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
||||
__pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(__pyx_v_self->status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L4_error)
|
||||
__pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_self->status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L4_error)
|
||||
__Pyx_GOTREF(__pyx_t_4);
|
||||
__pyx_t_3 = 1;
|
||||
#if CYTHON_UNPACK_METHODS
|
||||
@@ -3468,7 +3468,7 @@ static PyObject *__pyx_pf_22ai_availability_status_20AIAvailabilityStatus_4__red
|
||||
int __pyx_clineno = 0;
|
||||
__Pyx_RefNannySetupContext("__reduce_cython__", 0);
|
||||
|
||||
__pyx_t_1 = __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(__pyx_v_self->status); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
|
||||
__pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->status); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_1);
|
||||
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
|
||||
__Pyx_GOTREF(__pyx_t_2);
|
||||
@@ -3909,7 +3909,7 @@ static PyObject *__pyx_f_22ai_availability_status___pyx_unpickle_AIAvailabilityS
|
||||
PyObject *__pyx_r = NULL;
|
||||
__Pyx_RefNannyDeclarations
|
||||
PyObject *__pyx_t_1 = NULL;
|
||||
enum __pyx_t_22ai_availability_status_AIAvailabilityEnum __pyx_t_2;
|
||||
int __pyx_t_2;
|
||||
int __pyx_t_3;
|
||||
Py_ssize_t __pyx_t_4;
|
||||
int __pyx_t_5;
|
||||
@@ -3948,7 +3948,7 @@ static PyObject *__pyx_f_22ai_availability_status___pyx_unpickle_AIAvailabilityS
|
||||
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
|
||||
__PYX_ERR(1, 12, __pyx_L1_error)
|
||||
}
|
||||
__pyx_t_2 = ((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)__Pyx_PyLong_As_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2))); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
|
||||
__pyx_t_2 = __Pyx_PyLong_As_int(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
|
||||
__pyx_v___pyx_result->status = __pyx_t_2;
|
||||
|
||||
if (unlikely(__pyx_v___pyx_state == Py_None)) {
|
||||
@@ -4229,7 +4229,7 @@ static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
|
||||
/*--- Type init code ---*/
|
||||
__pyx_vtabptr_22ai_availability_status_AIAvailabilityStatus = &__pyx_vtable_22ai_availability_status_AIAvailabilityStatus;
|
||||
__pyx_vtable_22ai_availability_status_AIAvailabilityStatus.serialize = (PyObject *(*)(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *))__pyx_f_22ai_availability_status_20AIAvailabilityStatus_serialize;
|
||||
__pyx_vtable_22ai_availability_status_AIAvailabilityStatus.set_status = (PyObject *(*)(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *, enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args))__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_status;
|
||||
__pyx_vtable_22ai_availability_status_AIAvailabilityStatus.set_status = (PyObject *(*)(struct __pyx_obj_22ai_availability_status_AIAvailabilityStatus *, int, struct __pyx_opt_args_22ai_availability_status_20AIAvailabilityStatus_set_status *__pyx_optional_args))__pyx_f_22ai_availability_status_20AIAvailabilityStatus_set_status;
|
||||
#if CYTHON_USE_TYPE_SPECS
|
||||
__pyx_mstate->__pyx_ptype_22ai_availability_status_AIAvailabilityStatus = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_22ai_availability_status_AIAvailabilityStatus_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_22ai_availability_status_AIAvailabilityStatus)) __PYX_ERR(0, 15, __pyx_L1_error)
|
||||
if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_22ai_availability_status_AIAvailabilityStatus_spec, __pyx_mstate->__pyx_ptype_22ai_availability_status_AIAvailabilityStatus) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
|
||||
@@ -9419,6 +9419,331 @@ CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyO
|
||||
}
|
||||
#endif
|
||||
|
||||
/* CIntToPy */
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wconversion"
|
||||
#endif
|
||||
const int neg_one = (int) -1, const_zero = (int) 0;
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
const int is_unsigned = neg_one > const_zero;
|
||||
if (is_unsigned) {
|
||||
if (sizeof(int) < sizeof(long)) {
|
||||
return PyLong_FromLong((long) value);
|
||||
} else if (sizeof(int) <= sizeof(unsigned long)) {
|
||||
return PyLong_FromUnsignedLong((unsigned long) value);
|
||||
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
|
||||
} else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
|
||||
return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
if (sizeof(int) <= sizeof(long)) {
|
||||
return PyLong_FromLong((long) value);
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
|
||||
return PyLong_FromLongLong((PY_LONG_LONG) value);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
{
|
||||
unsigned char *bytes = (unsigned char *)&value;
|
||||
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
|
||||
if (is_unsigned) {
|
||||
return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
|
||||
} else {
|
||||
return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
|
||||
}
|
||||
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
|
||||
int one = 1; int little = (int)*(unsigned char *)&one;
|
||||
return _PyLong_FromByteArray(bytes, sizeof(int),
|
||||
little, !is_unsigned);
|
||||
#else
|
||||
int one = 1; int little = (int)*(unsigned char *)&one;
|
||||
PyObject *from_bytes, *result = NULL, *kwds = NULL;
|
||||
PyObject *py_bytes = NULL, *order_str = NULL;
|
||||
from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
|
||||
if (!from_bytes) return NULL;
|
||||
py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
|
||||
if (!py_bytes) goto limited_bad;
|
||||
order_str = PyUnicode_FromString(little ? "little" : "big");
|
||||
if (!order_str) goto limited_bad;
|
||||
{
|
||||
PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
|
||||
if (!is_unsigned) {
|
||||
kwds = __Pyx_MakeVectorcallBuilderKwds(1);
|
||||
if (!kwds) goto limited_bad;
|
||||
if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
|
||||
}
|
||||
result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
|
||||
}
|
||||
limited_bad:
|
||||
Py_XDECREF(kwds);
|
||||
Py_XDECREF(order_str);
|
||||
Py_XDECREF(py_bytes);
|
||||
Py_XDECREF(from_bytes);
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/* CIntFromPy */
|
||||
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wconversion"
|
||||
#endif
|
||||
const int neg_one = (int) -1, const_zero = (int) 0;
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
const int is_unsigned = neg_one > const_zero;
|
||||
if (unlikely(!PyLong_Check(x))) {
|
||||
int val;
|
||||
PyObject *tmp = __Pyx_PyNumber_Long(x);
|
||||
if (!tmp) return (int) -1;
|
||||
val = __Pyx_PyLong_As_int(tmp);
|
||||
Py_DECREF(tmp);
|
||||
return val;
|
||||
}
|
||||
if (is_unsigned) {
|
||||
#if CYTHON_USE_PYLONG_INTERNALS
|
||||
if (unlikely(__Pyx_PyLong_IsNeg(x))) {
|
||||
goto raise_neg_overflow;
|
||||
} else if (__Pyx_PyLong_IsCompact(x)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
|
||||
} else {
|
||||
const digit* digits = __Pyx_PyLong_Digits(x);
|
||||
assert(__Pyx_PyLong_DigitCount(x) > 1);
|
||||
switch (__Pyx_PyLong_DigitCount(x)) {
|
||||
case 2:
|
||||
if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
|
||||
return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
|
||||
return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
|
||||
return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
|
||||
if (unlikely(Py_SIZE(x) < 0)) {
|
||||
goto raise_neg_overflow;
|
||||
}
|
||||
#else
|
||||
{
|
||||
int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
|
||||
if (unlikely(result < 0))
|
||||
return (int) -1;
|
||||
if (unlikely(result == 1))
|
||||
goto raise_neg_overflow;
|
||||
}
|
||||
#endif
|
||||
if ((sizeof(int) <= sizeof(unsigned long))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
#if CYTHON_USE_PYLONG_INTERNALS
|
||||
if (__Pyx_PyLong_IsCompact(x)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
|
||||
} else {
|
||||
const digit* digits = __Pyx_PyLong_Digits(x);
|
||||
assert(__Pyx_PyLong_DigitCount(x) > 1);
|
||||
switch (__Pyx_PyLong_SignedDigitCount(x)) {
|
||||
case -2:
|
||||
if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
||||
return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
||||
return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -3:
|
||||
if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
||||
return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
||||
return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -4:
|
||||
if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
|
||||
return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
|
||||
return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if ((sizeof(int) <= sizeof(long))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
|
||||
#endif
|
||||
}
|
||||
}
|
||||
{
|
||||
int val;
|
||||
int ret = -1;
|
||||
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
|
||||
Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
|
||||
x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
|
||||
if (unlikely(bytes_copied == -1)) {
|
||||
} else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
|
||||
goto raise_overflow;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
|
||||
int one = 1; int is_little = (int)*(unsigned char *)&one;
|
||||
unsigned char *bytes = (unsigned char *)&val;
|
||||
ret = _PyLong_AsByteArray((PyLongObject *)x,
|
||||
bytes, sizeof(val),
|
||||
is_little, !is_unsigned);
|
||||
#else
|
||||
PyObject *v;
|
||||
PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
|
||||
int bits, remaining_bits, is_negative = 0;
|
||||
int chunk_size = (sizeof(long) < 8) ? 30 : 62;
|
||||
if (likely(PyLong_CheckExact(x))) {
|
||||
v = __Pyx_NewRef(x);
|
||||
} else {
|
||||
v = PyNumber_Long(x);
|
||||
if (unlikely(!v)) return (int) -1;
|
||||
assert(PyLong_CheckExact(v));
|
||||
}
|
||||
{
|
||||
int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
|
||||
if (unlikely(result < 0)) {
|
||||
Py_DECREF(v);
|
||||
return (int) -1;
|
||||
}
|
||||
is_negative = result == 1;
|
||||
}
|
||||
if (is_unsigned && unlikely(is_negative)) {
|
||||
Py_DECREF(v);
|
||||
goto raise_neg_overflow;
|
||||
} else if (is_negative) {
|
||||
stepval = PyNumber_Invert(v);
|
||||
Py_DECREF(v);
|
||||
if (unlikely(!stepval))
|
||||
return (int) -1;
|
||||
} else {
|
||||
stepval = v;
|
||||
}
|
||||
v = NULL;
|
||||
val = (int) 0;
|
||||
mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
|
||||
shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
|
||||
for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
|
||||
PyObject *tmp, *digit;
|
||||
long idigit;
|
||||
digit = PyNumber_And(stepval, mask);
|
||||
if (unlikely(!digit)) goto done;
|
||||
idigit = PyLong_AsLong(digit);
|
||||
Py_DECREF(digit);
|
||||
if (unlikely(idigit < 0)) goto done;
|
||||
val |= ((int) idigit) << bits;
|
||||
tmp = PyNumber_Rshift(stepval, shift);
|
||||
if (unlikely(!tmp)) goto done;
|
||||
Py_DECREF(stepval); stepval = tmp;
|
||||
}
|
||||
Py_DECREF(shift); shift = NULL;
|
||||
Py_DECREF(mask); mask = NULL;
|
||||
{
|
||||
long idigit = PyLong_AsLong(stepval);
|
||||
if (unlikely(idigit < 0)) goto done;
|
||||
remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
|
||||
if (unlikely(idigit >= (1L << remaining_bits)))
|
||||
goto raise_overflow;
|
||||
val |= ((int) idigit) << bits;
|
||||
}
|
||||
if (!is_unsigned) {
|
||||
if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
|
||||
goto raise_overflow;
|
||||
if (is_negative)
|
||||
val = ~val;
|
||||
}
|
||||
ret = 0;
|
||||
done:
|
||||
Py_XDECREF(shift);
|
||||
Py_XDECREF(mask);
|
||||
Py_XDECREF(stepval);
|
||||
#endif
|
||||
if (unlikely(ret))
|
||||
return (int) -1;
|
||||
return val;
|
||||
}
|
||||
raise_overflow:
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"value too large to convert to int");
|
||||
return (int) -1;
|
||||
raise_neg_overflow:
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"can't convert negative value to int");
|
||||
return (int) -1;
|
||||
}
|
||||
|
||||
/* CIntToPy */
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum value) {
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
@@ -9490,195 +9815,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____pyx_t_22ai_availability
|
||||
}
|
||||
}
|
||||
|
||||
/* CIntFromPy */
|
||||
static CYTHON_INLINE enum __pyx_t_22ai_availability_status_AIAvailabilityEnum __Pyx_PyLong_As_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(PyObject *x) {
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wconversion"
|
||||
#endif
|
||||
const enum __pyx_t_22ai_availability_status_AIAvailabilityEnum neg_one = (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1, const_zero = (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) 0;
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
const int is_unsigned = neg_one > const_zero;
|
||||
if (unlikely(!PyLong_Check(x))) {
|
||||
enum __pyx_t_22ai_availability_status_AIAvailabilityEnum val;
|
||||
PyObject *tmp = __Pyx_PyNumber_Long(x);
|
||||
if (!tmp) return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1;
|
||||
val = __Pyx_PyLong_As_enum____pyx_t_22ai_availability_status_AIAvailabilityEnum(tmp);
|
||||
Py_DECREF(tmp);
|
||||
return val;
|
||||
}
|
||||
if (is_unsigned) {
|
||||
#if CYTHON_USE_PYLONG_INTERNALS
|
||||
if (unlikely(__Pyx_PyLong_IsNeg(x))) {
|
||||
goto raise_neg_overflow;
|
||||
} else if (__Pyx_PyLong_IsCompact(x)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
|
||||
} else {
|
||||
const digit* digits = __Pyx_PyLong_Digits(x);
|
||||
assert(__Pyx_PyLong_DigitCount(x) > 1);
|
||||
switch (__Pyx_PyLong_DigitCount(x)) {
|
||||
case 2:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) >= 2 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) (((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) >= 3 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) (((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) >= 4 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) (((((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
|
||||
if (unlikely(Py_SIZE(x) < 0)) {
|
||||
goto raise_neg_overflow;
|
||||
}
|
||||
#else
|
||||
{
|
||||
int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
|
||||
if (unlikely(result < 0))
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1;
|
||||
if (unlikely(result == 1))
|
||||
goto raise_neg_overflow;
|
||||
}
|
||||
#endif
|
||||
if ((sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) <= sizeof(unsigned long))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, PyLong_AsUnsignedLong(x))
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if ((sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) <= sizeof(unsigned PY_LONG_LONG))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
#if CYTHON_USE_PYLONG_INTERNALS
|
||||
if (__Pyx_PyLong_IsCompact(x)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
|
||||
} else {
|
||||
const digit* digits = __Pyx_PyLong_Digits(x);
|
||||
assert(__Pyx_PyLong_DigitCount(x) > 1);
|
||||
switch (__Pyx_PyLong_SignedDigitCount(x)) {
|
||||
case -2:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 2 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) (((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)-1)*(((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 2 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) ((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -3:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 3 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) (((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)-1)*(((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 3 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) ((((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -4:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 4 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) (((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)-1)*(((((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) - 1 > 4 * PyLong_SHIFT)) {
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) ((((((((((enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if ((sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) <= sizeof(long))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, long, PyLong_AsLong(x))
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if ((sizeof(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) <= sizeof(PY_LONG_LONG))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_22ai_availability_status_AIAvailabilityEnum, PY_LONG_LONG, PyLong_AsLongLong(x))
|
||||
#endif
|
||||
}
|
||||
}
|
||||
{
|
||||
enum __pyx_t_22ai_availability_status_AIAvailabilityEnum val;
|
||||
int ret = -1;
|
||||
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
|
||||
Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
|
||||
x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
|
||||
if (unlikely(bytes_copied == -1)) {
|
||||
} else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
|
||||
goto raise_overflow;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
|
||||
int one = 1; int is_little = (int)*(unsigned char *)&one;
|
||||
unsigned char *bytes = (unsigned char *)&val;
|
||||
ret = _PyLong_AsByteArray((PyLongObject *)x,
|
||||
bytes, sizeof(val),
|
||||
is_little, !is_unsigned);
|
||||
#else
|
||||
PyErr_SetString(PyExc_RuntimeError,
|
||||
"_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
|
||||
val = (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1;
|
||||
#endif
|
||||
if (unlikely(ret))
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1;
|
||||
return val;
|
||||
}
|
||||
raise_overflow:
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"value too large to convert to enum __pyx_t_22ai_availability_status_AIAvailabilityEnum");
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1;
|
||||
raise_neg_overflow:
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"can't convert negative value to enum __pyx_t_22ai_availability_status_AIAvailabilityEnum");
|
||||
return (enum __pyx_t_22ai_availability_status_AIAvailabilityEnum) -1;
|
||||
}
|
||||
|
||||
/* CIntFromPy */
|
||||
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
@@ -10043,260 +10179,6 @@ __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* CIntFromPy */
|
||||
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wconversion"
|
||||
#endif
|
||||
const int neg_one = (int) -1, const_zero = (int) 0;
|
||||
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
const int is_unsigned = neg_one > const_zero;
|
||||
if (unlikely(!PyLong_Check(x))) {
|
||||
int val;
|
||||
PyObject *tmp = __Pyx_PyNumber_Long(x);
|
||||
if (!tmp) return (int) -1;
|
||||
val = __Pyx_PyLong_As_int(tmp);
|
||||
Py_DECREF(tmp);
|
||||
return val;
|
||||
}
|
||||
if (is_unsigned) {
|
||||
#if CYTHON_USE_PYLONG_INTERNALS
|
||||
if (unlikely(__Pyx_PyLong_IsNeg(x))) {
|
||||
goto raise_neg_overflow;
|
||||
} else if (__Pyx_PyLong_IsCompact(x)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
|
||||
} else {
|
||||
const digit* digits = __Pyx_PyLong_Digits(x);
|
||||
assert(__Pyx_PyLong_DigitCount(x) > 1);
|
||||
switch (__Pyx_PyLong_DigitCount(x)) {
|
||||
case 2:
|
||||
if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
|
||||
return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
|
||||
return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
|
||||
return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
|
||||
if (unlikely(Py_SIZE(x) < 0)) {
|
||||
goto raise_neg_overflow;
|
||||
}
|
||||
#else
|
||||
{
|
||||
int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
|
||||
if (unlikely(result < 0))
|
||||
return (int) -1;
|
||||
if (unlikely(result == 1))
|
||||
goto raise_neg_overflow;
|
||||
}
|
||||
#endif
|
||||
if ((sizeof(int) <= sizeof(unsigned long))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
#if CYTHON_USE_PYLONG_INTERNALS
|
||||
if (__Pyx_PyLong_IsCompact(x)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
|
||||
} else {
|
||||
const digit* digits = __Pyx_PyLong_Digits(x);
|
||||
assert(__Pyx_PyLong_DigitCount(x) > 1);
|
||||
switch (__Pyx_PyLong_SignedDigitCount(x)) {
|
||||
case -2:
|
||||
if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
||||
return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
||||
return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -3:
|
||||
if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
||||
return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
||||
return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -4:
|
||||
if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
|
||||
return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
|
||||
if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
||||
__PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
||||
} else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
|
||||
return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if ((sizeof(int) <= sizeof(long))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
|
||||
#ifdef HAVE_LONG_LONG
|
||||
} else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
|
||||
__PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
|
||||
#endif
|
||||
}
|
||||
}
|
||||
{
|
||||
int val;
|
||||
int ret = -1;
|
||||
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
|
||||
Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
|
||||
x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
|
||||
if (unlikely(bytes_copied == -1)) {
|
||||
} else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
|
||||
goto raise_overflow;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
|
||||
int one = 1; int is_little = (int)*(unsigned char *)&one;
|
||||
unsigned char *bytes = (unsigned char *)&val;
|
||||
ret = _PyLong_AsByteArray((PyLongObject *)x,
|
||||
bytes, sizeof(val),
|
||||
is_little, !is_unsigned);
|
||||
#else
|
||||
PyObject *v;
|
||||
PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
|
||||
int bits, remaining_bits, is_negative = 0;
|
||||
int chunk_size = (sizeof(long) < 8) ? 30 : 62;
|
||||
if (likely(PyLong_CheckExact(x))) {
|
||||
v = __Pyx_NewRef(x);
|
||||
} else {
|
||||
v = PyNumber_Long(x);
|
||||
if (unlikely(!v)) return (int) -1;
|
||||
assert(PyLong_CheckExact(v));
|
||||
}
|
||||
{
|
||||
int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
|
||||
if (unlikely(result < 0)) {
|
||||
Py_DECREF(v);
|
||||
return (int) -1;
|
||||
}
|
||||
is_negative = result == 1;
|
||||
}
|
||||
if (is_unsigned && unlikely(is_negative)) {
|
||||
Py_DECREF(v);
|
||||
goto raise_neg_overflow;
|
||||
} else if (is_negative) {
|
||||
stepval = PyNumber_Invert(v);
|
||||
Py_DECREF(v);
|
||||
if (unlikely(!stepval))
|
||||
return (int) -1;
|
||||
} else {
|
||||
stepval = v;
|
||||
}
|
||||
v = NULL;
|
||||
val = (int) 0;
|
||||
mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
|
||||
shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
|
||||
for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
|
||||
PyObject *tmp, *digit;
|
||||
long idigit;
|
||||
digit = PyNumber_And(stepval, mask);
|
||||
if (unlikely(!digit)) goto done;
|
||||
idigit = PyLong_AsLong(digit);
|
||||
Py_DECREF(digit);
|
||||
if (unlikely(idigit < 0)) goto done;
|
||||
val |= ((int) idigit) << bits;
|
||||
tmp = PyNumber_Rshift(stepval, shift);
|
||||
if (unlikely(!tmp)) goto done;
|
||||
Py_DECREF(stepval); stepval = tmp;
|
||||
}
|
||||
Py_DECREF(shift); shift = NULL;
|
||||
Py_DECREF(mask); mask = NULL;
|
||||
{
|
||||
long idigit = PyLong_AsLong(stepval);
|
||||
if (unlikely(idigit < 0)) goto done;
|
||||
remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
|
||||
if (unlikely(idigit >= (1L << remaining_bits)))
|
||||
goto raise_overflow;
|
||||
val |= ((int) idigit) << bits;
|
||||
}
|
||||
if (!is_unsigned) {
|
||||
if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
|
||||
goto raise_overflow;
|
||||
if (is_negative)
|
||||
val = ~val;
|
||||
}
|
||||
ret = 0;
|
||||
done:
|
||||
Py_XDECREF(shift);
|
||||
Py_XDECREF(mask);
|
||||
Py_XDECREF(stepval);
|
||||
#endif
|
||||
if (unlikely(ret))
|
||||
return (int) -1;
|
||||
return val;
|
||||
}
|
||||
raise_overflow:
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"value too large to convert to int");
|
||||
return (int) -1;
|
||||
raise_neg_overflow:
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"can't convert negative value to int");
|
||||
return (int) -1;
|
||||
}
|
||||
|
||||
/* FastTypeChecks */
|
||||
#if CYTHON_COMPILING_IN_CPYTHON
|
||||
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
|
||||
|
||||
Reference in New Issue
Block a user