Python Documentation contents¶
- What’s New in Python
- What’s New in Python 2.7
- The Future for Python 2.x
 - Changes to the Handling of Deprecation Warnings
 - Post-EOS fixes
 - Python 3.1 Features
 - PEP 372: Adding an Ordered Dictionary to collections
 - PEP 378: Format Specifier for Thousands Separator
 - PEP 389: The argparse Module for Parsing Command Lines
 - PEP 391: Dictionary-Based Configuration For Logging
 - PEP 3106: Dictionary Views
 - PEP 3137: The memoryview Object
 - Other Language Changes
 - New and Improved Modules
 - Build and C API Changes
 - Other Changes and Fixes
 - Porting to Python 2.7
 - New Features Added to Python 2.7 Maintenance Releases
- Two new environment variables for debug mode
 - PEP 434: IDLE Enhancement Exception for All Branches
 - PEP 466: Network Security Enhancements for Python 2.7
 - PEP 477: Backport ensurepip (PEP 453) to Python 2.7
 - PEP 476: Enabling certificate verification by default for stdlib http clients
 - PEP 493: HTTPS verification migration tools for Python 2.7
 - New 
make regen-allbuild target - Removal of 
make touchbuild target 
 - Acknowledgements
 
 - What’s New in Python 2.6
- Python 3.0
 - Changes to the Development Process
 - PEP 343: The ‘with’ statement
 - PEP 366: Explicit Relative Imports From a Main Module
 - PEP 370: Per-user 
site-packagesDirectory - PEP 371: The 
multiprocessingPackage - PEP 3101: Advanced String Formatting
 - PEP 3105: 
printAs a Function - PEP 3110: Exception-Handling Changes
 - PEP 3112: Byte Literals
 - PEP 3116: New I/O Library
 - PEP 3118: Revised Buffer Protocol
 - PEP 3119: Abstract Base Classes
 - PEP 3127: Integer Literal Support and Syntax
 - PEP 3129: Class Decorators
 - PEP 3141: A Type Hierarchy for Numbers
 - Other Language Changes
 - New and Improved Modules
 - Deprecations and Removals
 - Build and C API Changes
 - Porting to Python 2.6
 - Acknowledgements
 
 - What’s New in Python 2.5
- PEP 308: Conditional Expressions
 - PEP 309: Partial Function Application
 - PEP 314: Metadata for Python Software Packages v1.1
 - PEP 328: Absolute and Relative Imports
 - PEP 338: Executing Modules as Scripts
 - PEP 341: Unified try/except/finally
 - PEP 342: New Generator Features
 - PEP 343: The ‘with’ statement
 - PEP 352: Exceptions as New-Style Classes
 - PEP 353: Using ssize_t as the index type
 - PEP 357: The ‘__index__’ method
 - Other Language Changes
 - New, Improved, and Removed Modules
 - Build and C API Changes
 - Porting to Python 2.5
 - Acknowledgements
 
 - What’s New in Python 2.4
- PEP 218: Built-In Set Objects
 - PEP 237: Unifying Long Integers and Integers
 - PEP 289: Generator Expressions
 - PEP 292: Simpler String Substitutions
 - PEP 318: Decorators for Functions and Methods
 - PEP 322: Reverse Iteration
 - PEP 324: New subprocess Module
 - PEP 327: Decimal Data Type
 - PEP 328: Multi-line Imports
 - PEP 331: Locale-Independent Float/String Conversions
 - Other Language Changes
 - New, Improved, and Deprecated Modules
 - Build and C API Changes
 - Porting to Python 2.4
 - Acknowledgements
 
 - What’s New in Python 2.3
- PEP 218: A Standard Set Datatype
 - PEP 255: Simple Generators
 - PEP 263: Source Code Encodings
 - PEP 273: Importing Modules from ZIP Archives
 - PEP 277: Unicode file name support for Windows NT
 - PEP 278: Universal Newline Support
 - PEP 279: enumerate()
 - PEP 282: The logging Package
 - PEP 285: A Boolean Type
 - PEP 293: Codec Error Handling Callbacks
 - PEP 301: Package Index and Metadata for Distutils
 - PEP 302: New Import Hooks
 - PEP 305: Comma-separated Files
 - PEP 307: Pickle Enhancements
 - Extended Slices
 - Other Language Changes
 - New, Improved, and Deprecated Modules
 - Pymalloc: A Specialized Object Allocator
 - Build and C API Changes
 - Other Changes and Fixes
 - Porting to Python 2.3
 - Acknowledgements
 
 - What’s New in Python 2.2
- Introduction
 - PEPs 252 and 253: Type and Class Changes
 - PEP 234: Iterators
 - PEP 255: Simple Generators
 - PEP 237: Unifying Long Integers and Integers
 - PEP 238: Changing the Division Operator
 - Unicode Changes
 - PEP 227: Nested Scopes
 - New and Improved Modules
 - Interpreter Changes and Fixes
 - Other Changes and Fixes
 - Acknowledgements
 
 - What’s New in Python 2.1
- Introduction
 - PEP 227: Nested Scopes
 - PEP 236: __future__ Directives
 - PEP 207: Rich Comparisons
 - PEP 230: Warning Framework
 - PEP 229: New Build System
 - PEP 205: Weak References
 - PEP 232: Function Attributes
 - PEP 235: Importing Modules on Case-Insensitive Platforms
 - PEP 217: Interactive Display Hook
 - PEP 208: New Coercion Model
 - PEP 241: Metadata in Python Packages
 - New and Improved Modules
 - Other Changes and Fixes
 - Acknowledgements
 
 - What’s New in Python 2.0
