8. 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:

* 8.1. "datetime" — Basic date and time types

  * 8.1.1. Available Types

  * 8.1.2. "timedelta" Objects

  * 8.1.3. "date" Objects

  * 8.1.4. "datetime" Objects

  * 8.1.5. "time" Objects

  * 8.1.6. "tzinfo" Objects

  * 8.1.7. "strftime()" and "strptime()" Behavior

* 8.2. "calendar" — General calendar-related functions

* 8.3. "collections" — High-performance container datatypes

  * 8.3.1. "Counter" objects

  * 8.3.2. "deque" objects

    * 8.3.2.1. "deque" Recipes

  * 8.3.3. "defaultdict" objects

    * 8.3.3.1. "defaultdict" Examples

  * 8.3.4. "namedtuple()" Factory Function for Tuples with Named
    Fields

  * 8.3.5. "OrderedDict" objects

    * 8.3.5.1. "OrderedDict" Examples and Recipes

  * 8.3.6. Collections Abstract Base Classes

* 8.4. "heapq" — Heap queue algorithm

  * 8.4.1. Basic Examples

  * 8.4.2. Priority Queue Implementation Notes

  * 8.4.3. Theory

* 8.5. "bisect" — Array bisection algorithm

  * 8.5.1. Searching Sorted Lists

  * 8.5.2. Other Examples

* 8.6. "array" — Efficient arrays of numeric values

* 8.7. "sets" — Unordered collections of unique elements

  * 8.7.1. Set Objects

  * 8.7.2. Example

  * 8.7.3. Protocol for automatic conversion to immutable

  * 8.7.4. Comparison to the built-in "set" types

* 8.8. "sched" — Event scheduler

  * 8.8.1. Scheduler Objects

* 8.9. "mutex" — Mutual exclusion support

  * 8.9.1. Mutex Objects

* 8.10. "Queue" — A synchronized queue class

  * 8.10.1. Queue Objects

* 8.11. "weakref" — Weak references

  * 8.11.1. Weak Reference Objects

  * 8.11.2. Example

* 8.12. "UserDict" — Class wrapper for dictionary objects

* 8.13. "UserList" — Class wrapper for list objects

* 8.14. "UserString" — Class wrapper for string objects

* 8.15. "types" — Names for built-in types

* 8.16. "new" — Creation of runtime internal objects

* 8.17. "copy" — Shallow and deep copy operations

* 8.18. "pprint" — Data pretty printer

  * 8.18.1. PrettyPrinter Objects

  * 8.18.2. pprint Example

* 8.19. "repr" — Alternate "repr()" implementation

  * 8.19.1. Repr Objects

  * 8.19.2. Subclassing Repr Objects
