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

  * Creating Heap-Allocated Types

* The "None" Object


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

* Integer Objects

* Boolean 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.

* Bytes Objects

* Byte Array Objects

  * Type check macros

  * Direct API functions

  * Macros

* Unicode Objects and Codecs

  * Unicode Objects

    * Unicode Type

    * Unicode Character Properties

    * Creating and accessing Unicode strings

    * Deprecated Py_UNICODE APIs

    * Locale Encoding

    * File System Encoding

    * 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

* Tuple Objects

* Struct Sequence Objects

* List Objects


Container Objects
=================

* Dictionary Objects

* Set Objects


Function Objects
================

* Function Objects

* Instance Method Objects

* Method Objects

* Cell Objects

* Code Objects


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

* File Objects

* Module Objects

  * Initializing C modules

    * Single-phase initialization

    * Multi-phase initialization

    * Low-level module creation functions

    * Support functions

  * Module lookup

* Iterator Objects

* Descriptor Objects

* Slice Objects

* Ellipsis Object

* MemoryView objects

* Weak Reference Objects

* Capsules

* Generator Objects

* Coroutine Objects

* Context Variables Objects

* DateTime Objects

* Objects for Type Hinting