- Introduction
 - What About Python 1.6?
 - New Development Process
 - Unicode
 - List Comprehensions
 - Augmented Assignment
 - String Methods
 - Garbage Collection of Cycles
 - Other Core Changes
 - Porting to 2.0
 - Extending/Embedding Changes
 - Distutils: Making Modules Easy to Install
 - XML Modules
 - Module changes
 - New modules
 - IDLE Improvements
 - Deleted and Deprecated Modules
 - Acknowledgements
 
 
 - What’s New in Python 2.7
 - The Python Tutorial
- 1. Whetting Your Appetite
 - 2. Using the Python Interpreter
 - 3. An Informal Introduction to Python
 - 4. More Control Flow Tools
 - 5. Data Structures
 - 6. Modules
 - 7. Input and Output
 - 8. Errors and Exceptions
 - 9. Classes
 - 10. Brief Tour of the Standard Library
- 10.1. Operating System Interface
 - 10.2. File Wildcards
 - 10.3. Command Line Arguments
 - 10.4. Error Output Redirection and Program Termination
 - 10.5. String Pattern Matching
 - 10.6. Mathematics
 - 10.7. Internet Access
 - 10.8. Dates and Times
 - 10.9. Data Compression
 - 10.10. Performance Measurement
 - 10.11. Quality Control
 - 10.12. Batteries Included
 
 - 11. Brief Tour of the Standard Library — Part II
 - 12. What Now?
 - 13. Interactive Input Editing and History Substitution
 - 14. Floating Point Arithmetic: Issues and Limitations
 - 15. Appendix
 
 - Python Setup and Usage
 - The Python Language Reference
- 1. Introduction
 - 2. Lexical analysis
 - 3. Data model
- 3.1. Objects, values and types
 - 3.2. The standard type hierarchy
 - 3.3. New-style and classic classes
 - 3.4. Special method names
- 3.4.1. Basic customization
 - 3.4.2. Customizing attribute access
 - 3.4.3. Customizing class creation
 - 3.4.4. Customizing instance and subclass checks
 - 3.4.5. Emulating callable objects
 - 3.4.6. Emulating container types
 - 3.4.7. Additional methods for emulation of sequence types
 - 3.4.8. Emulating numeric types
 - 3.4.9. Coercion rules
 - 3.4.10. With Statement Context Managers
 - 3.4.11. Special method lookup for old-style classes
 - 3.4.12. Special method lookup for new-style classes
 
 
 - 4. Execution model
 - 5. Expressions
- 5.1. Arithmetic conversions
 - 5.2. Atoms
 - 5.3. Primaries
 - 5.4. The power operator
 - 5.5. Unary arithmetic and bitwise operations
 - 5.6. Binary arithmetic operations
 - 5.7. Shifting operations
 - 5.8. Binary bitwise operations
 - 5.9. Comparisons
 - 5.10. Boolean operations
 - 5.11. Conditional Expressions
 - 5.12. Lambdas
 - 5.13. Expression lists
 - 5.14. Evaluation order
 - 5.15. Operator precedence
 
 - 6. Simple statements
- 6.1. Expression statements
 - 6.2. Assignment statements
 - 6.3. The 
assertstatement - 6.4. The 
passstatement - 6.5. The 
delstatement - 6.6. The 
printstatement - 6.7. The 
returnstatement - 6.8. The 
yieldstatement - 6.9. The 
raisestatement - 6.10. The 
breakstatement - 6.11. The 
continuestatement - 6.12. The 
importstatement - 6.13. The 
globalstatement - 6.14. The 
execstatement 
 - 7. Compound statements
 - 8. Top-level components
 - 9. Full Grammar specification
 
 - The Python Standard Library
- 1. Introduction
 - 2. Built-in Functions
 - 3. Non-essential Built-in Functions
 - 4. Built-in Constants
 - 5. Built-in Types
- 5.1. Truth Value Testing
 - 5.2. Boolean Operations — 
and,or,not - 5.3. Comparisons
 - 5.4. Numeric Types — 
int,float,long,complex - 5.5. Iterator Types
 - 5.6. Sequence Types — 
str,unicode,list,tuple,bytearray,buffer,xrange - 5.7. Set Types — 
set,frozenset - 5.8. Mapping Types — 
dict - 5.9. File Objects
 - 5.10. memoryview type
 - 5.11. Context Manager Types
 - 5.12. Other Built-in Types
 - 5.13. Special Attributes
 
 - 6. Built-in Exceptions
 - 7. String Services
- 7.1. 
string— Common string operations - 7.2. 
re— Regular expression operations - 7.3. 
struct— Interpret strings as packed binary data - 7.4. 
difflib— Helpers for computing deltas - 7.5. 
StringIO— Read and write strings as files - 7.6. 
cStringIO— Faster version ofStringIO - 7.7. 
textwrap— Text wrapping and filling - 7.8. 
codecs— Codec registry and base classes - 7.9. 
unicodedata— Unicode Database - 7.10. 
stringprep— Internet String Preparation - 7.11. 
fpformat— Floating point conversions 
 - 7.1. 
 - 8. Data Types
- 8.1. 
datetime— Basic date and time types - 8.2. 
calendar— General calendar-related functions - 8.3. 
collections— High-performance container datatypes - 8.4. 
heapq— Heap queue algorithm - 8.5. 
bisect— Array bisection algorithm - 8.6. 
array— Efficient arrays of numeric values - 8.7. 
sets— Unordered collections of unique elements - 8.8. 
sched— Event scheduler - 8.9. 
mutex— Mutual exclusion support - 8.10. 
Queue— A synchronized queue class - 8.11. 
weakref— Weak references - 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.19. 
repr— Alternaterepr()implementation 
 - 8.1. 
 - 9. Numeric and Mathematical Modules
