
Concrete Objects Layer
**********************

The functions in this chapter are specific to certain Python object
types. Passing them an object of the wrong type is not a good idea; if
you receive an object from a Python program and you are not sure that
it has the right type, you must perform a type check first; for
example, to check that an object is a dictionary, use
``PyDict_Check()``.  The chapter is structured like the "family tree"
of Python object types.

Warning: While the functions described in this chapter carefully check the
  type of the objects which are passed in, many of them do not check
  for *NULL* being passed instead of a valid object.  Allowing *NULL*
  to be passed in can cause memory access violations and immediate
  termination of the interpreter.


Fundamental Objects
===================

This section describes Python type objects and the singleton object
``None``.

* Type Objects
* The None Object

Numeric Objects
===============

* Plain Integer Objects
* Boolean Objects
* Long Integer Objects
* Floating Point Objects
* Complex Number Objects
  * Complex Numbers as C Structures
  * Complex Numbers as Python Objects

Sequence Objects
================

Generic operations on sequence objects were discussed in the previous
chapter; this section deals with the specific kinds of sequence
objects that are intrinsic to the Python language.

* Byte Array Objects
  * Type check macros
  * Direct API functions
  * Macros
* String/Bytes Objects
* Unicode Objects and Codecs
  * Unicode Objects
    * Unicode Type
    * Unicode Character Properties
    * Plain Py_UNICODE
    * wchar_t Support
  * Built-in Codecs
    * Generic Codecs
    * UTF-8 Codecs
    * UTF-32 Codecs
    * UTF-16 Codecs
    * UTF-7 Codecs
    * Unicode-Escape Codecs
    * Raw-Unicode-Escape Codecs
    * Latin-1 Codecs
    * ASCII Codecs
    * Character Map Codecs
    * MBCS codecs for Windows
    * Methods & Slots
  * Methods and Slot Functions
* Buffer Objects
  * The new-style Py_buffer struct
  * Buffer related functions
  * Old-style buffer objects
* Tuple Objects
* List Objects

Mapping Objects
===============

* Dictionary Objects

Other Objects
=============

* Class and Instance Objects
* Function Objects
* Method Objects
* File Objects
* Module Objects
* Iterator Objects
* Descriptor Objects
* Slice Objects
* Weak Reference Objects
* CObjects
* Cell Objects
* Generator Objects
* DateTime Objects
* Set Objects