Abstract Objects Layer
**********************

The functions in this chapter interact with Python objects regardless
of their type, or with wide classes of object types (e.g. all
numerical types, or all sequence types).  When used on object types
for which they do not apply, they will raise a Python exception.

It is not possible to use these functions on objects that are not
properly initialized, such as a list object that has been created by
"PyList_New()", but whose items have not been set to some non-"NULL"
value yet.

* Object Protocol

* Number Protocol

* Sequence Protocol

* Mapping Protocol

* Iterator Protocol

* Buffer Protocol

  * Buffer structure

  * Buffer request types

    * request-independent fields

    * readonly, format

    * shape, strides, suboffsets

    * contiguity requests

    * compound requests

  * Complex arrays

    * NumPy-style: shape and strides

    * PIL-style: shape, strides and suboffsets

  * Buffer-related functions

* Old Buffer Protocol