- 9.1. 
numbers— Numeric abstract base classes - 9.2. 
math— Mathematical functions - 9.3. 
cmath— Mathematical functions for complex numbers - 9.4. 
decimal— Decimal fixed point and floating point arithmetic - 9.5. 
fractions— Rational numbers - 9.6. 
random— Generate pseudo-random numbers - 9.7. 
itertools— Functions creating iterators for efficient looping - 9.8. 
functools— Higher-order functions and operations on callable objects - 9.9. 
operator— Standard operators as functions 
 - 9.1. 
 - 10. File and Directory Access
- 10.1. 
os.path— Common pathname manipulations - 10.2. 
fileinput— Iterate over lines from multiple input streams - 10.3. 
stat— Interpretingstat()results - 10.4. 
statvfs— Constants used withos.statvfs() - 10.5. 
filecmp— File and Directory Comparisons - 10.6. 
tempfile— Generate temporary files and directories - 10.7. 
glob— Unix style pathname pattern expansion - 10.8. 
fnmatch— Unix filename pattern matching - 10.9. 
linecache— Random access to text lines - 10.10. 
shutil— High-level file operations - 10.11. 
dircache— Cached directory listings - 10.12. 
macpath— Mac OS 9 path manipulation functions 
 - 10.1. 
 - 11. Data Persistence
- 11.1. 
pickle— Python object serialization - 11.2. 
cPickle— A fasterpickle - 11.3. 
copy_reg— Registerpicklesupport functions - 11.4. 
shelve— Python object persistence - 11.5. 
marshal— Internal Python object serialization - 11.6. 
anydbm— Generic access to DBM-style databases - 11.7. 
whichdb— Guess which DBM module created a database - 11.8. 
dbm— Simple “database” interface - 11.9. 
gdbm— GNU’s reinterpretation of dbm - 11.10. 
dbhash— DBM-style interface to the BSD database library - 11.11. 
bsddb— Interface to Berkeley DB library - 11.12. 
dumbdbm— Portable DBM implementation - 11.13. 
sqlite3— DB-API 2.0 interface for SQLite databases 
 - 11.1. 
 - 12. Data Compression and Archiving
- 12.1. 
zlib— Compression compatible with gzip - 12.2. 
gzip— Support for gzip files - 12.3. 
bz2— Compression compatible with bzip2 - 12.4. 
zipfile— Work with ZIP archives - 12.5. 
tarfile— Read and write tar archive files 
 - 12.1. 
 - 13. File Formats
 - 14. Cryptographic Services
 - 15. Generic Operating System Services
- 15.1. 
os— Miscellaneous operating system interfaces - 15.2. 
io— Core tools for working with streams - 15.3. 
time— Time access and conversions - 15.4. 
argparse— Parser for command-line options, arguments and sub-commands - 15.5. 
optparse— Parser for command line options- 15.5.1. Background
 - 15.5.2. Tutorial
 - 15.5.3. Reference Guide
- 15.5.3.1. Creating the parser
 - 15.5.3.2. Populating the parser
 - 15.5.3.3. Defining options
 - 15.5.3.4. Option attributes
 - 15.5.3.5. Standard option actions
 - 15.5.3.6. Standard option types
 - 15.5.3.7. Parsing arguments
 - 15.5.3.8. Querying and manipulating your option parser
 - 15.5.3.9. Conflicts between options
 - 15.5.3.10. Cleanup
 - 15.5.3.11. Other methods
 
 - 15.5.4. Option Callbacks
- 15.5.4.1. Defining a callback option
 - 15.5.4.2. How callbacks are called
 - 15.5.4.3. Raising errors in a callback
 - 15.5.4.4. Callback example 1: trivial callback
 - 15.5.4.5. Callback example 2: check option order
 - 15.5.4.6. Callback example 3: check option order (generalized)
 - 15.5.4.7. Callback example 4: check arbitrary condition
 - 15.5.4.8. Callback example 5: fixed arguments
 - 15.5.4.9. Callback example 6: variable arguments
 
 - 15.5.5. Extending 
optparse 
 - 15.6. 
getopt— C-style parser for command line options - 15.7. 
logging— Logging facility for Python- 15.7.1. Logger Objects
 - 15.7.2. Logging Levels
 - 15.7.3. Handler Objects
 - 15.7.4. Formatter Objects
 - 15.7.5. Filter Objects
 - 15.7.6. LogRecord Objects
 - 15.7.7. LogRecord attributes
 - 15.7.8. LoggerAdapter Objects
 - 15.7.9. Thread Safety
 - 15.7.10. Module-Level Functions
 - 15.7.11. Integration with the warnings module
 
 - 15.8. 
logging.config— Logging configuration - 15.9. 
logging.handlers— Logging handlers- 15.9.1. StreamHandler
 - 15.9.2. FileHandler
 - 15.9.3. NullHandler
 - 15.9.4. WatchedFileHandler
 - 15.9.5. RotatingFileHandler
 - 15.9.6. TimedRotatingFileHandler
 - 15.9.7. SocketHandler
 - 15.9.8. DatagramHandler
 - 15.9.9. SysLogHandler
 - 15.9.10. NTEventLogHandler
 - 15.9.11. SMTPHandler
 - 15.9.12. MemoryHandler
 - 15.9.13. HTTPHandler
 
 - 15.10. 
