
Data Types
**********

The modules described in this chapter provide a variety of specialized
data types such as dates and times, fixed-type arrays, heap queues,
synchronized queues, and sets.

Python also provides some built-in data types, in particular,
``dict``, ``list``, ``set`` (which along with ``frozenset``, replaces
the deprecated ``sets`` module), and ``tuple``. The ``str`` class can
be used to handle binary data and 8-bit text, and the ``unicode``
class to handle Unicode text.

The following modules are documented in this chapter:

* ``datetime`` --- Basic date and time types
  * Available Types
  * ``timedelta`` Objects
  * ``date`` Objects
  * ``datetime`` Objects
  * ``time`` Objects
  * ``tzinfo`` Objects
  * ``strftime()`` and ``strptime()`` Behavior
* ``calendar`` --- General calendar-related functions
* ``collections`` --- High-performance container datatypes
  * ABCs - abstract base classes
  * ``deque`` objects
    * ``deque`` Recipes
  * ``defaultdict`` objects
    * ``defaultdict`` Examples
  * ``namedtuple()`` Factory Function for Tuples with Named Fields
* ``heapq`` --- Heap queue algorithm
  * Theory
* ``bisect`` --- Array bisection algorithm
  * Examples
* ``array`` --- Efficient arrays of numeric values
* ``sets`` --- Unordered collections of unique elements
  * Set Objects
  * Example
  * Protocol for automatic conversion to immutable
  * Comparison to the built-in ``set`` types
* ``sched`` --- Event scheduler
  * Scheduler Objects
* ``mutex`` --- Mutual exclusion support
  * Mutex Objects
* ``queue`` --- A synchronized queue class
  * Queue Objects
* ``weakref`` --- Weak references
  * Weak Reference Objects
  * Example
* ``UserDict`` --- Class wrapper for dictionary objects
* ``UserList`` --- Class wrapper for list objects
* ``UserString`` --- Class wrapper for string objects
* ``types`` --- Names for built-in types
* ``new`` --- Creation of runtime internal objects
* ``copy`` --- Shallow and deep copy operations
* ``pprint`` --- Data pretty printer
  * PrettyPrinter Objects
  * pprint Example
* ``repr`` --- Alternate ``repr()`` implementation
  * Repr Objects
  * Subclassing Repr Objects