150 lines
6.9 KiB
Cython
150 lines
6.9 KiB
Cython
|
|
||
|
cdef extern from "Python.h":
|
||
|
ctypedef long long PY_LONG_LONG
|
||
|
ctypedef unsigned long long uPY_LONG_LONG "unsigned PY_LONG_LONG"
|
||
|
|
||
|
############################################################################
|
||
|
# 7.2.3 Long Integer Objects
|
||
|
############################################################################
|
||
|
|
||
|
# PyLongObject
|
||
|
#
|
||
|
# This subtype of PyObject represents a Python long integer object.
|
||
|
|
||
|
# PyTypeObject PyLong_Type
|
||
|
#
|
||
|
# This instance of PyTypeObject represents the Python long integer
|
||
|
# type. This is the same object as long and types.LongType.
|
||
|
|
||
|
bint PyLong_Check(object p)
|
||
|
# Return true if its argument is a PyLongObject or a subtype of PyLongObject.
|
||
|
|
||
|
bint PyLong_CheckExact(object p)
|
||
|
# Return true if its argument is a PyLongObject, but not a subtype of PyLongObject.
|
||
|
|
||
|
object PyLong_FromLong(long v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from v, or NULL on failure.
|
||
|
|
||
|
object PyLong_FromUnsignedLong(unsigned long v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from a C unsigned long, or NULL on failure.
|
||
|
|
||
|
object PyLong_FromSsize_t(Py_ssize_t v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from a C Py_ssize_t, or NULL on failure.)
|
||
|
|
||
|
object PyLong_FromSize_t(size_t v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from a C size_t, or NULL on failure.
|
||
|
|
||
|
object PyLong_FromLongLong(PY_LONG_LONG v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from a C long long, or NULL on failure.
|
||
|
|
||
|
object PyLong_FromUnsignedLongLong(uPY_LONG_LONG v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from a C unsigned long long, or NULL on failure.
|
||
|
|
||
|
object PyLong_FromDouble(double v)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject object from the integer part of v, or NULL on failure.
|
||
|
|
||
|
object PyLong_FromString(char *str, char **pend, int base)
|
||
|
# Return value: New reference.
|
||
|
# Return a new PyLongObject based on the string value in str,
|
||
|
# which is interpreted according to the radix in base. If pend is
|
||
|
# non-NULL, *pend will point to the first character in str which
|
||
|
# follows the representation of the number. If base is 0, the
|
||
|
# radix will be determined based on the leading characters of str:
|
||
|
# if str starts with '0x' or '0X', radix 16 will be used; if str
|
||
|
# starts with '0', radix 8 will be used; otherwise radix 10 will
|
||
|
# be used. If base is not 0, it must be between 2 and 36,
|
||
|
# inclusive. Leading spaces are ignored. If there are no digits,
|
||
|
# ValueError will be raised.
|
||
|
|
||
|
object PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)
|
||
|
# Return value: New reference.
|
||
|
# Convert a sequence of Unicode digits to a Python long integer
|
||
|
# value. The first parameter, u, points to the first character of
|
||
|
# the Unicode string, length gives the number of characters, and
|
||
|
# base is the radix for the conversion. The radix must be in the
|
||
|
# range [2, 36]; if it is out of range, ValueError will be
|
||
|
# raised.
|
||
|
|
||
|
# object PyLong_FromUnicodeObject(object u, int base)
|
||
|
# Convert a sequence of Unicode digits in the string u to a Python integer
|
||
|
# value. The Unicode string is first encoded to a byte string using
|
||
|
# PyUnicode_EncodeDecimal() and then converted using PyLong_FromString().
|
||
|
# New in version 3.3.
|
||
|
|
||
|
object PyLong_FromVoidPtr(void *p)
|
||
|
# Return value: New reference.
|
||
|
# Create a Python integer or long integer from the pointer p. The
|
||
|
# pointer value can be retrieved from the resulting value using
|
||
|
# PyLong_AsVoidPtr(). If the integer is larger than LONG_MAX, a
|
||
|
# positive long integer is returned.
|
||
|
|
||
|
long PyLong_AsLong(object pylong) except? -1
|
||
|
# Return a C long representation of the contents of pylong. If
|
||
|
# pylong is greater than LONG_MAX, an OverflowError is raised.
|
||
|
|
||
|
# long PyLong_AsLongAndOverflow(object pylong, int *overflow) except? -1
|
||
|
# Return a C long representation of the contents of pylong. If pylong is
|
||
|
# greater than LONG_MAX or less than LONG_MIN, set *overflow to 1 or -1,
|
||
|
# respectively, and return -1; otherwise, set *overflow to 0. If any other
|
||
|
# exception occurs (for example a TypeError or MemoryError), then -1 will
|
||
|
# be returned and *overflow will be 0.
|
||
|
# New in version 2.7.
|
||
|
|
||
|
# PY_LONG_LONG PyLong_AsLongLongAndOverflow(object pylong, int *overflow) except? -1
|
||
|
# Return a C long long representation of the contents of pylong. If pylong
|
||
|
# is greater than PY_LLONG_MAX or less than PY_LLONG_MIN, set *overflow to
|
||
|
# 1 or -1, respectively, and return -1; otherwise, set *overflow to 0. If
|
||
|
# any other exception occurs (for example a TypeError or MemoryError), then
|
||
|
# -1 will be returned and *overflow will be 0.
|
||
|
# New in version 2.7.
|
||
|
|
||
|
Py_ssize_t PyLong_AsSsize_t(object pylong) except? -1
|
||
|
# Return a C Py_ssize_t representation of the contents of pylong. If pylong
|
||
|
# is greater than PY_SSIZE_T_MAX, an OverflowError is raised and -1 will be
|
||
|
# returned.
|
||
|
|
||
|
unsigned long PyLong_AsUnsignedLong(object pylong) except? -1
|
||
|
# Return a C unsigned long representation of the contents of
|
||
|
# pylong. If pylong is greater than ULONG_MAX, an OverflowError is
|
||
|
# raised.
|
||
|
|
||
|
PY_LONG_LONG PyLong_AsLongLong(object pylong) except? -1
|
||
|
# Return a C long long from a Python long integer. If pylong
|
||
|
# cannot be represented as a long long, an OverflowError will be
|
||
|
# raised.
|
||
|
|
||
|
uPY_LONG_LONG PyLong_AsUnsignedLongLong(object pylong) except? -1
|
||
|
#unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(object pylong)
|
||
|
# Return a C unsigned long long from a Python long integer. If
|
||
|
# pylong cannot be represented as an unsigned long long, an
|
||
|
# OverflowError will be raised if the value is positive, or a
|
||
|
# TypeError will be raised if the value is negative.
|
||
|
|
||
|
unsigned long PyLong_AsUnsignedLongMask(object io) except? -1
|
||
|
# Return a C unsigned long from a Python long integer, without
|
||
|
# checking for overflow.
|
||
|
|
||
|
uPY_LONG_LONG PyLong_AsUnsignedLongLongMask(object io) except? -1
|
||
|
#unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(object io)
|
||
|
# Return a C unsigned long long from a Python long integer,
|
||
|
# without checking for overflow.
|
||
|
|
||
|
double PyLong_AsDouble(object pylong) except? -1.0
|
||
|
# Return a C double representation of the contents of pylong. If
|
||
|
# pylong cannot be approximately represented as a double, an
|
||
|
# OverflowError exception is raised and -1.0 will be returned.
|
||
|
|
||
|
void* PyLong_AsVoidPtr(object pylong) except? NULL
|
||
|
# Convert a Python integer or long integer pylong to a C void
|
||
|
# pointer. If pylong cannot be converted, an OverflowError will be
|
||
|
# raised. This is only assured to produce a usable void pointer
|
||
|
# for values created with PyLong_FromVoidPtr(). For values outside
|
||
|
# 0..LONG_MAX, both signed and unsigned integers are accepted.
|