getpass— Portable password input - 15.11. 
curses— Terminal handling for character-cell displays - 15.12. 
curses.textpad— Text input widget for curses programs - 15.13. 
curses.ascii— Utilities for ASCII characters - 15.14. 
curses.panel— A panel stack extension for curses - 15.15. 
platform— Access to underlying platform’s identifying data - 15.16. 
errno— Standard errno system symbols - 15.17. 
ctypes— A foreign function library for Python- 15.17.1. ctypes tutorial
- 15.17.1.1. Loading dynamic link libraries
 - 15.17.1.2. Accessing functions from loaded dlls
 - 15.17.1.3. Calling functions
 - 15.17.1.4. Fundamental data types
 - 15.17.1.5. Calling functions, continued
 - 15.17.1.6. Calling functions with your own custom data types
 - 15.17.1.7. Specifying the required argument types (function prototypes)
 - 15.17.1.8. Return types
 - 15.17.1.9. Passing pointers (or: passing parameters by reference)
 - 15.17.1.10. Structures and unions
 - 15.17.1.11. Structure/union alignment and byte order
 - 15.17.1.12. Bit fields in structures and unions
 - 15.17.1.13. Arrays
 - 15.17.1.14. Pointers
 - 15.17.1.15. Type conversions
 - 15.17.1.16. Incomplete Types
 - 15.17.1.17. Callback functions
 - 15.17.1.18. Accessing values exported from dlls
 - 15.17.1.19. Surprises
 - 15.17.1.20. Variable-sized data types
 
 - 15.17.2. ctypes reference
 
 - 15.17.1. ctypes tutorial
 
 - 15.1. 
 - 16. Optional Operating System Services
- 16.1. 
select— Waiting for I/O completion - 16.2. 
threading— Higher-level threading interface - 16.3. 
thread— Multiple threads of control - 16.4. 
dummy_threading— Drop-in replacement for thethreadingmodule - 16.5. 
dummy_thread— Drop-in replacement for thethreadmodule - 16.6. 
multiprocessing— Process-based “threading” interface- 16.6.1. Introduction
 - 16.6.2. Reference
- 16.6.2.1. 
Processand exceptions - 16.6.2.2. Pipes and Queues
 - 16.6.2.3. Miscellaneous
 - 16.6.2.4. Connection Objects
 - 16.6.2.5. Synchronization primitives
 - 16.6.2.6. Shared 
ctypesObjects - 16.6.2.7. Managers
 - 16.6.2.8. Proxy Objects
 - 16.6.2.9. Process Pools
 - 16.6.2.10. Listeners and Clients
 - 16.6.2.11. Authentication keys
 - 16.6.2.12. Logging
 - 16.6.2.13. The 
multiprocessing.dummymodule 
 - 16.6.2.1. 
 - 16.6.3. Programming guidelines
 - 16.6.4. Examples
 
 - 16.7. 
mmap— Memory-mapped file support - 16.8. 
readline— GNU readline interface - 16.9. 
rlcompleter— Completion function for GNU readline 
 - 16.1. 
 - 17. Interprocess Communication and Networking
- 17.1. 
subprocess— Subprocess management - 17.2. 
socket— Low-level networking interface - 17.3. 
ssl— TLS/SSL wrapper for socket objects - 17.4. 
signal— Set handlers for asynchronous events - 17.5. 
popen2— Subprocesses with accessible I/O streams - 17.6. 
asyncore— Asynchronous socket handler - 17.7. 
asynchat— Asynchronous socket command/response handler 
 - 17.1. 
 - 18. Internet Data Handling
- 18.1. 
email— An email and MIME handling package- 18.1.1. 
email.message: Representing an email message - 18.1.2. 
email.parser: Parsing email messages - 18.1.3. 
email.generator: Generating MIME documents - 18.1.4. 
email.mime: Creating email and MIME objects from scratch - 18.1.5. 
email.header: Internationalized headers - 18.1.6. 
email.charset: Representing character sets - 18.1.7. 
email.encoders: Encoders - 18.1.8. 
email.errors: Exception and Defect classes - 18.1.9. 
email.utils: Miscellaneous utilities - 18.1.10. 
email.iterators: Iterators - 18.1.11. 
email: Examples - 18.1.12. Package History
 - 18.1.13. Differences from 
mimelib 
 - 18.1.1. 
 - 18.2. 
json— JSON encoder and decoder - 18.3. 
mailcap— Mailcap file handling - 18.4. 
mailbox— Manipulate mailboxes in various formats - 18.5. 
mhlib— Access to MH mailboxes - 18.6. 
mimetools— Tools for parsing MIME messages - 18.7. 
mimetypes— Map filenames to MIME types - 18.8. 
MimeWriter— Generic MIME file writer - 18.9. 
mimify— MIME processing of mail messages - 18.10. 
multifile— Support for files containing distinct parts - 18.11. 
rfc822— Parse RFC 2822 mail headers - 18.12. 
base64— RFC 3548: Base16, Base32, Base64 Data Encodings - 18.13. 
binhex— Encode and decode binhex4 files - 18.14. 
binascii— Convert between binary and ASCII - 18.15. 
quopri— Encode and decode MIME quoted-printable data - 18.16. 
uu— Encode and decode uuencode files 
 - 18.1. 
 - 19. Structured Markup Processing Tools
- 19.1. 
HTMLParser— Simple HTML and XHTML parser - 19.2. 
sgmllib— Simple SGML parser - 19.3. 
htmllib— A parser for HTML documents - 19.4. 
htmlentitydefs— Definitions of HTML general entities - 19.5. XML Processing Modules
 - 19.6. XML vulnerabilities
 - 19.7. 
xml.etree.ElementTree— The ElementTree XML API - 19.8. 
xml.dom— The Document Object Model API- 19.8.1. Module Contents
 - 19.8.2. Objects in the DOM
