| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 1 | .. highlightlang:: c | 
 | 2 |  | 
 | 3 | .. _number: | 
 | 4 |  | 
 | 5 | Number Protocol | 
 | 6 | =============== | 
 | 7 |  | 
 | 8 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 9 | .. c:function:: int PyNumber_Check(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 10 |  | 
 | 11 |    Returns ``1`` if the object *o* provides numeric protocols, and false otherwise. | 
 | 12 |    This function always succeeds. | 
 | 13 |  | 
 | 14 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 15 | .. c:function:: PyObject* PyNumber_Add(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 16 |  | 
 | 17 |    Returns the result of adding *o1* and *o2*, or *NULL* on failure.  This is the | 
 | 18 |    equivalent of the Python expression ``o1 + o2``. | 
 | 19 |  | 
 | 20 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 21 | .. c:function:: PyObject* PyNumber_Subtract(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 22 |  | 
 | 23 |    Returns the result of subtracting *o2* from *o1*, or *NULL* on failure.  This is | 
 | 24 |    the equivalent of the Python expression ``o1 - o2``. | 
 | 25 |  | 
 | 26 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 27 | .. c:function:: PyObject* PyNumber_Multiply(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 28 |  | 
 | 29 |    Returns the result of multiplying *o1* and *o2*, or *NULL* on failure.  This is | 
 | 30 |    the equivalent of the Python expression ``o1 * o2``. | 
 | 31 |  | 
 | 32 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 33 | .. c:function:: PyObject* PyNumber_FloorDivide(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 34 |  | 
 | 35 |    Return the floor of *o1* divided by *o2*, or *NULL* on failure.  This is | 
 | 36 |    equivalent to the "classic" division of integers. | 
 | 37 |  | 
 | 38 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 39 | .. c:function:: PyObject* PyNumber_TrueDivide(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 40 |  | 
 | 41 |    Return a reasonable approximation for the mathematical value of *o1* divided by | 
 | 42 |    *o2*, or *NULL* on failure.  The return value is "approximate" because binary | 
 | 43 |    floating point numbers are approximate; it is not possible to represent all real | 
 | 44 |    numbers in base two.  This function can return a floating point value when | 
 | 45 |    passed two integers. | 
 | 46 |  | 
 | 47 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 48 | .. c:function:: PyObject* PyNumber_Remainder(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 49 |  | 
 | 50 |    Returns the remainder of dividing *o1* by *o2*, or *NULL* on failure.  This is | 
 | 51 |    the equivalent of the Python expression ``o1 % o2``. | 
 | 52 |  | 
 | 53 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 54 | .. c:function:: PyObject* PyNumber_Divmod(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 55 |  | 
 | 56 |    .. index:: builtin: divmod | 
 | 57 |  | 
 | 58 |    See the built-in function :func:`divmod`. Returns *NULL* on failure.  This is | 
 | 59 |    the equivalent of the Python expression ``divmod(o1, o2)``. | 
 | 60 |  | 
 | 61 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 62 | .. c:function:: PyObject* PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 63 |  | 
 | 64 |    .. index:: builtin: pow | 
 | 65 |  | 
 | 66 |    See the built-in function :func:`pow`. Returns *NULL* on failure.  This is the | 
 | 67 |    equivalent of the Python expression ``pow(o1, o2, o3)``, where *o3* is optional. | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 68 |    If *o3* is to be ignored, pass :c:data:`Py_None` in its place (passing *NULL* for | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 69 |    *o3* would cause an illegal memory access). | 
 | 70 |  | 
 | 71 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 72 | .. c:function:: PyObject* PyNumber_Negative(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 73 |  | 
 | 74 |    Returns the negation of *o* on success, or *NULL* on failure. This is the | 
 | 75 |    equivalent of the Python expression ``-o``. | 
 | 76 |  | 
 | 77 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 78 | .. c:function:: PyObject* PyNumber_Positive(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 79 |  | 
 | 80 |    Returns *o* on success, or *NULL* on failure.  This is the equivalent of the | 
 | 81 |    Python expression ``+o``. | 
 | 82 |  | 
 | 83 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 84 | .. c:function:: PyObject* PyNumber_Absolute(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 85 |  | 
 | 86 |    .. index:: builtin: abs | 
 | 87 |  | 
 | 88 |    Returns the absolute value of *o*, or *NULL* on failure.  This is the equivalent | 
 | 89 |    of the Python expression ``abs(o)``. | 
 | 90 |  | 
 | 91 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 92 | .. c:function:: PyObject* PyNumber_Invert(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 93 |  | 
 | 94 |    Returns the bitwise negation of *o* on success, or *NULL* on failure.  This is | 
 | 95 |    the equivalent of the Python expression ``~o``. | 
 | 96 |  | 
 | 97 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 98 | .. c:function:: PyObject* PyNumber_Lshift(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 99 |  | 
 | 100 |    Returns the result of left shifting *o1* by *o2* on success, or *NULL* on | 
 | 101 |    failure.  This is the equivalent of the Python expression ``o1 << o2``. | 
 | 102 |  | 
 | 103 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 104 | .. c:function:: PyObject* PyNumber_Rshift(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 105 |  | 
 | 106 |    Returns the result of right shifting *o1* by *o2* on success, or *NULL* on | 
 | 107 |    failure.  This is the equivalent of the Python expression ``o1 >> o2``. | 
 | 108 |  | 
 | 109 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 110 | .. c:function:: PyObject* PyNumber_And(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 111 |  | 
 | 112 |    Returns the "bitwise and" of *o1* and *o2* on success and *NULL* on failure. | 
 | 113 |    This is the equivalent of the Python expression ``o1 & o2``. | 
 | 114 |  | 
 | 115 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 116 | .. c:function:: PyObject* PyNumber_Xor(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 117 |  | 
 | 118 |    Returns the "bitwise exclusive or" of *o1* by *o2* on success, or *NULL* on | 
 | 119 |    failure.  This is the equivalent of the Python expression ``o1 ^ o2``. | 
 | 120 |  | 
 | 121 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 122 | .. c:function:: PyObject* PyNumber_Or(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 123 |  | 
 | 124 |    Returns the "bitwise or" of *o1* and *o2* on success, or *NULL* on failure. | 
 | 125 |    This is the equivalent of the Python expression ``o1 | o2``. | 
 | 126 |  | 
 | 127 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 128 | .. c:function:: PyObject* PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 129 |  | 
 | 130 |    Returns the result of adding *o1* and *o2*, or *NULL* on failure.  The operation | 
 | 131 |    is done *in-place* when *o1* supports it.  This is the equivalent of the Python | 
 | 132 |    statement ``o1 += o2``. | 
 | 133 |  | 
 | 134 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 135 | .. c:function:: PyObject* PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 136 |  | 
 | 137 |    Returns the result of subtracting *o2* from *o1*, or *NULL* on failure.  The | 
 | 138 |    operation is done *in-place* when *o1* supports it.  This is the equivalent of | 
 | 139 |    the Python statement ``o1 -= o2``. | 
 | 140 |  | 
 | 141 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 142 | .. c:function:: PyObject* PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 143 |  | 
 | 144 |    Returns the result of multiplying *o1* and *o2*, or *NULL* on failure.  The | 
 | 145 |    operation is done *in-place* when *o1* supports it.  This is the equivalent of | 
 | 146 |    the Python statement ``o1 *= o2``. | 
 | 147 |  | 
 | 148 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 149 | .. c:function:: PyObject* PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 150 |  | 
 | 151 |    Returns the mathematical floor of dividing *o1* by *o2*, or *NULL* on failure. | 
 | 152 |    The operation is done *in-place* when *o1* supports it.  This is the equivalent | 
 | 153 |    of the Python statement ``o1 //= o2``. | 
 | 154 |  | 
 | 155 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 156 | .. c:function:: PyObject* PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 157 |  | 
 | 158 |    Return a reasonable approximation for the mathematical value of *o1* divided by | 
 | 159 |    *o2*, or *NULL* on failure.  The return value is "approximate" because binary | 
 | 160 |    floating point numbers are approximate; it is not possible to represent all real | 
 | 161 |    numbers in base two.  This function can return a floating point value when | 
 | 162 |    passed two integers.  The operation is done *in-place* when *o1* supports it. | 
 | 163 |  | 
 | 164 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 165 | .. c:function:: PyObject* PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 166 |  | 
 | 167 |    Returns the remainder of dividing *o1* by *o2*, or *NULL* on failure.  The | 
 | 168 |    operation is done *in-place* when *o1* supports it.  This is the equivalent of | 
 | 169 |    the Python statement ``o1 %= o2``. | 
 | 170 |  | 
 | 171 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 172 | .. c:function:: PyObject* PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 173 |  | 
 | 174 |    .. index:: builtin: pow | 
 | 175 |  | 
 | 176 |    See the built-in function :func:`pow`. Returns *NULL* on failure.  The operation | 
 | 177 |    is done *in-place* when *o1* supports it.  This is the equivalent of the Python | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 178 |    statement ``o1 **= o2`` when o3 is :c:data:`Py_None`, or an in-place variant of | 
 | 179 |    ``pow(o1, o2, o3)`` otherwise. If *o3* is to be ignored, pass :c:data:`Py_None` | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 180 |    in its place (passing *NULL* for *o3* would cause an illegal memory access). | 
 | 181 |  | 
 | 182 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 183 | .. c:function:: PyObject* PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 184 |  | 
 | 185 |    Returns the result of left shifting *o1* by *o2* on success, or *NULL* on | 
 | 186 |    failure.  The operation is done *in-place* when *o1* supports it.  This is the | 
 | 187 |    equivalent of the Python statement ``o1 <<= o2``. | 
 | 188 |  | 
 | 189 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 190 | .. c:function:: PyObject* PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 191 |  | 
 | 192 |    Returns the result of right shifting *o1* by *o2* on success, or *NULL* on | 
 | 193 |    failure.  The operation is done *in-place* when *o1* supports it.  This is the | 
 | 194 |    equivalent of the Python statement ``o1 >>= o2``. | 
 | 195 |  | 
 | 196 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 197 | .. c:function:: PyObject* PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 198 |  | 
 | 199 |    Returns the "bitwise and" of *o1* and *o2* on success and *NULL* on failure. The | 
 | 200 |    operation is done *in-place* when *o1* supports it.  This is the equivalent of | 
 | 201 |    the Python statement ``o1 &= o2``. | 
 | 202 |  | 
 | 203 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 204 | .. c:function:: PyObject* PyNumber_InPlaceXor(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 205 |  | 
 | 206 |    Returns the "bitwise exclusive or" of *o1* by *o2* on success, or *NULL* on | 
 | 207 |    failure.  The operation is done *in-place* when *o1* supports it.  This is the | 
 | 208 |    equivalent of the Python statement ``o1 ^= o2``. | 
 | 209 |  | 
 | 210 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 211 | .. c:function:: PyObject* PyNumber_InPlaceOr(PyObject *o1, PyObject *o2) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 212 |  | 
 | 213 |    Returns the "bitwise or" of *o1* and *o2* on success, or *NULL* on failure.  The | 
 | 214 |    operation is done *in-place* when *o1* supports it.  This is the equivalent of | 
 | 215 |    the Python statement ``o1 |= o2``. | 
 | 216 |  | 
 | 217 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 218 | .. c:function:: PyObject* PyNumber_Long(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 219 |  | 
| Mark Dickinson | d746768 | 2009-01-10 22:14:33 +0000 | [diff] [blame] | 220 |    .. index:: builtin: int | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 221 |  | 
 | 222 |    Returns the *o* converted to an integer object on success, or *NULL* on | 
| Mark Dickinson | d746768 | 2009-01-10 22:14:33 +0000 | [diff] [blame] | 223 |    failure.  This is the equivalent of the Python expression ``int(o)``. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 224 |  | 
 | 225 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 226 | .. c:function:: PyObject* PyNumber_Float(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 227 |  | 
 | 228 |    .. index:: builtin: float | 
 | 229 |  | 
 | 230 |    Returns the *o* converted to a float object on success, or *NULL* on failure. | 
 | 231 |    This is the equivalent of the Python expression ``float(o)``. | 
 | 232 |  | 
 | 233 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 234 | .. c:function:: PyObject* PyNumber_Index(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 235 |  | 
| Mark Dickinson | 0bbcc4c | 2009-01-17 09:45:37 +0000 | [diff] [blame] | 236 |    Returns the *o* converted to a Python int on success or *NULL* with a | 
| Benjamin Peterson | e5384b0 | 2008-10-04 22:00:42 +0000 | [diff] [blame] | 237 |    :exc:`TypeError` exception raised on failure. | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 238 |  | 
 | 239 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 240 | .. c:function:: PyObject* PyNumber_ToBase(PyObject *n, int base) | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 241 |  | 
| Mark Dickinson | f1ab47e | 2011-10-11 18:06:36 +0100 | [diff] [blame] | 242 |    Returns the integer *n* converted to base *base* as a string.  The *base* | 
 | 243 |    argument must be one of 2, 8, 10, or 16.  For base 2, 8, or 16, the | 
 | 244 |    returned string is prefixed with a base marker of ``'0b'``, ``'0o'``, or | 
 | 245 |    ``'0x'``, respectively.  If *n* is not a Python int, it is converted with | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 246 |    :c:func:`PyNumber_Index` first. | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 247 |  | 
| Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 248 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 249 | .. c:function:: Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 250 |  | 
 | 251 |    Returns *o* converted to a Py_ssize_t value if *o* can be interpreted as an | 
| Antoine Pitrou | fd06047 | 2011-07-13 21:02:22 +0200 | [diff] [blame] | 252 |    integer.  If the call fails, an exception is raised and -1 is returned. | 
 | 253 |  | 
 | 254 |    If *o* can be converted to a Python int but the attempt to | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 255 |    convert to a Py_ssize_t value would raise an :exc:`OverflowError`, then the | 
 | 256 |    *exc* argument is the type of exception that will be raised (usually | 
 | 257 |    :exc:`IndexError` or :exc:`OverflowError`).  If *exc* is *NULL*, then the | 
 | 258 |    exception is cleared and the value is clipped to *PY_SSIZE_T_MIN* for a negative | 
 | 259 |    integer or *PY_SSIZE_T_MAX* for a positive integer. | 
 | 260 |  | 
 | 261 |  | 
| Georg Brandl | 60203b4 | 2010-10-06 10:11:56 +0000 | [diff] [blame] | 262 | .. c:function:: int PyIndex_Check(PyObject *o) | 
| Georg Brandl | 54a3faa | 2008-01-20 09:30:57 +0000 | [diff] [blame] | 263 |  | 
 | 264 |    Returns True if *o* is an index integer (has the nb_index slot of  the | 
 | 265 |    tp_as_number structure filled in). |