| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 1 | .. highlightlang:: c | 
 | 2 |  | 
 | 3 | .. _longobjects: | 
 | 4 |  | 
 | 5 | Integer Objects | 
 | 6 | --------------- | 
 | 7 |  | 
 | 8 | .. index:: object: long integer | 
 | 9 |            object: integer | 
 | 10 |  | 
 | 11 | All integers are implemented as "long" integer objects of arbitrary size. | 
 | 12 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 13 | .. c:type:: PyLongObject | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 14 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 15 |    This subtype of :c:type:`PyObject` represents a Python integer object. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 16 |  | 
 | 17 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 18 | .. c:var:: PyTypeObject PyLong_Type | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 19 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 20 |    This instance of :c:type:`PyTypeObject` represents the Python integer type. | 
| Georg Brandl | 2aff335 | 2010-10-17 10:59:41 +0000 | [diff] [blame] | 21 |    This is the same object as :class:`int` in the Python layer. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 22 |  | 
 | 23 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 24 | .. c:function:: int PyLong_Check(PyObject *p) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 25 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 26 |    Return true if its argument is a :c:type:`PyLongObject` or a subtype of | 
 | 27 |    :c:type:`PyLongObject`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 28 |  | 
 | 29 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 30 | .. c:function:: int PyLong_CheckExact(PyObject *p) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 31 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 32 |    Return true if its argument is a :c:type:`PyLongObject`, but not a subtype of | 
 | 33 |    :c:type:`PyLongObject`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 34 |  | 
 | 35 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 36 | .. c:function:: PyObject* PyLong_FromLong(long v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 37 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 38 |    Return a new :c:type:`PyLongObject` object from *v*, or *NULL* on failure. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 39 |  | 
 | 40 |    The current implementation keeps an array of integer objects for all integers | 
 | 41 |    between ``-5`` and ``256``, when you create an int in that range you actually | 
 | 42 |    just get back a reference to the existing object. So it should be possible to | 
 | 43 |    change the value of ``1``.  I suspect the behaviour of Python in this case is | 
 | 44 |    undefined. :-) | 
 | 45 |  | 
 | 46 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 47 | .. c:function:: PyObject* PyLong_FromUnsignedLong(unsigned long v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 48 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 49 |    Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, or | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 50 |    *NULL* on failure. | 
 | 51 |  | 
 | 52 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 53 | .. c:function:: PyObject* PyLong_FromSsize_t(Py_ssize_t v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 54 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 55 |    Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 56 |    *NULL* on failure. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 57 |  | 
 | 58 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 59 | .. c:function:: PyObject* PyLong_FromSize_t(size_t v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 60 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 61 |    Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 62 |    *NULL* on failure. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 63 |  | 
 | 64 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 65 | .. c:function:: PyObject* PyLong_FromLongLong(PY_LONG_LONG v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 66 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 67 |    Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or *NULL* | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 68 |    on failure. | 
 | 69 |  | 
 | 70 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 71 | .. c:function:: PyObject* PyLong_FromUnsignedLongLong(unsigned PY_LONG_LONG v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 72 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 73 |    Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long long`, | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 74 |    or *NULL* on failure. | 
 | 75 |  | 
 | 76 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 77 | .. c:function:: PyObject* PyLong_FromDouble(double v) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 78 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 79 |    Return a new :c:type:`PyLongObject` object from the integer part of *v*, or | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 80 |    *NULL* on failure. | 
 | 81 |  | 
 | 82 |  | 
| Serhiy Storchaka | c679227 | 2013-10-19 21:03:34 +0300 | [diff] [blame] | 83 | .. c:function:: PyObject* PyLong_FromString(const char *str, char **pend, int base) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 84 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 85 |    Return a new :c:type:`PyLongObject` based on the string value in *str*, which | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 86 |    is interpreted according to the radix in *base*.  If *pend* is non-*NULL*, | 
| Ezio Melotti | ea30c6f | 2010-01-30 13:32:14 +0000 | [diff] [blame] | 87 |    *\*pend* will point to the first character in *str* which follows the | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 88 |    representation of the number.  If *base* is ``0``, the radix will be | 
 | 89 |    determined based on the leading characters of *str*: if *str* starts with | 
 | 90 |    ``'0x'`` or ``'0X'``, radix 16 will be used; if *str* starts with ``'0o'`` or | 
 | 91 |    ``'0O'``, radix 8 will be used; if *str* starts with ``'0b'`` or ``'0B'``, | 
 | 92 |    radix 2 will be used; otherwise radix 10 will be used.  If *base* is not | 
 | 93 |    ``0``, it must be between ``2`` and ``36``, inclusive.  Leading spaces are | 
 | 94 |    ignored.  If there are no digits, :exc:`ValueError` will be raised. | 
 | 95 |  | 
 | 96 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 97 | .. c:function:: PyObject* PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 98 |  | 
 | 99 |    Convert a sequence of Unicode digits to a Python integer value.  The Unicode | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 100 |    string is first encoded to a byte string using :c:func:`PyUnicode_EncodeDecimal` | 
 | 101 |    and then converted using :c:func:`PyLong_FromString`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 102 |  | 
| Georg Brandl | db6c7f5 | 2011-10-07 11:19:11 +0200 | [diff] [blame] | 103 |    .. deprecated-removed:: 3.3 4.0 | 
 | 104 |       Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using | 
 | 105 |       :c:func:`PyLong_FromUnicodeObject`. | 
 | 106 |  | 
 | 107 |  | 
 | 108 | .. c:function:: PyObject* PyLong_FromUnicodeObject(PyObject *u, int base) | 
 | 109 |  | 
 | 110 |    Convert a sequence of Unicode digits in the string *u* to a Python integer | 
 | 111 |    value.  The Unicode string is first encoded to a byte string using | 
 | 112 |    :c:func:`PyUnicode_EncodeDecimal` and then converted using | 
 | 113 |    :c:func:`PyLong_FromString`. | 
 | 114 |  | 
 | 115 |    .. versionadded:: 3.3 | 
 | 116 |  | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 117 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 118 | .. c:function:: PyObject* PyLong_FromVoidPtr(void *p) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 119 |  | 
 | 120 |    Create a Python integer from the pointer *p*. The pointer value can be | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 121 |    retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 122 |  | 
 | 123 |  | 
| Georg Brandl | 48310cd | 2009-01-03 21:18:54 +0000 | [diff] [blame] | 124 | .. XXX alias PyLong_AS_LONG (for now) | 
| Mark Dickinson | 0a22924 | 2012-06-23 10:49:12 +0100 | [diff] [blame] | 125 | .. c:function:: long PyLong_AsLong(PyObject *obj) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 126 |  | 
 | 127 |    .. index:: | 
 | 128 |       single: LONG_MAX | 
 | 129 |       single: OverflowError (built-in exception) | 
 | 130 |  | 
| Mark Dickinson | 0a22924 | 2012-06-23 10:49:12 +0100 | [diff] [blame] | 131 |    Return a C :c:type:`long` representation of *obj*.  If *obj* is not an | 
 | 132 |    instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method | 
 | 133 |    (if present) to convert it to a :c:type:`PyLongObject`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 134 |  | 
| Mark Dickinson | 0a22924 | 2012-06-23 10:49:12 +0100 | [diff] [blame] | 135 |    Raise :exc:`OverflowError` if the value of *obj* is out of range for a | 
 | 136 |    :c:type:`long`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 137 |  | 
| Mark Dickinson | f0acfee | 2012-06-23 11:14:22 +0100 | [diff] [blame] | 138 |  | 
| Mark Dickinson | 0a22924 | 2012-06-23 10:49:12 +0100 | [diff] [blame] | 139 | .. c:function:: long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow) | 
 | 140 |  | 
 | 141 |    Return a C :c:type:`long` representation of *obj*.  If *obj* is not an | 
 | 142 |    instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method | 
 | 143 |    (if present) to convert it to a :c:type:`PyLongObject`. | 
 | 144 |  | 
 | 145 |    If the value of *obj* is greater than :const:`LONG_MAX` or less than | 
 | 146 |    :const:`LONG_MIN`, set *\*overflow* to ``1`` or ``-1``, respectively, and | 
 | 147 |    return ``-1``; otherwise, set *\*overflow* to ``0``.  If any other exception | 
 | 148 |    occurs set *\*overflow* to ``0`` and return ``-1`` as usual. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 149 |  | 
 | 150 |  | 
| Mark Dickinson | f0acfee | 2012-06-23 11:14:22 +0100 | [diff] [blame] | 151 | .. c:function:: PY_LONG_LONG PyLong_AsLongLong(PyObject *obj) | 
| Mark Dickinson | 93f562c | 2010-01-30 10:30:15 +0000 | [diff] [blame] | 152 |  | 
| Mark Dickinson | f0acfee | 2012-06-23 11:14:22 +0100 | [diff] [blame] | 153 |    .. index:: | 
 | 154 |       single: OverflowError (built-in exception) | 
 | 155 |  | 
 | 156 |    Return a C :c:type:`long long` representation of *obj*.  If *obj* is not an | 
 | 157 |    instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method | 
 | 158 |    (if present) to convert it to a :c:type:`PyLongObject`. | 
 | 159 |  | 
 | 160 |    Raise :exc:`OverflowError` if the value of *obj* is out of range for a | 
 | 161 |    :c:type:`long`. | 
 | 162 |  | 
 | 163 |  | 
 | 164 | .. c:function:: PY_LONG_LONG PyLong_AsLongLongAndOverflow(PyObject *obj, int *overflow) | 
 | 165 |  | 
 | 166 |    Return a C :c:type:`long long` representation of *obj*.  If *obj* is not an | 
 | 167 |    instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method | 
 | 168 |    (if present) to convert it to a :c:type:`PyLongObject`. | 
 | 169 |  | 
 | 170 |    If the value of *obj* is greater than :const:`PY_LLONG_MAX` or less than | 
 | 171 |    :const:`PY_LLONG_MIN`, set *\*overflow* to ``1`` or ``-1``, respectively, | 
 | 172 |    and return ``-1``; otherwise, set *\*overflow* to ``0``.  If any other | 
 | 173 |    exception occurs set *\*overflow* to ``0`` and return ``-1`` as usual. | 
| Mark Dickinson | 93f562c | 2010-01-30 10:30:15 +0000 | [diff] [blame] | 174 |  | 
 | 175 |    .. versionadded:: 3.2 | 
 | 176 |  | 
 | 177 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 178 | .. c:function:: Py_ssize_t PyLong_AsSsize_t(PyObject *pylong) | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 179 |  | 
 | 180 |    .. index:: | 
 | 181 |       single: PY_SSIZE_T_MAX | 
 | 182 |       single: OverflowError (built-in exception) | 
 | 183 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 184 |    Return a C :c:type:`Py_ssize_t` representation of *pylong*.  *pylong* must | 
 | 185 |    be an instance of :c:type:`PyLongObject`. | 
 | 186 |  | 
 | 187 |    Raise :exc:`OverflowError` if the value of *pylong* is out of range for a | 
 | 188 |    :c:type:`Py_ssize_t`. | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 189 |  | 
 | 190 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 191 | .. c:function:: unsigned long PyLong_AsUnsignedLong(PyObject *pylong) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 192 |  | 
 | 193 |    .. index:: | 
 | 194 |       single: ULONG_MAX | 
 | 195 |       single: OverflowError (built-in exception) | 
 | 196 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 197 |    Return a C :c:type:`unsigned long` representation of *pylong*.  *pylong* | 
 | 198 |    must be an instance of :c:type:`PyLongObject`. | 
 | 199 |  | 
 | 200 |    Raise :exc:`OverflowError` if the value of *pylong* is out of range for a | 
 | 201 |    :c:type:`unsigned long`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 202 |  | 
 | 203 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 204 | .. c:function:: size_t PyLong_AsSize_t(PyObject *pylong) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 205 |  | 
| Terry Jan Reedy | 65e69b3 | 2013-03-11 17:23:46 -0400 | [diff] [blame] | 206 |    Return a C :c:type:`size_t` representation of *pylong*.  *pylong* must be | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 207 |    an instance of :c:type:`PyLongObject`. | 
 | 208 |  | 
 | 209 |    Raise :exc:`OverflowError` if the value of *pylong* is out of range for a | 
 | 210 |    :c:type:`size_t`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 211 |  | 
 | 212 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 213 | .. c:function:: unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 214 |  | 
| Mark Dickinson | 2177607 | 2009-02-10 16:13:25 +0000 | [diff] [blame] | 215 |    .. index:: | 
 | 216 |       single: OverflowError (built-in exception) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 217 |  | 
| Terry Jan Reedy | 65e69b3 | 2013-03-11 17:23:46 -0400 | [diff] [blame] | 218 |    Return a C :c:type:`unsigned PY_LONG_LONG` representation of *pylong*. | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 219 |    *pylong* must be an instance of :c:type:`PyLongObject`. | 
 | 220 |  | 
 | 221 |    Raise :exc:`OverflowError` if the value of *pylong* is out of range for an | 
 | 222 |    :c:type:`unsigned PY_LONG_LONG`. | 
| Mark Dickinson | 2177607 | 2009-02-10 16:13:25 +0000 | [diff] [blame] | 223 |  | 
 | 224 |    .. versionchanged:: 3.1 | 
| Georg Brandl | 67b21b7 | 2010-08-17 15:07:14 +0000 | [diff] [blame] | 225 |       A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`. | 
 | 226 |  | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 227 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 228 | .. c:function:: unsigned long PyLong_AsUnsignedLongMask(PyObject *obj) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 229 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 230 |    Return a C :c:type:`unsigned long` representation of *obj*.  If *obj* | 
 | 231 |    is not an instance of :c:type:`PyLongObject`, first call its :meth:`__int__` | 
 | 232 |    method (if present) to convert it to a :c:type:`PyLongObject`. | 
 | 233 |  | 
 | 234 |    If the value of *obj* is out of range for an :c:type:`unsigned long`, | 
 | 235 |    return the reduction of that value modulo :const:`ULONG_MAX + 1`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 236 |  | 
 | 237 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 238 | .. c:function:: unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(PyObject *obj) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 239 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 240 |    Return a C :c:type:`unsigned long long` representation of *obj*.  If *obj* | 
 | 241 |    is not an instance of :c:type:`PyLongObject`, first call its :meth:`__int__` | 
 | 242 |    method (if present) to convert it to a :c:type:`PyLongObject`. | 
 | 243 |  | 
 | 244 |    If the value of *obj* is out of range for an :c:type:`unsigned long long`, | 
 | 245 |    return the reduction of that value modulo :const:`PY_ULLONG_MAX + 1`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 246 |  | 
 | 247 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 248 | .. c:function:: double PyLong_AsDouble(PyObject *pylong) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 249 |  | 
| Mark Dickinson | b8dc3ab | 2012-06-23 12:12:52 +0100 | [diff] [blame] | 250 |    Return a C :c:type:`double` representation of *pylong*.  *pylong* must be | 
 | 251 |    an instance of :c:type:`PyLongObject`. | 
 | 252 |  | 
 | 253 |    Raise :exc:`OverflowError` if the value of *pylong* is out of range for a | 
 | 254 |    :c:type:`double`. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 255 |  | 
 | 256 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 257 | .. c:function:: void* PyLong_AsVoidPtr(PyObject *pylong) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 258 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 259 |    Convert a Python integer *pylong* to a C :c:type:`void` pointer. | 
| Christian Heimes | c3f30c4 | 2008-02-22 16:37:40 +0000 | [diff] [blame] | 260 |    If *pylong* cannot be converted, an :exc:`OverflowError` will be raised.  This | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 261 |    is only assured to produce a usable :c:type:`void` pointer for values created | 
 | 262 |    with :c:func:`PyLong_FromVoidPtr`. |