- 19.8.2.1. DOMImplementation Objects
 - 19.8.2.2. Node Objects
 - 19.8.2.3. NodeList Objects
 - 19.8.2.4. DocumentType Objects
 - 19.8.2.5. Document Objects
 - 19.8.2.6. Element Objects
 - 19.8.2.7. Attr Objects
 - 19.8.2.8. NamedNodeMap Objects
 - 19.8.2.9. Comment Objects
 - 19.8.2.10. Text and CDATASection Objects
 - 19.8.2.11. ProcessingInstruction Objects
 - 19.8.2.12. Exceptions
 
 - 19.8.3. Conformance
 
 - 19.9. 
xml.dom.minidom— Minimal DOM implementation - 19.10. 
xml.dom.pulldom— Support for building partial DOM trees - 19.11. 
xml.sax— Support for SAX2 parsers - 19.12. 
xml.sax.handler— Base classes for SAX handlers - 19.13. 
xml.sax.saxutils— SAX Utilities - 19.14. 
xml.sax.xmlreader— Interface for XML parsers - 19.15. 
xml.parsers.expat— Fast XML parsing using Expat 
 - 19.1. 
 - 20. Internet Protocols and Support
- 20.1. 
webbrowser— Convenient Web-browser controller - 20.2. 
cgi— Common Gateway Interface support- 20.2.1. Introduction
 - 20.2.2. Using the cgi module
 - 20.2.3. Higher Level Interface
 - 20.2.4. Old classes
 - 20.2.5. Functions
 - 20.2.6. Caring about security
 - 20.2.7. Installing your CGI script on a Unix system
 - 20.2.8. Testing your CGI script
 - 20.2.9. Debugging CGI scripts
 - 20.2.10. Common problems and solutions
 
 - 20.3. 
cgitb— Traceback manager for CGI scripts - 20.4. 
wsgiref— WSGI Utilities and Reference Implementation - 20.5. 
urllib— Open arbitrary resources by URL - 20.6. 
urllib2— extensible library for opening URLs- 20.6.1. Request Objects
 - 20.6.2. OpenerDirector Objects
 - 20.6.3. BaseHandler Objects
 - 20.6.4. HTTPRedirectHandler Objects
 - 20.6.5. HTTPCookieProcessor Objects
 - 20.6.6. ProxyHandler Objects
 - 20.6.7. HTTPPasswordMgr Objects
 - 20.6.8. AbstractBasicAuthHandler Objects
 - 20.6.9. HTTPBasicAuthHandler Objects
 - 20.6.10. ProxyBasicAuthHandler Objects
 - 20.6.11. AbstractDigestAuthHandler Objects
 - 20.6.12. HTTPDigestAuthHandler Objects
 - 20.6.13. ProxyDigestAuthHandler Objects
 - 20.6.14. HTTPHandler Objects
 - 20.6.15. HTTPSHandler Objects
 - 20.6.16. FileHandler Objects
 - 20.6.17. FTPHandler Objects
 - 20.6.18. CacheFTPHandler Objects
 - 20.6.19. UnknownHandler Objects
 - 20.6.20. HTTPErrorProcessor Objects
 - 20.6.21. Examples
 
 - 20.7. 
httplib— HTTP protocol client - 20.8. 
ftplib— FTP protocol client - 20.9. 
poplib— POP3 protocol client - 20.10. 
imaplib— IMAP4 protocol client - 20.11. 
nntplib— NNTP protocol client - 20.12. 
smtplib— SMTP protocol client - 20.13. 
smtpd— SMTP Server - 20.14. 
telnetlib— Telnet client - 20.15. 
uuid— UUID objects according to RFC 4122 - 20.16. 
urlparse— Parse URLs into components - 20.17. 
SocketServer— A framework for network servers - 20.18. 
BaseHTTPServer— Basic HTTP server - 20.19. 
SimpleHTTPServer— Simple HTTP request handler - 20.20. 
CGIHTTPServer— CGI-capable HTTP request handler - 20.21. 
cookielib— Cookie handling for HTTP clients - 20.22. 
Cookie— HTTP state management - 20.23. 
xmlrpclib— XML-RPC client access - 20.24. 
SimpleXMLRPCServer— Basic XML-RPC server - 20.25. 
DocXMLRPCServer— Self-documenting XML-RPC server 
 - 20.1. 
 - 21. Multimedia Services
- 21.1. 
audioop— Manipulate raw audio data - 21.2. 
imageop— Manipulate raw image data - 21.3. 
aifc— Read and write AIFF and AIFC files - 21.4. 
sunau— Read and write Sun AU files - 21.5. 
wave— Read and write WAV files - 21.6. 
chunk— Read IFF chunked data - 21.7. 
colorsys— Conversions between color systems - 21.8. 
imghdr— Determine the type of an image - 21.9. 
sndhdr— Determine type of sound file - 21.10. 
ossaudiodev— Access to OSS-compatible audio devices 
 - 21.1. 
 - 22. Internationalization
 - 23. Program Frameworks
 - 24. Graphical User Interfaces with Tk
- 24.1. 
Tkinter— Python interface to Tcl/Tk - 24.2. 
ttk— Tk themed widgets - 24.3. 
Tix— Extension widgets for Tk - 24.4. 
ScrolledText— Scrolled Text Widget - 24.5. 
turtle— Turtle graphics for Tk- 24.5.1. Introduction
 - 24.5.2. Overview over available Turtle and Screen methods
 - 24.5.3. Methods of RawTurtle/Turtle and corresponding functions
 - 24.5.4. Methods of TurtleScreen/Screen and corresponding functions
 - 24.5.5. The public classes of the module 
turtle - 24.5.6. Help and configuration
 - 24.5.7. Demo scripts
 
 - 24.6. IDLE
