Ignore:
Timestamp:
Mar 19, 2014, 11:11:30 AM (11 years ago)
Author:
dmik
Message:

python: Update vendor to 2.7.6.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • python/vendor/current/Include/abstract.h

    r2 r388  
    3333  If the programmer wants to get an item from another type of object
    3434  that provides sequence behavior, there is no clear way to do it
    35   correctly. 
     35  correctly.
    3636
    3737  The persistent programmer may peruse object.h and find that the
     
    4545  differ by the type of object being used.  Unfortunately, these
    4646  semantics are not clearly described in the current include files.
    47   An abstract interface providing more consistent semantics is needed. 
     47  An abstract interface providing more consistent semantics is needed.
    4848
    4949Proposal
     
    7878
    7979  From the point of view of Python accessing services provided by C
    80   modules: 
     80  modules:
    8181
    8282  - "Python module interface": this interface consist of the basic
     
    134134     int PyObject_Print(PyObject *o, FILE *fp, int flags);
    135135
    136          Print an object, o, on file, fp.  Returns -1 on
    137         error.  The flags argument is used to enable certain printing
    138          options. The only option currently supported is Py_Print_RAW.
    139 
    140          (What should be said about Py_Print_RAW?)     
     136     Print an object, o, on file, fp.  Returns -1 on
     137    error.  The flags argument is used to enable certain printing
     138     options. The only option currently supported is Py_Print_RAW.
     139
     140     (What should be said about Py_Print_RAW?)
    141141
    142142       */
     
    146146     int PyObject_HasAttrString(PyObject *o, char *attr_name);
    147147
    148          Returns 1 if o has the attribute attr_name, and 0 otherwise.
    149         This is equivalent to the Python expression:
    150          hasattr(o,attr_name).
    151 
    152         This function always succeeds.
     148     Returns 1 if o has the attribute attr_name, and 0 otherwise.
     149    This is equivalent to the Python expression:
     150     hasattr(o,attr_name).
     151
     152    This function always succeeds.
    153153
    154154       */
     
    158158     PyObject* PyObject_GetAttrString(PyObject *o, char *attr_name);
    159159
    160         Retrieve an attributed named attr_name form object o.
    161         Returns the attribute value on success, or NULL on failure.
    162         This is the equivalent of the Python expression: o.attr_name.
     160    Retrieve an attributed named attr_name form object o.
     161    Returns the attribute value on success, or NULL on failure.
     162    This is the equivalent of the Python expression: o.attr_name.
    163163
    164164       */
     
    168168     int PyObject_HasAttr(PyObject *o, PyObject *attr_name);
    169169
    170          Returns 1 if o has the attribute attr_name, and 0 otherwise.
    171         This is equivalent to the Python expression:
    172          hasattr(o,attr_name).
    173 
    174         This function always succeeds.
     170     Returns 1 if o has the attribute attr_name, and 0 otherwise.
     171    This is equivalent to the Python expression:
     172     hasattr(o,attr_name).
     173
     174    This function always succeeds.
    175175
    176176       */
     
    180180     PyObject* PyObject_GetAttr(PyObject *o, PyObject *attr_name);
    181181
    182         Retrieve an attributed named attr_name form object o.
    183         Returns the attribute value on success, or NULL on failure.
    184         This is the equivalent of the Python expression: o.attr_name.
     182    Retrieve an attributed named attr_name form object o.
     183    Returns the attribute value on success, or NULL on failure.
     184    This is the equivalent of the Python expression: o.attr_name.
    185185
    186186       */
     
    191191     int PyObject_SetAttrString(PyObject *o, char *attr_name, PyObject *v);
    192192
    193         Set the value of the attribute named attr_name, for object o,
    194         to the value, v. Returns -1 on failure.  This is
    195         the equivalent of the Python statement: o.attr_name=v.
     193    Set the value of the attribute named attr_name, for object o,
     194    to the value, v. Returns -1 on failure.  This is
     195    the equivalent of the Python statement: o.attr_name=v.
    196196
    197197       */
     
    201201     int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v);
    202202
    203         Set the value of the attribute named attr_name, for object o,
    204         to the value, v. Returns -1 on failure.  This is
    205         the equivalent of the Python statement: o.attr_name=v.
     203    Set the value of the attribute named attr_name, for object o,
     204    to the value, v. Returns -1 on failure.  This is
     205    the equivalent of the Python statement: o.attr_name=v.
    206206
    207207       */
     
    211211     int PyObject_DelAttrString(PyObject *o, char *attr_name);
    212212
    213         Delete attribute named attr_name, for object o. Returns
    214         -1 on failure.  This is the equivalent of the Python
    215         statement: del o.attr_name.
     213    Delete attribute named attr_name, for object o. Returns
     214    -1 on failure.  This is the equivalent of the Python
     215    statement: del o.attr_name.
    216216
    217217       */
     
    222222     int PyObject_DelAttr(PyObject *o, PyObject *attr_name);
    223223
    224         Delete attribute named attr_name, for object o. Returns -1
    225         on failure.  This is the equivalent of the Python
    226         statement: del o.attr_name.
     224    Delete attribute named attr_name, for object o. Returns -1
     225    on failure.  This is the equivalent of the Python
     226    statement: del o.attr_name.
    227227
    228228       */
     
    232232
    233233       /*
    234         Compare the values of o1 and o2 using a routine provided by
    235         o1, if one exists, otherwise with a routine provided by o2.
    236         The result of the comparison is returned in result.  Returns
    237         -1 on failure.  This is the equivalent of the Python
    238         statement: result=cmp(o1,o2).
     234    Compare the values of o1 and o2 using a routine provided by
     235    o1, if one exists, otherwise with a routine provided by o2.
     236    The result of the comparison is returned in result.  Returns
     237    -1 on failure.  This is the equivalent of the Python
     238    statement: result=cmp(o1,o2).
    239239
    240240       */
     
    244244     int PyObject_Compare(PyObject *o1, PyObject *o2);
    245245
    246         Compare the values of o1 and o2 using a routine provided by
    247         o1, if one exists, otherwise with a routine provided by o2.
    248         Returns the result of the comparison on success.  On error,
    249         the value returned is undefined. This is equivalent to the
    250         Python expression: cmp(o1,o2).
     246    Compare the values of o1 and o2 using a routine provided by
     247    o1, if one exists, otherwise with a routine provided by o2.
     248    Returns the result of the comparison on success.  On error,
     249    the value returned is undefined. This is equivalent to the
     250    Python expression: cmp(o1,o2).
    251251
    252252       */
     
    256256     PyObject *PyObject_Repr(PyObject *o);
    257257
    258         Compute the string representation of object, o.  Returns the
    259         string representation on success, NULL on failure.  This is
    260         the equivalent of the Python expression: repr(o).
    261 
    262         Called by the repr() built-in function and by reverse quotes.
     258    Compute the string representation of object, o.  Returns the
     259    string representation on success, NULL on failure.  This is
     260    the equivalent of the Python expression: repr(o).
     261
     262    Called by the repr() built-in function and by reverse quotes.
    263263
    264264       */
     
    268268     PyObject *PyObject_Str(PyObject *o);
    269269
    270         Compute the string representation of object, o.  Returns the
    271         string representation on success, NULL on failure.  This is
    272         the equivalent of the Python expression: str(o).)
    273 
    274         Called by the str() built-in function and by the print
    275         statement.
     270    Compute the string representation of object, o.  Returns the
     271    string representation on success, NULL on failure.  This is
     272    the equivalent of the Python expression: str(o).)
     273
     274    Called by the str() built-in function and by the print
     275    statement.
    276276
    277277       */
     
    281281     PyObject *PyObject_Unicode(PyObject *o);
    282282
    283         Compute the unicode representation of object, o.  Returns the
    284         unicode representation on success, NULL on failure.  This is
    285         the equivalent of the Python expression: unistr(o).)
    286 
    287         Called by the unistr() built-in function.
     283    Compute the unicode representation of object, o.  Returns the
     284    unicode representation on success, NULL on failure.  This is
     285    the equivalent of the Python expression: unistr(o).)
     286
     287    Called by the unistr() built-in function.
    288288
    289289       */
     
    293293     PyAPI_FUNC(int) PyCallable_Check(PyObject *o);
    294294
    295         Determine if the object, o, is callable.  Return 1 if the
    296         object is callable and 0 otherwise.
    297 
    298         This function always succeeds.
     295    Determine if the object, o, is callable.  Return 1 if the
     296    object is callable and 0 otherwise.
     297
     298    This function always succeeds.
    299299
    300300       */
     
    303303
    304304     PyAPI_FUNC(PyObject *) PyObject_Call(PyObject *callable_object,
    305                                         PyObject *args, PyObject *kw);
    306 
    307        /*
    308         Call a callable Python object, callable_object, with
    309         arguments and keywords arguments.  The 'args' argument can not be
    310         NULL, but the 'kw' argument can be NULL.
    311 
    312        */
    313      
     305                                        PyObject *args, PyObject *kw);
     306
     307       /*
     308    Call a callable Python object, callable_object, with
     309    arguments and keywords arguments.  The 'args' argument can not be
     310    NULL, but the 'kw' argument can be NULL.
     311
     312       */
     313
    314314     PyAPI_FUNC(PyObject *) PyObject_CallObject(PyObject *callable_object,
    315315                                               PyObject *args);
    316316
    317317       /*
    318         Call a callable Python object, callable_object, with
    319         arguments given by the tuple, args.  If no arguments are
    320         needed, then args may be NULL.  Returns the result of the
    321         call on success, or NULL on failure.  This is the equivalent
    322         of the Python expression: apply(o,args).
     318    Call a callable Python object, callable_object, with
     319    arguments given by the tuple, args.  If no arguments are
     320    needed, then args may be NULL.  Returns the result of the
     321    call on success, or NULL on failure.  This is the equivalent
     322    of the Python expression: apply(o,args).
    323323
    324324       */
     
    328328
    329329       /*
    330         Call a callable Python object, callable_object, with a
    331         variable number of C arguments. The C arguments are described
    332         using a mkvalue-style format string. The format may be NULL,
    333         indicating that no arguments are provided.  Returns the
    334         result of the call on success, or NULL on failure.  This is
    335         the equivalent of the Python expression: apply(o,args).
     330    Call a callable Python object, callable_object, with a
     331    variable number of C arguments. The C arguments are described
     332    using a mkvalue-style format string. The format may be NULL,
     333    indicating that no arguments are provided.  Returns the
     334    result of the call on success, or NULL on failure.  This is
     335    the equivalent of the Python expression: apply(o,args).
    336336
    337337       */
     
    342342
    343343       /*
    344         Call the method named m of object o with a variable number of
    345         C arguments.  The C arguments are described by a mkvalue
    346         format string.  The format may be NULL, indicating that no
    347         arguments are provided. Returns the result of the call on
    348         success, or NULL on failure.  This is the equivalent of the
    349         Python expression: o.method(args).
     344    Call the method named m of object o with a variable number of
     345    C arguments.  The C arguments are described by a mkvalue
     346    format string.  The format may be NULL, indicating that no
     347    arguments are provided. Returns the result of the call on
     348    success, or NULL on failure.  This is the equivalent of the
     349    Python expression: o.method(args).
    350350       */
    351351
    352352     PyAPI_FUNC(PyObject *) _PyObject_CallFunction_SizeT(PyObject *callable,
    353                                                         char *format, ...);
     353                                                        char *format, ...);
    354354     PyAPI_FUNC(PyObject *) _PyObject_CallMethod_SizeT(PyObject *o,
    355                                                        char *name,
    356                                                        char *format, ...);
     355                                                       char *name,
     356                                                       char *format, ...);
    357357
    358358     PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable,
     
    360360
    361361       /*
    362         Call a callable Python object, callable_object, with a
    363         variable number of C arguments.  The C arguments are provided
    364         as PyObject * values, terminated by a NULL.  Returns the
    365         result of the call on success, or NULL on failure.  This is
    366         the equivalent of the Python expression: apply(o,args).
     362    Call a callable Python object, callable_object, with a
     363    variable number of C arguments.  The C arguments are provided
     364    as PyObject * values, terminated by a NULL.  Returns the
     365    result of the call on success, or NULL on failure.  This is
     366    the equivalent of the Python expression: apply(o,args).
    367367       */
    368368
     
    372372
    373373       /*
    374         Call the method named m of object o with a variable number of
    375         C arguments.  The C arguments are provided as PyObject *
    376         values, terminated by NULL.  Returns the result of the call
    377         on success, or NULL on failure.  This is the equivalent of
    378         the Python expression: o.method(args).
     374    Call the method named m of object o with a variable number of
     375    C arguments.  The C arguments are provided as PyObject *
     376    values, terminated by NULL.  Returns the result of the call
     377    on success, or NULL on failure.  This is the equivalent of
     378    the Python expression: o.method(args).
    379379       */
    380380
     
    384384     long PyObject_Hash(PyObject *o);
    385385
    386          Compute and return the hash, hash_value, of an object, o.  On
    387         failure, return -1.  This is the equivalent of the Python
    388         expression: hash(o).
     386     Compute and return the hash, hash_value, of an object, o.  On
     387    failure, return -1.  This is the equivalent of the Python
     388    expression: hash(o).
    389389
    390390       */
     
    395395     int PyObject_IsTrue(PyObject *o);
    396396
    397         Returns 1 if the object, o, is considered to be true, 0 if o is
    398         considered to be false and -1 on failure. This is equivalent to the
    399         Python expression: not not o
     397    Returns 1 if the object, o, is considered to be true, 0 if o is
     398    considered to be false and -1 on failure. This is equivalent to the
     399    Python expression: not not o
    400400
    401401       */
     
    405405     int PyObject_Not(PyObject *o);
    406406
    407         Returns 0 if the object, o, is considered to be true, 1 if o is
    408         considered to be false and -1 on failure. This is equivalent to the
    409         Python expression: not o
     407    Returns 0 if the object, o, is considered to be true, 1 if o is
     408    considered to be false and -1 on failure. This is equivalent to the
     409    Python expression: not o
    410410
    411411       */
     
    414414
    415415       /*
    416         On success, returns a type object corresponding to the object
    417         type of object o. On failure, returns NULL.  This is
    418         equivalent to the Python expression: type(o).
     416    On success, returns a type object corresponding to the object
     417    type of object o. On failure, returns NULL.  This is
     418    equivalent to the Python expression: type(o).
    419419       */
    420420
     
    422422
    423423       /*
    424          Return the size of object o.  If the object, o, provides
    425         both sequence and mapping protocols, the sequence size is
    426         returned. On error, -1 is returned.  This is the equivalent
    427         to the Python expression: len(o).
     424     Return the size of object o.  If the object, o, provides
     425    both sequence and mapping protocols, the sequence size is
     426    returned. On error, -1 is returned.  This is the equivalent
     427    to the Python expression: len(o).
    428428
    429429       */
     
    437437
    438438       /*
    439          Guess the size of object o using len(o) or o.__length_hint__().
    440          If neither of those return a non-negative value, then return the
    441          default value.  If one of the calls fails, this function returns -1.
     439     Guess the size of object o using len(o) or o.__length_hint__().
     440     If neither of those return a non-negative value, then return the
     441     default value.  If one of the calls fails, this function returns -1.
    442442       */
    443443
     
    445445
    446446       /*
    447         Return element of o corresponding to the object, key, or NULL
    448         on failure. This is the equivalent of the Python expression:
    449         o[key].
     447    Return element of o corresponding to the object, key, or NULL
     448    on failure. This is the equivalent of the Python expression:
     449    o[key].
    450450
    451451       */
     
    454454
    455455       /*
    456         Map the object, key, to the value, v.  Returns
    457         -1 on failure.  This is the equivalent of the Python
    458         statement: o[key]=v.
     456    Map the object, key, to the value, v.  Returns
     457    -1 on failure.  This is the equivalent of the Python
     458    statement: o[key]=v.
    459459       */
    460460
     
    462462
    463463       /*
    464          Remove the mapping for object, key, from the object *o.
    465          Returns -1 on failure.  This is equivalent to
    466          the Python statement: del o[key].
     464     Remove the mapping for object, key, from the object *o.
     465     Returns -1 on failure.  This is equivalent to
     466     the Python statement: del o[key].
    467467       */
    468468
     
    470470
    471471       /*
    472         Delete the mapping for key from *o.  Returns -1 on failure.
    473         This is the equivalent of the Python statement: del o[key].
     472    Delete the mapping for key from *o.  Returns -1 on failure.
     473    This is the equivalent of the Python statement: del o[key].
    474474       */
    475475
    476476     PyAPI_FUNC(int) PyObject_AsCharBuffer(PyObject *obj,
    477                                           const char **buffer,
    478                                           Py_ssize_t *buffer_len);
    479 
    480        /* 
    481           Takes an arbitrary object which must support the (character,
    482           single segment) buffer interface and returns a pointer to a
    483           read-only memory location useable as character based input
    484           for subsequent processing.
    485 
    486           0 is returned on success.  buffer and buffer_len are only
    487           set in case no error occurs. Otherwise, -1 is returned and
    488           an exception set.
     477                                          const char **buffer,
     478                                          Py_ssize_t *buffer_len);
     479
     480       /*
     481      Takes an arbitrary object which must support the (character,
     482      single segment) buffer interface and returns a pointer to a
     483      read-only memory location useable as character based input
     484      for subsequent processing.
     485
     486      0 is returned on success.  buffer and buffer_len are only
     487      set in case no error occurs. Otherwise, -1 is returned and
     488      an exception set.
    489489
    490490       */
     
    492492     PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj);
    493493
    494       /* 
    495           Checks whether an arbitrary object supports the (character,
    496           single segment) buffer interface.  Returns 1 on success, 0
    497           on failure.
     494      /*
     495      Checks whether an arbitrary object supports the (character,
     496      single segment) buffer interface.  Returns 1 on success, 0
     497      on failure.
    498498
    499499      */
    500500
    501501     PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
    502                                           const void **buffer,
    503                                           Py_ssize_t *buffer_len);
    504 
    505        /* 
    506           Same as PyObject_AsCharBuffer() except that this API expects
    507           (readable, single segment) buffer interface and returns a
    508           pointer to a read-only memory location which can contain
    509           arbitrary data.
    510 
    511           0 is returned on success.  buffer and buffer_len are only
    512           set in case no error occurrs.  Otherwise, -1 is returned and
    513           an exception set.
     502                                          const void **buffer,
     503                                          Py_ssize_t *buffer_len);
     504
     505       /*
     506      Same as PyObject_AsCharBuffer() except that this API expects
     507      (readable, single segment) buffer interface and returns a
     508      pointer to a read-only memory location which can contain
     509      arbitrary data.
     510
     511      0 is returned on success.  buffer and buffer_len are only
     512      set in case no error occurs.  Otherwise, -1 is returned and
     513      an exception set.
    514514
    515515       */
    516516
    517517     PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
    518                                            void **buffer,
    519                                            Py_ssize_t *buffer_len);
    520 
    521        /* 
    522           Takes an arbitrary object which must support the (writeable,
    523           single segment) buffer interface and returns a pointer to a
    524           writeable memory location in buffer of size buffer_len.
    525 
    526           0 is returned on success.  buffer and buffer_len are only
    527           set in case no error occurrs. Otherwise, -1 is returned and
    528           an exception set.
    529 
    530        */
    531 
    532         /* new buffer API */
     518                                           void **buffer,
     519                                           Py_ssize_t *buffer_len);
     520
     521       /*
     522      Takes an arbitrary object which must support the (writeable,
     523      single segment) buffer interface and returns a pointer to a
     524      writeable memory location in buffer of size buffer_len.
     525
     526      0 is returned on success.  buffer and buffer_len are only
     527      set in case no error occurs. Otherwise, -1 is returned and
     528      an exception set.
     529
     530       */
     531
     532    /* new buffer API */
    533533
    534534#define PyObject_CheckBuffer(obj) \
    535         (((obj)->ob_type->tp_as_buffer != NULL) &&                      \
    536         (PyType_HasFeature((obj)->ob_type, Py_TPFLAGS_HAVE_NEWBUFFER)) && \
    537         ((obj)->ob_type->tp_as_buffer->bf_getbuffer != NULL))
    538                            
    539         /* Return 1 if the getbuffer function is available, otherwise
    540            return 0 */
    541 
    542      PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view, 
    543                                         int flags);
    544 
    545         /* This is a C-API version of the getbuffer function call.  It checks
    546            to make sure object has the required function pointer and issues the
    547            call.  Returns -1 and raises an error on failure and returns 0 on
    548            success
    549         */
     535    (((obj)->ob_type->tp_as_buffer != NULL) &&                          \
     536    (PyType_HasFeature((obj)->ob_type, Py_TPFLAGS_HAVE_NEWBUFFER)) && \
     537    ((obj)->ob_type->tp_as_buffer->bf_getbuffer != NULL))
     538
     539    /* Return 1 if the getbuffer function is available, otherwise
     540       return 0 */
     541
     542     PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
     543                                        int flags);
     544
     545    /* This is a C-API version of the getbuffer function call.  It checks
     546       to make sure object has the required function pointer and issues the
     547       call.  Returns -1 and raises an error on failure and returns 0 on
     548       success
     549    */
    550550
    551551
    552552     PyAPI_FUNC(void *) PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices);
    553        
    554         /* Get the memory area pointed to by the indices for the buffer given.
    555            Note that view->ndim is the assumed size of indices
    556         */
     553
     554    /* Get the memory area pointed to by the indices for the buffer given.
     555       Note that view->ndim is the assumed size of indices
     556    */
    557557
    558558     PyAPI_FUNC(int) PyBuffer_SizeFromFormat(const char *);
    559                
    560         /* Return the implied itemsize of the data-format area from a
    561            struct-style description */
    562    
    563 
    564        
     559
     560    /* Return the implied itemsize of the data-format area from a
     561       struct-style description */
     562
     563
     564
    565565     PyAPI_FUNC(int) PyBuffer_ToContiguous(void *buf, Py_buffer *view,
    566                                            Py_ssize_t len, char fort);
    567 
    568      PyAPI_FUNC(int) PyBuffer_FromContiguous(Py_buffer *view, void *buf, 
    569                                              Py_ssize_t len, char fort);
    570 
    571 
    572         /* Copy len bytes of data from the contiguous chunk of memory
    573            pointed to by buf into the buffer exported by obj.  Return
    574            0 on success and return -1 and raise a PyBuffer_Error on
    575            error (i.e. the object does not have a buffer interface or
    576            it is not working).
    577 
    578            If fort is 'F' and the object is multi-dimensional,
    579            then the data will be copied into the array in
    580            Fortran-style (first dimension varies the fastest).  If
    581            fort is 'C', then the data will be copied into the array
    582            in C-style (last dimension varies the fastest).  If fort
    583            is 'A', then it does not matter and the copy will be made
    584            in whatever way is more efficient.
    585 
    586         */
     566                                           Py_ssize_t len, char fort);
     567
     568     PyAPI_FUNC(int) PyBuffer_FromContiguous(Py_buffer *view, void *buf,
     569                                             Py_ssize_t len, char fort);
     570
     571
     572    /* Copy len bytes of data from the contiguous chunk of memory
     573       pointed to by buf into the buffer exported by obj.  Return
     574       0 on success and return -1 and raise a PyBuffer_Error on
     575       error (i.e. the object does not have a buffer interface or
     576       it is not working).
     577
     578       If fort is 'F' and the object is multi-dimensional,
     579       then the data will be copied into the array in
     580       Fortran-style (first dimension varies the fastest).  If
     581       fort is 'C', then the data will be copied into the array
     582       in C-style (last dimension varies the fastest).  If fort
     583       is 'A', then it does not matter and the copy will be made
     584       in whatever way is more efficient.
     585
     586    */
    587587
    588588     PyAPI_FUNC(int) PyObject_CopyData(PyObject *dest, PyObject *src);
    589        
    590         /* Copy the data from the src buffer to the buffer of destination
    591          */
     589
     590    /* Copy the data from the src buffer to the buffer of destination
     591     */
    592592
    593593     PyAPI_FUNC(int) PyBuffer_IsContiguous(Py_buffer *view, char fort);
    594594
    595595
    596      PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims, 
    597                                                     Py_ssize_t *shape,
    598                                                     Py_ssize_t *strides,
    599                                                     int itemsize,
    600                                                     char fort);
    601 
    602         /*  Fill the strides array with byte-strides of a contiguous
    603             (Fortran-style if fort is 'F' or C-style otherwise)
    604             array of the given shape with the given number of bytes
    605             per element.
    606         */
     596     PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims,
     597                                                    Py_ssize_t *shape,
     598                                                    Py_ssize_t *strides,
     599                                                    int itemsize,
     600                                                    char fort);
     601
     602    /*  Fill the strides array with byte-strides of a contiguous
     603        (Fortran-style if fort is 'F' or C-style otherwise)
     604        array of the given shape with the given number of bytes
     605        per element.
     606    */
    607607
    608608     PyAPI_FUNC(int) PyBuffer_FillInfo(Py_buffer *view, PyObject *o, void *buf,
    609                                        Py_ssize_t len, int readonly,
    610                                        int flags);
    611 
    612         /* Fills in a buffer-info structure correctly for an exporter
    613            that can only share a contiguous chunk of memory of
    614            "unsigned bytes" of the given length. Returns 0 on success
    615            and -1 (with raising an error) on error.
    616          */
     609                                       Py_ssize_t len, int readonly,
     610                                       int flags);
     611
     612    /* Fills in a buffer-info structure correctly for an exporter
     613       that can only share a contiguous chunk of memory of
     614       "unsigned bytes" of the given length. Returns 0 on success
     615       and -1 (with raising an error) on error.
     616     */
    617617
    618618     PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view);
    619619
    620620       /* Releases a Py_buffer obtained from getbuffer ParseTuple's s*.
    621         */
     621    */
    622622
    623623     PyAPI_FUNC(PyObject *) PyObject_Format(PyObject* obj,
    624                                             PyObject *format_spec);
    625        /*
    626         Takes an arbitrary object and returns the result of
    627         calling obj.__format__(format_spec).
     624                                            PyObject *format_spec);
     625       /*
     626    Takes an arbitrary object and returns the result of
     627    calling obj.__format__(format_spec).
    628628       */
    629629
     
    632632     PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *);
    633633     /* Takes an object and returns an iterator for it.
    634         This is typically a new iterator but if the argument
    635         is an iterator, this returns itself. */
     634    This is typically a new iterator but if the argument
     635    is an iterator, this returns itself. */
    636636
    637637#define PyIter_Check(obj) \
    638638    (PyType_HasFeature((obj)->ob_type, Py_TPFLAGS_HAVE_ITER) && \
    639      (obj)->ob_type->tp_iternext != NULL)
     639     (obj)->ob_type->tp_iternext != NULL && \
     640     (obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented)
    640641
    641642     PyAPI_FUNC(PyObject *) PyIter_Next(PyObject *);
    642643     /* Takes an iterator object and calls its tp_iternext slot,
    643         returning the next value.  If the iterator is exhausted,
    644         this returns NULL without setting an exception.
    645         NULL with an exception means an error occurred. */
     644    returning the next value.  If the iterator is exhausted,
     645    this returns NULL without setting an exception.
     646    NULL with an exception means an error occurred. */
    646647
    647648/*  Number Protocol:*/
     
    650651
    651652       /*
    652          Returns 1 if the object, o, provides numeric protocols, and
    653          false otherwise.
    654 
    655         This function always succeeds.
     653     Returns 1 if the object, o, provides numeric protocols, and
     654     false otherwise.
     655
     656    This function always succeeds.
    656657
    657658       */
     
    660661
    661662       /*
    662         Returns the result of adding o1 and o2, or null on failure.
    663         This is the equivalent of the Python expression: o1+o2.
     663    Returns the result of adding o1 and o2, or null on failure.
     664    This is the equivalent of the Python expression: o1+o2.
    664665
    665666
     
    669670
    670671       /*
    671         Returns the result of subtracting o2 from o1, or null on
    672         failure.  This is the equivalent of the Python expression:
    673         o1-o2.
     672    Returns the result of subtracting o2 from o1, or null on
     673    failure.  This is the equivalent of the Python expression:
     674    o1-o2.
    674675
    675676       */
     
    678679
    679680       /*
    680         Returns the result of multiplying o1 and o2, or null on
    681         failure.  This is the equivalent of the Python expression:
    682         o1*o2.
     681    Returns the result of multiplying o1 and o2, or null on
     682    failure.  This is the equivalent of the Python expression:
     683    o1*o2.
    683684
    684685
     
    688689
    689690       /*
    690         Returns the result of dividing o1 by o2, or null on failure.
    691         This is the equivalent of the Python expression: o1/o2.
     691    Returns the result of dividing o1 by o2, or null on failure.
     692    This is the equivalent of the Python expression: o1/o2.
    692693
    693694
     
    697698
    698699       /*
    699         Returns the result of dividing o1 by o2 giving an integral result,
    700         or null on failure.
    701         This is the equivalent of the Python expression: o1//o2.
     700    Returns the result of dividing o1 by o2 giving an integral result,
     701    or null on failure.
     702    This is the equivalent of the Python expression: o1//o2.
    702703
    703704
     
    707708
    708709       /*
    709         Returns the result of dividing o1 by o2 giving a float result,
    710         or null on failure.
    711         This is the equivalent of the Python expression: o1/o2.
     710    Returns the result of dividing o1 by o2 giving a float result,
     711    or null on failure.
     712    This is the equivalent of the Python expression: o1/o2.
    712713
    713714
     
    717718
    718719       /*
    719         Returns the remainder of dividing o1 by o2, or null on
    720         failure.  This is the equivalent of the Python expression:
    721         o1%o2.
     720    Returns the remainder of dividing o1 by o2, or null on
     721    failure.  This is the equivalent of the Python expression:
     722    o1%o2.
    722723
    723724
     
    727728
    728729       /*
    729         See the built-in function divmod.  Returns NULL on failure.
    730         This is the equivalent of the Python expression:
    731         divmod(o1,o2).
     730    See the built-in function divmod.  Returns NULL on failure.
     731    This is the equivalent of the Python expression:
     732    divmod(o1,o2).
    732733
    733734
     
    738739
    739740       /*
    740         See the built-in function pow.  Returns NULL on failure.
    741         This is the equivalent of the Python expression:
    742         pow(o1,o2,o3), where o3 is optional.
     741    See the built-in function pow.  Returns NULL on failure.
     742    This is the equivalent of the Python expression:
     743    pow(o1,o2,o3), where o3 is optional.
    743744
    744745       */
     
    747748
    748749       /*
    749         Returns the negation of o on success, or null on failure.
    750         This is the equivalent of the Python expression: -o.
     750    Returns the negation of o on success, or null on failure.
     751    This is the equivalent of the Python expression: -o.
    751752
    752753       */
     
    755756
    756757       /*
    757          Returns the (what?) of o on success, or NULL on failure.
    758         This is the equivalent of the Python expression: +o.
     758     Returns the (what?) of o on success, or NULL on failure.
     759    This is the equivalent of the Python expression: +o.
    759760
    760761       */
     
    763764
    764765       /*
    765         Returns the absolute value of o, or null on failure.  This is
    766         the equivalent of the Python expression: abs(o).
     766    Returns the absolute value of o, or null on failure.  This is
     767    the equivalent of the Python expression: abs(o).
    767768
    768769       */
     
    771772
    772773       /*
    773         Returns the bitwise negation of o on success, or NULL on
    774         failure.  This is the equivalent of the Python expression:
    775         ~o.
     774    Returns the bitwise negation of o on success, or NULL on
     775    failure.  This is the equivalent of the Python expression:
     776    ~o.
    776777
    777778
     
    781782
    782783       /*
    783         Returns the result of left shifting o1 by o2 on success, or
    784         NULL on failure.  This is the equivalent of the Python
    785         expression: o1 << o2.
     784    Returns the result of left shifting o1 by o2 on success, or
     785    NULL on failure.  This is the equivalent of the Python
     786    expression: o1 << o2.
    786787
    787788
     
    791792
    792793       /*
    793         Returns the result of right shifting o1 by o2 on success, or
    794         NULL on failure.  This is the equivalent of the Python
    795         expression: o1 >> o2.
     794    Returns the result of right shifting o1 by o2 on success, or
     795    NULL on failure.  This is the equivalent of the Python
     796    expression: o1 >> o2.
    796797
    797798       */
     
    800801
    801802       /*
    802         Returns the result of bitwise and of o1 and o2 on success, or
    803         NULL on failure. This is the equivalent of the Python
    804         expression: o1&o2.
     803    Returns the result of bitwise and of o1 and o2 on success, or
     804    NULL on failure. This is the equivalent of the Python
     805    expression: o1&o2.
    805806
    806807
     
    810811
    811812       /*
    812         Returns the bitwise exclusive or of o1 by o2 on success, or
    813         NULL on failure.  This is the equivalent of the Python
    814         expression: o1^o2.
     813    Returns the bitwise exclusive or of o1 by o2 on success, or
     814    NULL on failure.  This is the equivalent of the Python
     815    expression: o1^o2.
    815816
    816817
     
    820821
    821822       /*
    822         Returns the result of bitwise or on o1 and o2 on success, or
    823         NULL on failure.  This is the equivalent of the Python
    824         expression: o1|o2.
     823    Returns the result of bitwise or on o1 and o2 on success, or
     824    NULL on failure.  This is the equivalent of the Python
     825    expression: o1|o2.
    825826
    826827       */
     
    830831     int PyNumber_Coerce(PyObject **p1, PyObject **p2);
    831832
    832         This function takes the addresses of two variables of type
    833         PyObject*.
    834 
    835         If the objects pointed to by *p1 and *p2 have the same type,
    836         increment their reference count and return 0 (success).
    837         If the objects can be converted to a common numeric type,
    838         replace *p1 and *p2 by their converted value (with 'new'
    839         reference counts), and return 0.
    840         If no conversion is possible, or if some other error occurs,
    841         return -1 (failure) and don't increment the reference counts.
    842         The call PyNumber_Coerce(&o1, &o2) is equivalent to the Python
    843         statement o1, o2 = coerce(o1, o2).
     833    This function takes the addresses of two variables of type
     834    PyObject*.
     835
     836    If the objects pointed to by *p1 and *p2 have the same type,
     837    increment their reference count and return 0 (success).
     838    If the objects can be converted to a common numeric type,
     839    replace *p1 and *p2 by their converted value (with 'new'
     840    reference counts), and return 0.
     841    If no conversion is possible, or if some other error occurs,
     842    return -1 (failure) and don't increment the reference counts.
     843    The call PyNumber_Coerce(&o1, &o2) is equivalent to the Python
     844    statement o1, o2 = coerce(o1, o2).
    844845
    845846       */
     
    849850    PyType_HasFeature((obj)->ob_type, Py_TPFLAGS_HAVE_INDEX) && \
    850851    (obj)->ob_type->tp_as_number->nb_index != NULL)
    851        
     852
    852853     PyAPI_FUNC(PyObject *) PyNumber_Index(PyObject *o);
    853854
    854855       /*
    855         Returns the object converted to a Python long or int
    856         or NULL with an error raised on failure.
     856    Returns the object converted to a Python long or int
     857    or NULL with an error raised on failure.
    857858       */
    858859
     
    860861
    861862       /*
    862          Returns the Integral instance converted to an int. The
    863          instance is expected to be int or long or have an __int__
    864          method. Steals integral's reference. error_format will be
    865          used to create the TypeError if integral isn't actually an
    866          Integral instance. error_format should be a format string
    867          that can accept a char* naming integral's type.
     863     Returns the Integral instance converted to an int. The
     864     instance is expected to be int or long or have an __int__
     865     method. Steals integral's reference. error_format will be
     866     used to create the TypeError if integral isn't actually an
     867     Integral instance. error_format should be a format string
     868     that can accept a char* naming integral's type.
    868869       */
    869870
    870871     PyAPI_FUNC(PyObject *) _PyNumber_ConvertIntegralToInt(
    871              PyObject *integral,
    872              const char* error_format);
    873 
    874        /*
    875         Returns the object converted to Py_ssize_t by going through
    876         PyNumber_Index first.  If an overflow error occurs while
    877         converting the int-or-long to Py_ssize_t, then the second argument
    878         is the error-type to return.  If it is NULL, then the overflow error
    879         is cleared and the value is clipped.
     872         PyObject *integral,
     873         const char* error_format);
     874
     875       /*
     876    Returns the object converted to Py_ssize_t by going through
     877    PyNumber_Index first.  If an overflow error occurs while
     878    converting the int-or-long to Py_ssize_t, then the second argument
     879    is the error-type to return.  If it is NULL, then the overflow error
     880    is cleared and the value is clipped.
    880881       */
    881882
     
    883884
    884885       /*
    885         Returns the o converted to an integer object on success, or
    886         NULL on failure.  This is the equivalent of the Python
    887         expression: int(o).
     886    Returns the o converted to an integer object on success, or
     887    NULL on failure.  This is the equivalent of the Python
     888    expression: int(o).
    888889
    889890       */
     
    892893
    893894       /*
    894         Returns the o converted to a long integer object on success,
    895         or NULL on failure.  This is the equivalent of the Python
    896         expression: long(o).
     895    Returns the o converted to a long integer object on success,
     896    or NULL on failure.  This is the equivalent of the Python
     897    expression: long(o).
    897898
    898899       */
     
    901902
    902903       /*
    903         Returns the o converted to a float object on success, or NULL
    904         on failure.  This is the equivalent of the Python expression:
    905         float(o).
    906        */
    907          
     904    Returns the o converted to a float object on success, or NULL
     905    on failure.  This is the equivalent of the Python expression:
     906    float(o).
     907       */
     908
    908909/*  In-place variants of (some of) the above number protocol functions */
    909910
     
    911912
    912913       /*
    913         Returns the result of adding o2 to o1, possibly in-place, or null
    914         on failure.  This is the equivalent of the Python expression:
    915         o1 += o2.
     914    Returns the result of adding o2 to o1, possibly in-place, or null
     915    on failure.  This is the equivalent of the Python expression:
     916    o1 += o2.
    916917
    917918       */
     
    920921
    921922       /*
    922         Returns the result of subtracting o2 from o1, possibly in-place or
    923         null on failure.  This is the equivalent of the Python expression:
    924         o1 -= o2.
     923    Returns the result of subtracting o2 from o1, possibly in-place or
     924    null on failure.  This is the equivalent of the Python expression:
     925    o1 -= o2.
    925926
    926927       */
     
    929930
    930931       /*
    931         Returns the result of multiplying o1 by o2, possibly in-place, or
    932         null on failure.  This is the equivalent of the Python expression:
    933         o1 *= o2.
     932    Returns the result of multiplying o1 by o2, possibly in-place, or
     933    null on failure.  This is the equivalent of the Python expression:
     934    o1 *= o2.
    934935
    935936       */
     
    938939
    939940       /*
    940         Returns the result of dividing o1 by o2, possibly in-place, or null
    941         on failure.  This is the equivalent of the Python expression:
    942         o1 /= o2.
     941    Returns the result of dividing o1 by o2, possibly in-place, or null
     942    on failure.  This is the equivalent of the Python expression:
     943    o1 /= o2.
    943944
    944945       */
    945946
    946947     PyAPI_FUNC(PyObject *) PyNumber_InPlaceFloorDivide(PyObject *o1,
    947                                                        PyObject *o2);
    948 
    949        /*
    950         Returns the result of dividing o1 by o2 giving an integral result,
    951         possibly in-place, or null on failure.
    952         This is the equivalent of the Python expression:
    953         o1 /= o2.
     948                                                       PyObject *o2);
     949
     950       /*
     951    Returns the result of dividing o1 by o2 giving an integral result,
     952    possibly in-place, or null on failure.
     953    This is the equivalent of the Python expression:
     954    o1 /= o2.
    954955
    955956       */
    956957
    957958     PyAPI_FUNC(PyObject *) PyNumber_InPlaceTrueDivide(PyObject *o1,
    958                                                       PyObject *o2);
    959 
    960        /*
    961         Returns the result of dividing o1 by o2 giving a float result,
    962         possibly in-place, or null on failure.
    963         This is the equivalent of the Python expression:
    964         o1 /= o2.
     959                                                      PyObject *o2);
     960
     961       /*
     962    Returns the result of dividing o1 by o2 giving a float result,
     963    possibly in-place, or null on failure.
     964    This is the equivalent of the Python expression:
     965    o1 /= o2.
    965966
    966967       */
     
    969970
    970971       /*
    971         Returns the remainder of dividing o1 by o2, possibly in-place, or
    972         null on failure.  This is the equivalent of the Python expression:
    973         o1 %= o2.
     972    Returns the remainder of dividing o1 by o2, possibly in-place, or
     973    null on failure.  This is the equivalent of the Python expression:
     974    o1 %= o2.
    974975
    975976       */
    976977
    977978     PyAPI_FUNC(PyObject *) PyNumber_InPlacePower(PyObject *o1, PyObject *o2,
    978                                                  PyObject *o3);
    979 
    980        /*
    981         Returns the result of raising o1 to the power of o2, possibly
    982         in-place, or null on failure.  This is the equivalent of the Python
    983         expression: o1 **= o2, or pow(o1, o2, o3) if o3 is present.
     979                                                 PyObject *o3);
     980
     981       /*
     982    Returns the result of raising o1 to the power of o2, possibly
     983    in-place, or null on failure.  This is the equivalent of the Python
     984    expression: o1 **= o2, or pow(o1, o2, o3) if o3 is present.
    984985
    985986       */
     
    988989
    989990       /*
    990         Returns the result of left shifting o1 by o2, possibly in-place, or
    991         null on failure.  This is the equivalent of the Python expression:
    992         o1 <<= o2.
     991    Returns the result of left shifting o1 by o2, possibly in-place, or
     992    null on failure.  This is the equivalent of the Python expression:
     993    o1 <<= o2.
    993994
    994995       */
     
    997998
    998999       /*
    999         Returns the result of right shifting o1 by o2, possibly in-place or
    1000         null on failure.  This is the equivalent of the Python expression:
    1001         o1 >>= o2.
     1000    Returns the result of right shifting o1 by o2, possibly in-place or
     1001    null on failure.  This is the equivalent of the Python expression:
     1002    o1 >>= o2.
    10021003
    10031004       */
     
    10061007
    10071008       /*
    1008         Returns the result of bitwise and of o1 and o2, possibly in-place,
    1009         or null on failure. This is the equivalent of the Python
    1010         expression: o1 &= o2.
     1009    Returns the result of bitwise and of o1 and o2, possibly in-place,
     1010    or null on failure. This is the equivalent of the Python
     1011    expression: o1 &= o2.
    10111012
    10121013       */
     
    10151016
    10161017       /*
    1017         Returns the bitwise exclusive or of o1 by o2, possibly in-place, or
    1018         null on failure.  This is the equivalent of the Python expression:
    1019         o1 ^= o2.
     1018    Returns the bitwise exclusive or of o1 by o2, possibly in-place, or
     1019    null on failure.  This is the equivalent of the Python expression:
     1020    o1 ^= o2.
    10201021
    10211022       */
     
    10241025
    10251026       /*
    1026         Returns the result of bitwise or of o1 and o2, possibly in-place,
    1027         or null on failure.  This is the equivalent of the Python
    1028         expression: o1 |= o2.
     1027    Returns the result of bitwise or of o1 and o2, possibly in-place,
     1028    or null on failure.  This is the equivalent of the Python
     1029    expression: o1 |= o2.
    10291030
    10301031       */
     
    10341035
    10351036       /*
    1036         Returns the integer n converted to a string with a base, with a base
    1037         marker of 0b, 0o or 0x prefixed if applicable.
    1038         If n is not an int object, it is converted with PyNumber_Index first.
     1037    Returns the integer n converted to a string with a base, with a base
     1038    marker of 0b, 0o or 0x prefixed if applicable.
     1039    If n is not an int object, it is converted with PyNumber_Index first.
    10391040       */
    10401041
     
    10451046
    10461047       /*
    1047          Return 1 if the object provides sequence protocol, and zero
    1048          otherwise. 
    1049 
    1050         This function always succeeds.
     1048     Return 1 if the object provides sequence protocol, and zero
     1049     otherwise.
     1050
     1051    This function always succeeds.
    10511052
    10521053       */
     
    10551056
    10561057       /*
    1057          Return the size of sequence object o, or -1 on failure.
     1058     Return the size of sequence object o, or -1 on failure.
    10581059
    10591060       */
     
    10681069
    10691070       /*
    1070         Return the concatenation of o1 and o2 on success, and NULL on
    1071         failure.   This is the equivalent of the Python
    1072         expression: o1+o2.
     1071    Return the concatenation of o1 and o2 on success, and NULL on
     1072    failure.   This is the equivalent of the Python
     1073    expression: o1+o2.
    10731074
    10741075       */
     
    10771078
    10781079       /*
    1079         Return the result of repeating sequence object o count times,
    1080         or NULL on failure.  This is the equivalent of the Python
    1081         expression: o1*count.
     1080    Return the result of repeating sequence object o count times,
     1081    or NULL on failure.  This is the equivalent of the Python
     1082    expression: o1*count.
    10821083
    10831084       */
     
    10861087
    10871088       /*
    1088         Return the ith element of o, or NULL on failure. This is the
    1089         equivalent of the Python expression: o[i].
     1089    Return the ith element of o, or NULL on failure. This is the
     1090    equivalent of the Python expression: o[i].
    10901091       */
    10911092
     
    10931094
    10941095       /*
    1095         Return the slice of sequence object o between i1 and i2, or
    1096         NULL on failure. This is the equivalent of the Python
    1097         expression: o[i1:i2].
     1096    Return the slice of sequence object o between i1 and i2, or
     1097    NULL on failure. This is the equivalent of the Python
     1098    expression: o[i1:i2].
    10981099
    10991100       */
     
    11021103
    11031104       /*
    1104         Assign object v to the ith element of o.  Returns
    1105         -1 on failure.  This is the equivalent of the Python
    1106         statement: o[i]=v.
     1105    Assign object v to the ith element of o.  Returns
     1106    -1 on failure.  This is the equivalent of the Python
     1107    statement: o[i]=v.
    11071108
    11081109       */
     
    11111112
    11121113       /*
    1113         Delete the ith element of object v.  Returns
    1114         -1 on failure.  This is the equivalent of the Python
    1115         statement: del o[i].
     1114    Delete the ith element of object v.  Returns
     1115    -1 on failure.  This is the equivalent of the Python
     1116    statement: del o[i].
    11161117       */
    11171118
     
    11201121
    11211122       /*
    1122          Assign the sequence object, v, to the slice in sequence
    1123         object, o, from i1 to i2.  Returns -1 on failure. This is the
    1124         equivalent of the Python statement: o[i1:i2]=v.
     1123     Assign the sequence object, v, to the slice in sequence
     1124    object, o, from i1 to i2.  Returns -1 on failure. This is the
     1125    equivalent of the Python statement: o[i1:i2]=v.
    11251126       */
    11261127
     
    11281129
    11291130       /*
    1130         Delete the slice in sequence object, o, from i1 to i2.
    1131         Returns -1 on failure. This is the equivalent of the Python
    1132         statement: del o[i1:i2].
     1131    Delete the slice in sequence object, o, from i1 to i2.
     1132    Returns -1 on failure. This is the equivalent of the Python
     1133    statement: del o[i1:i2].
    11331134       */
    11341135
     
    11361137
    11371138       /*
    1138         Returns the sequence, o, as a tuple on success, and NULL on failure.
    1139         This is equivalent to the Python expression: tuple(o)
     1139    Returns the sequence, o, as a tuple on success, and NULL on failure.
     1140    This is equivalent to the Python expression: tuple(o)
    11401141       */
    11411142
     
    11431144     PyAPI_FUNC(PyObject *) PySequence_List(PyObject *o);
    11441145       /*
    1145         Returns the sequence, o, as a list on success, and NULL on failure.
    1146         This is equivalent to the Python expression: list(o)
     1146    Returns the sequence, o, as a list on success, and NULL on failure.
     1147    This is equivalent to the Python expression: list(o)
    11471148       */
    11481149
    11491150     PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m);
    11501151       /*
    1151          Returns the sequence, o, as a tuple, unless it's already a
    1152          tuple or list.  Use PySequence_Fast_GET_ITEM to access the
    1153          members of this list, and PySequence_Fast_GET_SIZE to get its length.
    1154 
    1155          Returns NULL on failure.  If the object does not support iteration,
    1156          raises a TypeError exception with m as the message text.
     1152     Returns the sequence, o, as a tuple, unless it's already a
     1153     tuple or list.  Use PySequence_Fast_GET_ITEM to access the
     1154     members of this list, and PySequence_Fast_GET_SIZE to get its length.
     1155
     1156     Returns NULL on failure.  If the object does not support iteration,
     1157     raises a TypeError exception with m as the message text.
    11571158       */
    11581159
    11591160#define PySequence_Fast_GET_SIZE(o) \
    1160         (PyList_Check(o) ? PyList_GET_SIZE(o) : PyTuple_GET_SIZE(o))
    1161        /*
    1162         Return the size of o, assuming that o was returned by
    1163          PySequence_Fast and is not NULL.
     1161    (PyList_Check(o) ? PyList_GET_SIZE(o) : PyTuple_GET_SIZE(o))
     1162       /*
     1163    Return the size of o, assuming that o was returned by
     1164     PySequence_Fast and is not NULL.
    11641165       */
    11651166
     
    11671168     (PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i))
    11681169       /*
    1169         Return the ith element of o, assuming that o was returned by
    1170          PySequence_Fast, and that i is within bounds.
     1170    Return the ith element of o, assuming that o was returned by
     1171     PySequence_Fast, and that i is within bounds.
    11711172       */
    11721173
    11731174#define PySequence_ITEM(o, i)\
    1174         ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) )
     1175    ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) )
    11751176       /* Assume tp_as_sequence and sq_item exist and that i does not
    1176           need to be corrected for a negative index
    1177        */     
     1177      need to be corrected for a negative index
     1178       */
    11781179
    11791180#define PySequence_Fast_ITEMS(sf) \
    1180         (PyList_Check(sf) ? ((PyListObject *)(sf))->ob_item \
    1181                           : ((PyTupleObject *)(sf))->ob_item)
    1182         /* Return a pointer to the underlying item array for
    1183            an object retured by PySequence_Fast */
     1181    (PyList_Check(sf) ? ((PyListObject *)(sf))->ob_item \
     1182                      : ((PyTupleObject *)(sf))->ob_item)
     1183    /* Return a pointer to the underlying item array for
     1184       an object retured by PySequence_Fast */
    11841185
    11851186     PyAPI_FUNC(Py_ssize_t) PySequence_Count(PyObject *o, PyObject *value);
    11861187
    11871188       /*
    1188          Return the number of occurrences on value on o, that is,
    1189         return the number of keys for which o[key]==value.  On
    1190         failure, return -1.  This is equivalent to the Python
    1191         expression: o.count(value).
     1189     Return the number of occurrences on value on o, that is,
     1190    return the number of keys for which o[key]==value.  On
     1191    failure, return -1.  This is equivalent to the Python
     1192    expression: o.count(value).
    11921193       */
    11931194
    11941195     PyAPI_FUNC(int) PySequence_Contains(PyObject *seq, PyObject *ob);
    11951196       /*
    1196          Return -1 if error; 1 if ob in seq; 0 if ob not in seq.
    1197          Use __contains__ if possible, else _PySequence_IterSearch().
     1197     Return -1 if error; 1 if ob in seq; 0 if ob not in seq.
     1198     Use __contains__ if possible, else _PySequence_IterSearch().
    11981199       */
    11991200
     
    12021203#define PY_ITERSEARCH_CONTAINS 3
    12031204     PyAPI_FUNC(Py_ssize_t) _PySequence_IterSearch(PyObject *seq,
    1204                                         PyObject *obj, int operation);
    1205         /*
    1206           Iterate over seq.  Result depends on the operation:
    1207           PY_ITERSEARCH_COUNT:  return # of times obj appears in seq; -1 if
    1208                 error.
    1209           PY_ITERSEARCH_INDEX:  return 0-based index of first occurrence of
    1210                 obj in seq; set ValueError and return -1 if none found;
    1211                 also return -1 on error.
    1212           PY_ITERSEARCH_CONTAINS:  return 1 if obj in seq, else 0; -1 on
    1213                 error.
    1214         */
     1205                                        PyObject *obj, int operation);
     1206    /*
     1207      Iterate over seq.  Result depends on the operation:
     1208      PY_ITERSEARCH_COUNT:  return # of times obj appears in seq; -1 if
     1209        error.
     1210      PY_ITERSEARCH_INDEX:  return 0-based index of first occurrence of
     1211        obj in seq; set ValueError and return -1 if none found;
     1212        also return -1 on error.
     1213      PY_ITERSEARCH_CONTAINS:  return 1 if obj in seq, else 0; -1 on
     1214        error.
     1215    */
    12151216
    12161217/* For DLL-level backwards compatibility */
     
    12221223
    12231224       /*
    1224         Determine if o contains value.  If an item in o is equal to
    1225         X, return 1, otherwise return 0.  On error, return -1.  This
    1226         is equivalent to the Python expression: value in o.
     1225    Determine if o contains value.  If an item in o is equal to
     1226    X, return 1, otherwise return 0.  On error, return -1.  This
     1227    is equivalent to the Python expression: value in o.
    12271228       */
    12281229
     
    12301231
    12311232       /*
    1232         Return the first index for which o[i]=value.  On error,
    1233         return -1.    This is equivalent to the Python
    1234         expression: o.index(value).
     1233    Return the first index for which o[i]=value.  On error,
     1234    return -1.    This is equivalent to the Python
     1235    expression: o.index(value).
    12351236       */
    12361237
     
    12401241
    12411242       /*
    1242         Append o2 to o1, in-place when possible. Return the resulting
    1243         object, which could be o1, or NULL on failure.  This is the
    1244         equivalent of the Python expression: o1 += o2.
     1243    Append o2 to o1, in-place when possible. Return the resulting
     1244    object, which could be o1, or NULL on failure.  This is the
     1245    equivalent of the Python expression: o1 += o2.
    12451246
    12461247       */
     
    12491250
    12501251       /*
    1251         Repeat o1 by count, in-place when possible. Return the resulting
    1252         object, which could be o1, or NULL on failure.  This is the
    1253         equivalent of the Python expression: o1 *= count.
     1252    Repeat o1 by count, in-place when possible. Return the resulting
     1253    object, which could be o1, or NULL on failure.  This is the
     1254    equivalent of the Python expression: o1 *= count.
    12541255
    12551256       */
     
    12601261
    12611262       /*
    1262          Return 1 if the object provides mapping protocol, and zero
    1263          otherwise. 
    1264 
    1265         This function always succeeds.
     1263     Return 1 if the object provides mapping protocol, and zero
     1264     otherwise.
     1265
     1266    This function always succeeds.
    12661267       */
    12671268
     
    12691270
    12701271       /*
    1271          Returns the number of keys in object o on success, and -1 on
    1272         failure.  For objects that do not provide sequence protocol,
    1273         this is equivalent to the Python expression: len(o).
     1272     Returns the number of keys in object o on success, and -1 on
     1273    failure.  For objects that do not provide sequence protocol,
     1274    this is equivalent to the Python expression: len(o).
    12741275       */
    12751276
     
    12841285     int PyMapping_DelItemString(PyObject *o, char *key);
    12851286
    1286         Remove the mapping for object, key, from the object *o.
    1287         Returns -1 on failure.  This is equivalent to
    1288         the Python statement: del o[key].
     1287    Remove the mapping for object, key, from the object *o.
     1288    Returns -1 on failure.  This is equivalent to
     1289    the Python statement: del o[key].
    12891290       */
    12901291#define PyMapping_DelItemString(O,K) PyObject_DelItemString((O),(K))
     
    12941295     int PyMapping_DelItem(PyObject *o, PyObject *key);
    12951296
    1296         Remove the mapping for object, key, from the object *o.
    1297         Returns -1 on failure.  This is equivalent to
    1298         the Python statement: del o[key].
     1297    Remove the mapping for object, key, from the object *o.
     1298    Returns -1 on failure.  This is equivalent to
     1299    the Python statement: del o[key].
    12991300       */
    13001301#define PyMapping_DelItem(O,K) PyObject_DelItem((O),(K))
     
    13031304
    13041305       /*
    1305         On success, return 1 if the mapping object has the key, key,
    1306         and 0 otherwise.  This is equivalent to the Python expression:
    1307          o.has_key(key).
    1308 
    1309         This function always succeeds.
     1306    On success, return 1 if the mapping object has the key, key,
     1307    and 0 otherwise.  This is equivalent to the Python expression:
     1308     o.has_key(key).
     1309
     1310    This function always succeeds.
    13101311       */
    13111312
     
    13131314
    13141315       /*
    1315         Return 1 if the mapping object has the key, key,
    1316         and 0 otherwise.  This is equivalent to the Python expression:
    1317          o.has_key(key).
    1318 
    1319         This function always succeeds.
     1316    Return 1 if the mapping object has the key, key,
     1317    and 0 otherwise.  This is equivalent to the Python expression:
     1318     o.has_key(key).
     1319
     1320    This function always succeeds.
    13201321
    13211322       */
     
    13251326     PyObject *PyMapping_Keys(PyObject *o);
    13261327
    1327          On success, return a list of the keys in object o.  On
    1328         failure, return NULL. This is equivalent to the Python
    1329         expression: o.keys().
     1328     On success, return a list of the keys in object o.  On
     1329    failure, return NULL. This is equivalent to the Python
     1330    expression: o.keys().
    13301331       */
    13311332#define PyMapping_Keys(O) PyObject_CallMethod(O,"keys",NULL)
     
    13351336     PyObject *PyMapping_Values(PyObject *o);
    13361337
    1337          On success, return a list of the values in object o.  On
    1338         failure, return NULL. This is equivalent to the Python
    1339         expression: o.values().
     1338     On success, return a list of the values in object o.  On
     1339    failure, return NULL. This is equivalent to the Python
     1340    expression: o.values().
    13401341       */
    13411342#define PyMapping_Values(O) PyObject_CallMethod(O,"values",NULL)
     
    13451346     PyObject *PyMapping_Items(PyObject *o);
    13461347
    1347          On success, return a list of the items in object o, where
    1348         each item is a tuple containing a key-value pair.  On
    1349         failure, return NULL. This is equivalent to the Python
    1350         expression: o.items().
     1348     On success, return a list of the items in object o, where
     1349    each item is a tuple containing a key-value pair.  On
     1350    failure, return NULL. This is equivalent to the Python
     1351    expression: o.items().
    13511352
    13521353       */
     
    13561357
    13571358       /*
    1358         Return element of o corresponding to the object, key, or NULL
    1359         on failure. This is the equivalent of the Python expression:
    1360         o[key].
     1359    Return element of o corresponding to the object, key, or NULL
     1360    on failure. This is the equivalent of the Python expression:
     1361    o[key].
    13611362       */
    13621363
     
    13651366
    13661367       /*
    1367          Map the object, key, to the value, v.  Returns
    1368         -1 on failure.  This is the equivalent of the Python
    1369         statement: o[key]=v.
     1368     Map the object, key, to the value, v.  Returns
     1369    -1 on failure.  This is the equivalent of the Python
     1370    statement: o[key]=v.
    13701371      */
    13711372
     
    13811382
    13821383PyAPI_FUNC(int) _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls);
     1384
     1385
     1386/* For internal use by buffer API functions */
     1387PyAPI_FUNC(void) _Py_add_one_to_index_F(int nd, Py_ssize_t *index,
     1388                                        const Py_ssize_t *shape);
     1389PyAPI_FUNC(void) _Py_add_one_to_index_C(int nd, Py_ssize_t *index,
     1390                                        const Py_ssize_t *shape);
    13831391
    13841392
Note: See TracChangeset for help on using the changeset viewer.