- 24.6.1. Menus
- 24.6.1.1. File menu (Shell and Editor)
 - 24.6.1.2. Edit menu (Shell and Editor)
 - 24.6.1.3. Format menu (Editor window only)
 - 24.6.1.4. Run menu (Editor window only)
 - 24.6.1.5. Shell menu (Shell window only)
 - 24.6.1.6. Debug menu (Shell window only)
 - 24.6.1.7. Options menu (Shell and Editor)
 - 24.6.1.8. Window menu (Shell and Editor)
 - 24.6.1.9. Help menu (Shell and Editor)
 - 24.6.1.10. Context Menus
 
 - 24.6.2. Editing and navigation
 - 24.6.3. Startup and code execution
 - 24.6.4. Help and preferences
 
 - 24.6.1. Menus
 - 24.7. Other Graphical User Interface Packages
 
 - 24.1. 
 - 25. Development Tools
- 25.1. 
pydoc— Documentation generator and online help system - 25.2. 
doctest— Test interactive Python examples - 25.3. 
unittest— Unit testing framework - 25.4. 2to3 - Automated Python 2 to 3 code translation
 - 25.5. 
test— Regression tests package for Python - 25.6. 
test.support— Utility functions for tests 
 - 25.1. 
 - 26. Debugging and Profiling
 - 27. Software Packaging and Distribution
 - 28. Python Runtime Services
- 28.1. 
sys— System-specific parameters and functions - 28.2. 
sysconfig— Provide access to Python’s configuration information - 28.3. 
__builtin__— Built-in objects - 28.4. 
future_builtins— Python 3 builtins - 28.5. 
__main__— Top-level script environment - 28.6. 
warnings— Warning control - 28.7. 
contextlib— Utilities forwith-statement contexts - 28.8. 
abc— Abstract Base Classes - 28.9. 
atexit— Exit handlers - 28.10. 
traceback— Print or retrieve a stack traceback - 28.11. 
__future__— Future statement definitions - 28.12. 
gc— Garbage Collector interface - 28.13. 
inspect— Inspect live objects - 28.14. 
site— Site-specific configuration hook - 28.15. 
user— User-specific configuration hook - 28.16. 
fpectl— Floating point exception control 
 - 28.1. 
 - 29. Custom Python Interpreters
 - 30. Restricted Execution
 - 31. Importing Modules
- 31.1. 
imp— Access theimportinternals - 31.2. 
importlib— Convenience wrappers for__import__() - 31.3. 
imputil— Import utilities - 31.4. 
zipimport— Import modules from Zip archives - 31.5. 
pkgutil— Package extension utility - 31.6. 
modulefinder— Find modules used by a script - 31.7. 
runpy— Locating and executing Python modules 
 - 31.1. 
 - 32. Python Language Services
- 32.1. 
parser— Access Python parse trees - 32.2. 
ast— Abstract Syntax Trees - 32.3. 
symtable— Access to the compiler’s symbol tables - 32.4. 
symbol— Constants used with Python parse trees - 32.5. 
token— Constants used with Python parse trees - 32.6. 
keyword— Testing for Python keywords - 32.7. 
tokenize— Tokenizer for Python source - 32.8. 
tabnanny— Detection of ambiguous indentation - 32.9. 
pyclbr— Python class browser support - 32.10. 
py_compile— Compile Python source files - 32.11. 
compileall— Byte-compile Python libraries - 32.12. 
dis— Disassembler for Python bytecode - 32.13. 
pickletools— Tools for pickle developers 
 - 32.1. 
 - 33. Python compiler package
 - 34. Miscellaneous Services
 - 35. MS Windows Specific Services
 - 36. Unix Specific Services
- 36.1. 
posix— The most common POSIX system calls - 36.2. 
pwd— The password database - 36.3. 
spwd— The shadow password database - 36.4. 
grp— The group database - 36.5. 
crypt— Function to check Unix passwords - 36.6. 
dl— Call C functions in shared objects - 36.7. 
termios— POSIX style tty control - 36.8. 
tty— Terminal control functions - 36.9. 
pty— Pseudo-terminal utilities - 36.10. 
fcntl— Thefcntlandioctlsystem calls - 36.11. 
pipes— Interface to shell pipelines - 36.12. 
posixfile— File-like objects with locking support - 36.13. 
resource— Resource usage information - 36.14. 
nis— Interface to Sun’s NIS (Yellow Pages) - 36.15. 
syslog— Unix syslog library routines - 36.16. 
commands— Utilities for running commands 
 - 36.1. 
 - 37. Mac OS X specific services
- 37.1. 
ic— Access to the Mac OS X Internet Config - 37.2. 
MacOS— Access to Mac OS interpreter features - 37.3. 
macostools— Convenience routines for file manipulation - 37.4. 
findertools— The finder’s Apple Events interface - 37.5. 
EasyDialogs— Basic Macintosh dialogs - 37.6. 
FrameWork— Interactive application framework - 37.7. 
autoGIL— Global Interpreter Lock handling in event loops - 37.8. Mac OS Toolbox Modules
- 37.8.1. 
Carbon.AE— Apple Events - 37.8.2. 
Carbon.AH— Apple Help - 37.8.3. 
Carbon.App— Appearance Manager - 37.8.4. 
Carbon.Appearance— Appearance Manager constants - 37.8.5. 
Carbon.CF— Core Foundation - 37.8.6. 
Carbon.CG— Core Graphics - 37.8.7. 
Carbon.CarbonEvt— Carbon Event Manager - 37.8.8. 
Carbon.CarbonEvents— Carbon Event Manager constants - 37.8.9. 
Carbon.Cm— Component Manager - 37.8.10. 
Carbon.Components— Component Manager constants - 37.8.11. 
Carbon.ControlAccessor— Control Manager accssors - 37.8.12. 
Carbon.Controls— Control Manager constants - 37.8.13. 
Carbon.CoreFounation— CoreFounation constants - 37.8.14. 
Carbon.CoreGraphics— CoreGraphics constants - 37.8.15. 
Carbon.Ctl— Control Manager - 37.8.16. 
Carbon.Dialogs— Dialog Manager constants - 37.8.17. 
Carbon.Dlg— Dialog Manager - 37.8.18. 
Carbon.Drag— Drag and Drop Manager - 37.8.19. 
Carbon.Dragconst— Drag and Drop Manager constants - 37.8.20. 
Carbon.Events— Event Manager constants - 37.8.21. 
Carbon.Evt— Event Manager - 37.8.22. 
Carbon.File— File Manager - 37.8.23. 
Carbon.Files— File Manager constants - 37.8.24. 
Carbon.Fm— Font Manager - 37.8.25. 
Carbon.Folder— Folder Manager - 37.8.26. 
Carbon.Folders— Folder Manager constants - 37.8.27. 
Carbon.Fonts— Font Manager constants - 37.8.28. 
Carbon.Help— Help Manager - 37.8.29. 
Carbon.IBCarbon— Carbon InterfaceBuilder - 37.8.30. 
Carbon.IBCarbonRuntime— Carbon InterfaceBuilder constants - 37.8.31. 
Carbon.Icn— Carbon Icon Manager - 37.8.32. 
Carbon.Icons— Carbon Icon Manager constants - 37.8.33. 
Carbon.Launch— Carbon Launch Services - 37.8.34. 
Carbon.LaunchServices— Carbon Launch Services constants - 37.8.35. 
Carbon.List— List Manager - 37.8.36. 
Carbon.Lists— List Manager constants - 37.8.37. 
Carbon.MacHelp— Help Manager constants - 37.8.38. 
Carbon.MediaDescr— Parsers and generators for Quicktime Media descriptors - 37.8.39. 
Carbon.Menu— Menu Manager - 37.8.40. 
Carbon.Menus— Menu Manager constants - 37.8.41. 
Carbon.Mlte— MultiLingual Text Editor - 37.8.42. 
Carbon.OSA— Carbon OSA Interface - 37.8.43. 
Carbon.OSAconst— Carbon OSA Interface constants - 37.8.44. 
Carbon.QDOffscreen— QuickDraw Offscreen constants - 37.8.45. 
Carbon.Qd— QuickDraw - 37.8.46. 
Carbon.Qdoffs— QuickDraw Offscreen - 37.8.47. 
Carbon.Qt— QuickTime - 37.8.48. 
Carbon.QuickDraw— QuickDraw constants - 37.8.49. 
Carbon.QuickTime— QuickTime constants - 37.8.50. 
Carbon.Res— Resource Manager and Handles - 37.8.51. 
Carbon.Resources— Resource Manager and Handles constants - 37.8.52. 
Carbon.Scrap— Scrap Manager - 37.8.53. 
Carbon.Snd— Sound Manager - 37.8.54. 
Carbon.Sound— Sound Manager constants - 37.8.55. 
Carbon.TE— TextEdit - 37.8.56. 
Carbon.TextEdit— TextEdit constants - 37.8.57. 
Carbon.Win— Window Manager - 37.8.58. 
Carbon.Windows— Window Manager constants 
 - 37.8.1. 
 - 37.9. 
ColorPicker— Color selection dialog 
 - 37.1. 
 - 38. MacPython OSA Modules
 - 39. SGI IRIX Specific Services
- 39.1. 
al— Audio functions on the SGI - 39.2. 
AL— Constants used with thealmodule - 39.3. 
cd— CD-ROM access on SGI systems - 39.4. 
fl— FORMS library for graphical user interfaces - 39.5. 
FL— Constants used with theflmodule - 39.6. 
flp— Functions for loading stored FORMS designs - 39.7. 
fm— Font Manager interface - 39.8. 
gl— Graphics Library interface - 39.9. 
DEVICE— Constants used with theglmodule - 39.10. 
GL— Constants used with theglmodule - 39.11. 
imgfile— Support for SGI imglib files - 39.12. 
jpeg— Read and write JPEG files 
 - 39.1. 
 - 40. SunOS Specific Services
 - 41. Undocumented Modules
- 41.1. Miscellaneous useful utilities
 - 41.2. Platform specific modules
 - 41.3. Multimedia
 - 41.4. Undocumented Mac OS modules
- 41.4.1. 
applesingle— AppleSingle decoder - 41.4.2. 
buildtools— Helper module for BuildApplet and Friends - 41.4.3. 
cfmfile— Code Fragment Resource module - 41.4.4. 
icopen— Internet Config replacement foropen() - 41.4.5. 
macerrors— Mac OS Errors - 41.4.6. 
macresource— Locate script resources - 41.4.7. 
Nav— NavServices calls - 41.4.8. 
PixMapWrapper— Wrapper for PixMap objects - 41.4.9. 
videoreader— Read QuickTime movies - 41.4.10. 
W— Widgets built onFrameWork 
 - 41.4.1. 
 - 41.5. Obsolete
 - 41.6. SGI-specific Extension modules
 
 
 - Extending and Embedding the Python Interpreter
- 1. Extending Python with C or C++
- 1.1. A Simple Example
 - 1.2. Intermezzo: Errors and Exceptions
 - 1.3. Back to the Example
 - 1.4. The Module’s Method Table and Initialization Function
 - 1.5. Compilation and Linkage
 - 1.6. Calling Python Functions from C
 - 1.7. Extracting Parameters in Extension Functions
 - 1.8. Keyword Parameters for Extension Functions
 - 1.9. Building Arbitrary Values
 - 1.10. Reference Counts
 - 1.11. Writing Extensions in C++
 - 1.12. Providing a C API for an Extension Module
 
 - 2. Defining New Types
 - 3. Building C and C++ Extensions with distutils
 - 4. Building C and C++ Extensions on Windows
 - 5. Embedding Python in Another Application
 
 - 1. Extending Python with C or C++
 - Python/C API Reference Manual
- Introduction
 - The Very High Level Layer
 - Reference Counting
 - Exception Handling
 - Utilities
 - Abstract Objects Layer
 - Concrete Objects Layer
 - Initialization, Finalization, and Threads
 - Memory Management
 - Object Implementation Support
 
 - Distributing Python Modules
 - Installing Python Modules
 - Python HOWTOs
- Porting Python 2 Code to Python 3
- The Short Explanation
 - Details
- Drop support for Python 2.6 and older
 - Make sure you specify the proper version support in your 
setup.pyfile - Have good test coverage
 - Learn the differences between Python 2 & 3
 - Update your code
 - Prevent compatibility regressions
 - Check which dependencies block your transition
 - Update your 
setup.pyfile to denote Python 3 compatibility - Use continuous integration to stay compatible
 - Consider using optional static type checking
 
 
 - Porting Extension Modules to Python 3
 - Curses Programming with Python
 - Descriptor HowTo Guide
 - Idioms and Anti-Idioms in Python
 - Functional Programming HOWTO
 - Logging HOWTO
 - Logging Cookbook
- Using logging in multiple modules
 - Logging from multiple threads
 - Multiple handlers and formatters
 - Logging to multiple destinations
 - Configuration server example
 - Sending and receiving logging events across a network
 - Adding contextual information to your logging output
 - Logging to a single file from multiple processes
 - Using file rotation
 - An example dictionary-based configuration
 - Inserting a BOM into messages sent to a SysLogHandler
 - Implementing structured logging
 - Customizing handlers with 
dictConfig() - Configuring filters with 
dictConfig() - Customized exception formatting
 - Speaking logging messages
 - Buffering logging messages and outputting them conditionally
 - Formatting times using UTC (GMT) via configuration
 - Using a context manager for selective logging
 
 - Regular Expression HOWTO
 - Socket Programming HOWTO
 - Sorting HOW TO
 - Unicode HOWTO
 - HOWTO Fetch Internet Resources Using urllib2
 - HOWTO Use Python in the web
 - Argparse Tutorial
 
 - Porting Python 2 Code to Python 3
 - Python Frequently Asked Questions
- General Python FAQ
 - Programming FAQ
 - Design and History FAQ
- Why does Python use indentation for grouping of statements?
 - Why am I getting strange results with simple arithmetic operations?
 - Why are floating point calculations so inaccurate?
 - Why are Python strings immutable?
 - Why must ‘self’ be used explicitly in method definitions and calls?
 - Why can’t I use an assignment in an expression?
 - Why does Python use methods for some functionality (e.g. list.index()) but functions for other (e.g. len(list))?
 - Why is join() a string method instead of a list or tuple method?
 - How fast are exceptions?
 - Why isn’t there a switch or case statement in Python?
 - Can’t you emulate threads in the interpreter instead of relying on an OS-specific thread implementation?
 - Why can’t lambda expressions contain statements?
 - Can Python be compiled to machine code, C or some other language?
 - How does Python manage memory?
 - Why isn’t all memory freed when Python exits?
 - Why are there separate tuple and list data types?
 - How are lists implemented in CPython?
 - How are dictionaries implemented in CPython?
 - Why must dictionary keys be immutable?
 - Why doesn’t list.sort() return the sorted list?
 - How do you specify and enforce an interface spec in Python?
 - Why is there no goto?
 - Why can’t raw strings (r-strings) end with a backslash?
 - Why doesn’t Python have a “with” statement for attribute assignments?
 - Why are colons required for the if/while/def/class statements?
 - Why does Python allow commas at the end of lists and tuples?
 
 - Library and Extension FAQ
 - Extending/Embedding FAQ
- Can I create my own functions in C?
 - Can I create my own functions in C++?
 - Writing C is hard; are there any alternatives?
 - How can I execute arbitrary Python statements from C?
 - How can I evaluate an arbitrary Python expression from C?
 - How do I extract C values from a Python object?
 - How do I use Py_BuildValue() to create a tuple of arbitrary length?
 - How do I call an object’s method from C?
 - How do I catch the output from PyErr_Print() (or anything that prints to stdout/stderr)?
 - How do I access a module written in Python from C?
 - How do I interface to C++ objects from Python?
 - I added a module using the Setup file and the make fails; why?
 - How do I debug an extension?
 - I want to compile a Python module on my Linux system, but some files are missing. Why?
 - What does “SystemError: _PyImport_FixupExtension: module yourmodule not loaded” mean?
 - How do I tell “incomplete input” from “invalid input”?
 - How do I find undefined g++ symbols __builtin_new or __pure_virtual?
 - Can I create an object class with some methods implemented in C and others in Python (e.g. through inheritance)?
 - When importing module X, why do I get “undefined symbol: PyUnicodeUCS2*”?
 
 - Python on Windows FAQ
- How do I run a Python program under Windows?
 - How do I make Python scripts executable?
 - Why does Python sometimes take so long to start?
 - How do I make an executable from a Python script?
 - Is a 
*.pydfile the same as a DLL? - How can I embed Python into a Windows application?
 - How do I keep editors from inserting tabs into my Python source?
 - How do I check for a keypress without blocking?
 - How do I emulate os.kill() in Windows?
 - How do I extract the downloaded documentation on Windows?
 
 - Graphic User Interface FAQ
 - “Why is Python Installed on my Computer?” FAQ
 
 - Glossary
 - About these documents
 - Reporting Bugs
 - Copyright
 - History and License
 
