Navigation
index
modules
|
next
|
Python
»
3.4.0a0 Documentation
»
Python Documentation contents
¶
What’s New in Python
What’s New In Python 3.4
Summary – Release highlights
Other Language Changes
New Modules
Improved Modules
doctest
Optimizations
Build and C API Changes
Deprecated
Unsupported Operating Systems
Deprecated Python modules, functions and methods
Deprecated functions and types of the C API
Deprecated features
Porting to Python 3.4
What’s New In Python 3.3
Summary – Release highlights
PEP 405: Virtual Environments
PEP 420: Implicit Namespace Packages
PEP 3118: New memoryview implementation and buffer protocol documentation
Features
API changes
PEP 393: Flexible String Representation
Functionality
Performance and resource usage
PEP 397: Python Launcher for Windows
PEP 3151: Reworking the OS and IO exception hierarchy
PEP 380: Syntax for Delegating to a Subgenerator
PEP 409: Suppressing exception context
PEP 414: Explicit Unicode literals
PEP 3155: Qualified name for classes and functions
PEP 412: Key-Sharing Dictionary
PEP 362: Function Signature Object
PEP 421: Adding sys.implementation
SimpleNamespace
Using importlib as the Implementation of Import
New APIs
Visible Changes
Other Language Changes
A Finer-Grained Import Lock
Builtin functions and types
New Modules
faulthandler
ipaddress
lzma
Improved Modules
abc
array
base64
binascii
bz2
codecs
collections
contextlib
crypt
curses
datetime
decimal
Features
API changes
email
Policy Framework
Provisional Policy with New Header API
Other API Changes
ftplib
functools
gc
hmac
http
html
imaplib
inspect
io
itertools
logging
math
mmap
multiprocessing
nntplib
os
pdb
pickle
pydoc
re
sched
select
shlex
shutil
signal
smtpd
smtplib
socket
socketserver
sqlite3
ssl
stat
struct
subprocess
sys
tarfile
tempfile
textwrap
threading
time
types
unittest
urllib
webbrowser
xml.etree.ElementTree
zlib
Optimizations
Build and C API Changes
Deprecated
Unsupported Operating Systems
Deprecated Python modules, functions and methods
Deprecated functions and types of the C API
Deprecated features
Porting to Python 3.3
Porting Python code
Porting C code
Building C extensions
Command Line Switch Changes
What’s New In Python 3.2
PEP 384: Defining a Stable ABI
PEP 389: Argparse Command Line Parsing Module
PEP 391: Dictionary Based Configuration for Logging
PEP 3148: The
concurrent.futures
module
PEP 3147: PYC Repository Directories
PEP 3149: ABI Version Tagged .so Files
PEP 3333: Python Web Server Gateway Interface v1.0.1
Other Language Changes
New, Improved, and Deprecated Modules
email
elementtree
functools
itertools
collections
threading
datetime and time
math
abc
io
reprlib
logging
csv
contextlib
decimal and fractions
ftp
popen
select
gzip and zipfile
tarfile
hashlib
ast
os
shutil
sqlite3
html
socket
ssl
nntp
certificates
imaplib
http.client
unittest
random
poplib
asyncore
tempfile
inspect
pydoc
dis
dbm
ctypes
site
sysconfig
pdb
configparser
urllib.parse
mailbox
turtledemo
Multi-threading
Optimizations
Unicode
Codecs
Documentation
IDLE
Code Repository
Build and C API Changes
Porting to Python 3.2
What’s New In Python 3.1
PEP 372: Ordered Dictionaries
PEP 378: Format Specifier for Thousands Separator
Other Language Changes
New, Improved, and Deprecated Modules
Optimizations
IDLE
Build and C API Changes
Porting to Python 3.1
What’s New In Python 3.0
Common Stumbling Blocks
Print Is A Function
Views And Iterators Instead Of Lists
Ordering Comparisons
Integers
Text Vs. Data Instead Of Unicode Vs. 8-bit
Overview Of Syntax Changes
New Syntax
Changed Syntax
Removed Syntax
Changes Already Present In Python 2.6
Library Changes
PEP 3101
: A New Approach To String Formatting
Changes To Exceptions
Miscellaneous Other Changes
Operators And Special Methods
Builtins
Build and C API Changes
Performance
Porting To Python 3.0
What’s New in Python 2.7
The Future for Python 2.x
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
Interpreter Changes
Optimizations
New and Improved Modules
New module: importlib
New module: sysconfig
ttk: Themed Widgets for Tk
Updated module: unittest
Updated module: ElementTree 1.3
Build and C API Changes
Capsules
Port-Specific Changes: Windows
Port-Specific Changes: Mac OS X
Port-Specific Changes: FreeBSD
Other Changes and Fixes
Porting to Python 2.7
Acknowledgements
What’s New in Python 2.6
Python 3.0
Changes to the Development Process
New Issue Tracker: Roundup
New Documentation Format: reStructuredText Using Sphinx
PEP 343: The ‘with’ statement
Writing Context Managers
The contextlib module
PEP 366: Explicit Relative Imports From a Main Module
PEP 370: Per-user
site-packages
Directory
PEP 371: The
multiprocessing
Package
PEP 3101: Advanced String Formatting
PEP 3105:
print
As 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
The
fractions
Module
Other Language Changes
Optimizations
Interpreter Changes
New and Improved Modules
The
ast
module
The
future_builtins
module
The
json
module: JavaScript Object Notation
The
plistlib
module: A Property-List Parser
ctypes Enhancements
Improved SSL Support
Deprecations and Removals
Build and C API Changes
Port-Specific Changes: Windows
Port-Specific Changes: Mac OS X
Port-Specific Changes: IRIX
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
Writing Context Managers
The contextlib module
PEP 352: Exceptions as New-Style Classes
PEP 353: Using ssize_t as the index type
PEP 357: The ‘__index__’ method
Other Language Changes
Interactive Interpreter Changes
Optimizations
New, Improved, and Removed Modules
The ctypes package
The ElementTree package
The hashlib package
The sqlite3 package
The wsgiref package
Build and C API Changes
Port-Specific 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
Why is Decimal needed?
The
Decimal
type
The
Context
type
PEP 328: Multi-line Imports
PEP 331: Locale-Independent Float/String Conversions
Other Language Changes
Optimizations
New, Improved, and Deprecated Modules
cookielib
doctest
Build and C API Changes
Port-Specific 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
String Changes
Optimizations
New, Improved, and Deprecated Modules
Date/Time Type
The optparse Module
Pymalloc: A Specialized Object Allocator
Build and C API Changes
Port-Specific 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
Old and New Classes
Descriptors
Multiple Inheritance: The Diamond Rule
Attribute Access
Related Links
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
Minor Language Changes
Changes to Built-in Functions
Porting to 2.0
Extending/Embedding Changes
Distutils: Making Modules Easy to Install
XML Modules
SAX2 Support
DOM Support
Relationship to PyXML
Module changes
New modules
IDLE Improvements
Deleted and Deprecated Modules
Acknowledgements
Changelog
Python 3.4.0 Alpha 1
Core and Builtins
Library
Extension Modules
Tests
Build
Documentation
Tools/Demos
Python 3.3.0
Core and Builtins
Extension Modules
Python 3.3.0 Release Candidate 3
Core and Builtins
Library
Extension Modules
Python 3.3.0 Release Candidate 2
Core and Builtins
Library
Build
Documentation
Python 3.3.0 Release Candidate 1
Core and Builtins
Library
C API
Extension Modules
Tools/Demos
Documentation
Tests
Build
Python 3.3.0 Beta 2
Core and Builtins
Library
C API
Extension Modules
Tools/Demos
Documentation
Tests
Build
Python 3.3.0 Beta 1
Core and Builtins
Library
C-API
Extension Modules
Documentation
Tests
Build
Python 3.3.0 Alpha 4
Core and Builtins
Library
Tools/Demos
Build
Documentation
Python 3.3.0 Alpha 3
Core and Builtins
Library
Build
Tests
Tools / Demos
Python 3.3.0 Alpha 2
Core and Builtins
Library
Build
Documentation
Extension Modules
Tests
Python 3.3.0 Alpha 1
Core and Builtins
Library
Build
IDLE
Tools/Demos
Extension Modules
Tests
C-API
Documentation
The Python Tutorial
1. Whetting Your Appetite
2. Using the Python Interpreter
2.1. Invoking the Interpreter
2.1.1. Argument Passing
2.1.2. Interactive Mode
2.2. The Interpreter and Its Environment
2.2.1. Error Handling
2.2.2. Executable Python Scripts
2.2.3. Source Code Encoding
2.2.4. The Interactive Startup File
2.2.5. The Customization Modules
3. An Informal Introduction to Python
3.1. Using Python as a Calculator
3.1.1. Numbers
3.1.2. Strings
3.1.3. About Unicode
3.1.4. Lists
3.2. First Steps Towards Programming
4. More Control Flow Tools
4.1.
if
Statements
4.2.
for
Statements
4.3. The
range()
Function
4.4.
break
and
continue
Statements, and
else
Clauses on Loops
4.5.
pass
Statements
4.6. Defining Functions
4.7. More on Defining Functions
4.7.1. Default Argument Values
4.7.2. Keyword Arguments
4.7.3. Arbitrary Argument Lists
4.7.4. Unpacking Argument Lists
4.7.5. Lambda Forms
4.7.6. Documentation Strings
4.7.7. Function Annotations
4.8. Intermezzo: Coding Style
5. Data Structures
5.1. More on Lists
5.1.1. Using Lists as Stacks
5.1.2. Using Lists as Queues
5.1.3. List Comprehensions
5.1.4. Nested List Comprehensions
5.2. The
del
statement
5.3. Tuples and Sequences
5.4. Sets
5.5. Dictionaries
5.6. Looping Techniques
5.7. More on Conditions
5.8. Comparing Sequences and Other Types
6. Modules
6.1. More on Modules
6.1.1. Executing modules as scripts
6.1.2. The Module Search Path
6.1.3. “Compiled” Python files
6.2. Standard Modules
6.3. The
dir()
Function
6.4. Packages
6.4.1. Importing * From a Package
6.4.2. Intra-package References
6.4.3. Packages in Multiple Directories
7. Input and Output
7.1. Fancier Output Formatting
7.1.1. Old string formatting
7.2. Reading and Writing Files
7.2.1. Methods of File Objects
7.2.2. The
pickle
Module
8. Errors and Exceptions
8.1. Syntax Errors
8.2. Exceptions
8.3. Handling Exceptions
8.4. Raising Exceptions
8.5. User-defined Exceptions
8.6. Defining Clean-up Actions
8.7. Predefined Clean-up Actions
9. Classes
9.1. A Word About Names and Objects
9.2. Python Scopes and Namespaces
9.2.1. Scopes and Namespaces Example
9.3. A First Look at Classes
9.3.1. Class Definition Syntax
9.3.2. Class Objects
9.3.3. Instance Objects
9.3.4. Method Objects
9.4. Random Remarks
9.5. Inheritance
9.5.1. Multiple Inheritance
9.6. Private Variables
9.7. Odds and Ends
9.8. Exceptions Are Classes Too
9.9. Iterators
9.10. Generators
9.11. Generator Expressions
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
11.1. Output Formatting
11.2. Templating
11.3. Working with Binary Data Record Layouts
11.4. Multi-threading
11.5. Logging
11.6. Weak References
11.7. Tools for Working with Lists
11.8. Decimal Floating Point Arithmetic
12. What Now?
13. Interactive Input Editing and History Substitution
13.1. Line Editing
13.2. History Substitution
13.3. Key Bindings
13.4. Alternatives to the Interactive Interpreter
14. Floating Point Arithmetic: Issues and Limitations
14.1. Representation Error
Python Setup and Usage
1. Command line and environment
1.1. Command line
1.1.1. Interface options
1.1.2. Generic options
1.1.3. Miscellaneous options
1.1.4. Options you shouldn’t use
1.2. Environment variables
1.2.1. Debug-mode variables
2. Using Python on Unix platforms
2.1. Getting and installing the latest version of Python
2.1.1. On Linux
2.1.2. On FreeBSD and OpenBSD
2.1.3. On OpenSolaris
2.2. Building Python
2.3. Python-related paths and files
2.4. Miscellaneous
2.5. Editors
3. Using Python on Windows
3.1. Installing Python
3.2. Alternative bundles
3.3. Configuring Python
3.3.1. Excursus: Setting environment variables
3.3.2. Finding the Python executable
3.3.3. Finding modules
3.3.4. Executing scripts
3.3.5. Executing scripts without the Python launcher
3.4. Python Launcher for Windows
3.4.1. Getting started
3.4.1.1. From the command-line
3.4.1.2. From a script
3.4.1.3. From file associations
3.4.2. Shebang Lines
3.4.3. Arguments in shebang lines
3.4.4. Customization
3.4.4.1. Customization via INI files
3.4.4.2. Customizing default Python versions
3.4.5. Diagnostics
3.5. Additional modules
3.5.1. PyWin32
3.5.2. Py2exe
3.5.3. WConio
3.6. Compiling Python on Windows
3.7. Other resources
4. Using Python on a Macintosh
4.1. Getting and Installing MacPython
4.1.1. How to run a Python script
4.1.2. Running scripts with a GUI
4.1.3. Configuration
4.2. The IDE
4.3. Installing Additional Python Packages
4.4. GUI Programming on the Mac
4.5. Distributing Python Applications on the Mac
4.6. Application Scripting
4.7. Other Resources
5. Additional Tools and Scripts
5.1. pyvenv - Creating virtual environments
The Python Language Reference
1. Introduction
1.1. Alternate Implementations
1.2. Notation
2. Lexical analysis
2.1. Line structure
2.1.1. Logical lines
2.1.2. Physical lines
2.1.3. Comments
2.1.4. Encoding declarations
2.1.5. Explicit line joining
2.1.6. Implicit line joining
2.1.7. Blank lines
2.1.8. Indentation
2.1.9. Whitespace between tokens
2.2. Other tokens
2.3. Identifiers and keywords
2.3.1. Keywords
2.3.2. Reserved classes of identifiers
2.4. Literals
2.4.1. String and Bytes literals
2.4.2. String literal concatenation
2.4.3. Numeric literals
2.4.4. Integer literals
2.4.5. Floating point literals
2.4.6. Imaginary literals
2.5. Operators
2.6. Delimiters
3. Data model
3.1. Objects, values and types
3.2. The standard type hierarchy
3.3. Special method names
3.3.1. Basic customization
3.3.2. Customizing attribute access
3.3.2.1. Implementing Descriptors
3.3.2.2. Invoking Descriptors
3.3.2.3. __slots__
3.3.2.3.1. Notes on using
__slots__
3.3.3. Customizing class creation
3.3.3.1. Determining the appropriate metaclass
3.3.3.2. Preparing the class namespace
3.3.3.3. Executing the class body
3.3.3.4. Creating the class object
3.3.3.5. Metaclass example
3.3.4. Customizing instance and subclass checks
3.3.5. Emulating callable objects
3.3.6. Emulating container types
3.3.7. Emulating numeric types
3.3.8. With Statement Context Managers
3.3.9. Special method lookup
4. Execution model
4.1. Naming and binding
4.1.1. Interaction with dynamic features
4.2. Exceptions
5. The import system
5.1.
importlib
5.2. Packages
5.2.1. Regular packages
5.2.2. Namespace packages
5.3. Searching
5.3.1. The module cache
5.3.2. Finders and loaders
5.3.3. Import hooks
5.3.4. The meta path
5.4. Loaders
5.4.1. Module reprs
5.4.2. module.__path__
5.5. The Path Based Finder
5.5.1. Path entry finders
5.5.2. Path entry finder protocol
5.6. Replacing the standard import system
5.7. Open issues
5.8. References
5.9. Footnotes
6. Expressions
6.1. Arithmetic conversions
6.2. Atoms
6.2.1. Identifiers (Names)
6.2.2. Literals
6.2.3. Parenthesized forms
6.2.4. Displays for lists, sets and dictionaries
6.2.5. List displays
6.2.6. Set displays
6.2.7. Dictionary displays
6.2.8. Generator expressions
6.2.9. Yield expressions
6.2.9.1. Generator-iterator methods
6.2.9.2. Examples
6.3. Primaries
6.3.1. Attribute references
6.3.2. Subscriptions
6.3.3. Slicings
6.3.4. Calls
6.4. The power operator
6.5. Unary arithmetic and bitwise operations
6.6. Binary arithmetic operations
6.7. Shifting operations
6.8. Binary bitwise operations
6.9. Comparisons
6.10. Boolean operations
6.11. Conditional expressions
6.12. Lambdas
6.13. Expression lists
6.14. Evaluation order
6.15. Operator precedence
7. Simple statements
7.1. Expression statements
7.2. Assignment statements
7.2.1. Augmented assignment statements
7.3. The
assert
statement
7.4. The
pass
statement
7.5. The
del
statement
7.6. The
return
statement
7.7. The
yield
statement
7.8. The
raise
statement
7.9. The
break
statement
7.10. The
continue
statement
7.11. The
import
statement
7.11.1. Future statements
7.12. The
global
statement
7.13. The
nonlocal
statement
8. Compound statements
8.1. The
if
statement
8.2. The
while
statement
8.3. The
for
statement
8.4. The
try
statement
8.5. The
with
statement
8.6. Function definitions
8.7. Class definitions
9. Top-level components
9.1. Complete Python programs
9.2. File input
9.3. Interactive input
9.4. Expression input
10. Full Grammar specification
The Python Standard Library
1. Introduction
2. Built-in Functions
3. Built-in Constants
3.1. Constants added by the
site
module
4. Built-in Types
4.1. Truth Value Testing
4.2. Boolean Operations —
and
,
or
,
not
4.3. Comparisons
4.4. Numeric Types —
int
,
float
,
complex
4.4.1. Bitwise Operations on Integer Types
4.4.2. Additional Methods on Integer Types
4.4.3. Additional Methods on Float
4.4.4. Hashing of numeric types
4.5. Iterator Types
4.5.1. Generator Types
4.6. Sequence Types —
list
,
tuple
,
range
4.6.1. Common Sequence Operations
4.6.2. Immutable Sequence Types
4.6.3. Mutable Sequence Types
4.6.4. Lists
4.6.5. Tuples
4.6.6. Ranges
4.7. Text Sequence Type —
str
4.7.1. String Methods
4.7.2.
printf
-style String Formatting
4.8. Binary Sequence Types —
bytes
,
bytearray
,
memoryview
4.8.1. Bytes
4.8.2. Bytearray Objects
4.8.3. Bytes and Bytearray Operations
4.8.4. Memory Views
4.9. Set Types —
set
,
frozenset
4.10. Mapping Types —
dict
4.10.1. Dictionary view objects
4.11. Context Manager Types
4.12. Other Built-in Types
4.12.1. Modules
4.12.2. Classes and Class Instances
4.12.3. Functions
4.12.4. Methods
4.12.5. Code Objects
4.12.6. Type Objects
4.12.7. The Null Object
4.12.8. The Ellipsis Object
4.12.9. The NotImplemented Object
4.12.10. Boolean Values
4.12.11. Internal Objects
4.13. Special Attributes
5. Built-in Exceptions
5.1. Base classes
5.2. Concrete exceptions
5.2.1. OS exceptions
5.3. Warnings
5.4. Exception hierarchy
6. Text Processing Services
6.1.
string
— Common string operations
6.1.1. String constants
6.1.2. String Formatting
6.1.3. Format String Syntax
6.1.3.1. Format Specification Mini-Language
6.1.3.2. Format examples
6.1.4. Template strings
6.1.5. Helper functions
6.2.
re
— Regular expression operations
6.2.1. Regular Expression Syntax
6.2.2. Module Contents
6.2.3. Regular Expression Objects
6.2.4. Match Objects
6.2.5. Regular Expression Examples
6.2.5.1. Checking for a Pair
6.2.5.2. Simulating scanf()
6.2.5.3. search() vs. match()
6.2.5.4. Making a Phonebook
6.2.5.5. Text Munging
6.2.5.6. Finding all Adverbs
6.2.5.7. Finding all Adverbs and their Positions
6.2.5.8. Raw String Notation
6.2.5.9. Writing a Tokenizer
6.3.
difflib
— Helpers for computing deltas
6.3.1. SequenceMatcher Objects
6.3.2. SequenceMatcher Examples
6.3.3. Differ Objects
6.3.4. Differ Example
6.3.5. A command-line interface to difflib
6.4.
textwrap
— Text wrapping and filling
6.5.
unicodedata
— Unicode Database
6.6.
stringprep
— Internet String Preparation
6.7.
readline
— GNU readline interface
6.7.1. Example
6.8.
rlcompleter
— Completion function for GNU readline
6.8.1. Completer Objects
7. Binary Data Services
7.1.
struct
— Interpret bytes as packed binary data
7.1.1. Functions and Exceptions
7.1.2. Format Strings
7.1.2.1. Byte Order, Size, and Alignment
7.1.2.2. Format Characters
7.1.2.3. Examples
7.1.3. Classes
7.2.
codecs
— Codec registry and base classes
7.2.1. Codec Base Classes
7.2.1.1. Codec Objects
7.2.1.2. IncrementalEncoder Objects
7.2.1.3. IncrementalDecoder Objects
7.2.1.4. StreamWriter Objects
7.2.1.5. StreamReader Objects
7.2.1.6. StreamReaderWriter Objects
7.2.1.7. StreamRecoder Objects
7.2.2. Encodings and Unicode
7.2.3. Standard Encodings
7.2.4.
encodings.idna
— Internationalized Domain Names in Applications
7.2.5.
encodings.mbcs
— Windows ANSI codepage
7.2.6.
encodings.utf_8_sig
— UTF-8 codec with BOM signature
8. Data Types
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.
timezone
Objects
8.1.8.
strftime()
and
strptime()
Behavior
8.2.
calendar
— General calendar-related functions
8.3.
collections
— Container datatypes
8.3.1.
ChainMap
objects
8.3.1.1.
ChainMap
Examples and Recipes
8.3.2.
Counter
objects
8.3.3.
deque
objects
8.3.3.1.
deque
Recipes
8.3.4.
defaultdict
objects
8.3.4.1.
defaultdict
Examples
8.3.5.
namedtuple()
Factory Function for Tuples with Named Fields
8.3.6.
OrderedDict
objects
8.3.6.1.
OrderedDict
Examples and Recipes
8.3.7.
UserDict
objects
8.3.8.
UserList
objects
8.3.9.
UserString
objects
8.4.
collections.abc
— Abstract Base Classes for Containers
8.4.1. Collections Abstract Base Classes
8.5.
heapq
— Heap queue algorithm
8.5.1. Basic Examples
8.5.2. Priority Queue Implementation Notes
8.5.3. Theory
8.6.
bisect
— Array bisection algorithm
8.6.1. Searching Sorted Lists
8.6.2. Other Examples
8.7.
array
— Efficient arrays of numeric values
8.8.
weakref
— Weak references
8.8.1. Weak Reference Objects
8.8.2. Example
8.9.
types
— Dynamic type creation and names for built-in types
8.9.1. Dynamic Type Creation
8.9.2. Standard Interpreter Types
8.10.
copy
— Shallow and deep copy operations
8.11.
pprint
— Data pretty printer
8.11.1. PrettyPrinter Objects
8.11.2. Example
8.12.
reprlib
— Alternate
repr()
implementation
8.12.1. Repr Objects
8.12.2. Subclassing Repr Objects
9. Numeric and Mathematical Modules
9.1.
numbers
— Numeric abstract base classes
9.1.1. The numeric tower
9.1.2. Notes for type implementors
9.1.2.1. Adding More Numeric ABCs
9.1.2.2. Implementing the arithmetic operations
9.2.
math
— Mathematical functions
9.2.1. Number-theoretic and representation functions
9.2.2. Power and logarithmic functions
9.2.3. Trigonometric functions
9.2.4. Angular conversion
9.2.5. Hyperbolic functions
9.2.6. Special functions
9.2.7. Constants
9.3.
cmath
— Mathematical functions for complex numbers
9.3.1. Conversions to and from polar coordinates
9.3.2. Power and logarithmic functions
9.3.3. Trigonometric functions
9.3.4. Hyperbolic functions
9.3.5. Classification functions
9.3.6. Constants
9.4.
decimal
— Decimal fixed point and floating point arithmetic
9.4.1. Quick-start Tutorial
9.4.2. Decimal objects
9.4.2.1. Logical operands
9.4.3. Context objects
9.4.4. Constants
9.4.5. Rounding modes
9.4.6. Signals
9.4.7. Floating Point Notes
9.4.7.1. Mitigating round-off error with increased precision
9.4.7.2. Special values
9.4.8. Working with threads
9.4.9. Recipes
9.4.10. Decimal FAQ
9.5.
fractions
— Rational numbers
9.6.
random
— Generate pseudo-random numbers
9.6.1. Notes on Reproducibility
9.6.2. Examples and Recipes
10. Functional Programming Modules
10.1.
itertools
— Functions creating iterators for efficient looping
10.1.1. Itertool functions
10.1.2. Itertools Recipes
10.2.
functools
— Higher-order functions and operations on callable objects
10.2.1.
partial
Objects
10.3.
operator
— Standard operators as functions
10.3.1. Mapping Operators to Functions
10.3.2. Inplace Operators
11. File and Directory Access
11.1.
os.path
— Common pathname manipulations
11.2.
fileinput
— Iterate over lines from multiple input streams
11.3.
stat
— Interpreting
stat()
results
11.4.
filecmp
— File and Directory Comparisons
11.4.1. The
dircmp
class
11.5.
tempfile
— Generate temporary files and directories
11.5.1. Examples
11.6.
glob
— Unix style pathname pattern expansion
11.7.
fnmatch
— Unix filename pattern matching
11.8.
linecache
— Random access to text lines
11.9.
shutil
— High-level file operations
11.9.1. Directory and files operations
11.9.1.1. copytree example
11.9.2. Archiving operations
11.9.2.1. Archiving example
11.9.3. Querying the size of the output terminal
11.10.
macpath
— Mac OS 9 path manipulation functions
12. Data Persistence
12.1.
pickle
— Python object serialization
12.1.1. Relationship to other Python modules
12.1.2. Data stream format
12.1.3. Module Interface
12.1.4. What can be pickled and unpickled?
12.1.5. Pickling Class Instances
12.1.5.1. Persistence of External Objects
12.1.5.2. Dispatch Tables
12.1.5.3. Handling Stateful Objects
12.1.6. Restricting Globals
12.1.7. Examples
12.2.
copyreg
— Register
pickle
support functions
12.2.1. Example
12.3.
shelve
— Python object persistence
12.3.1. Restrictions
12.3.2. Example
12.4.
marshal
— Internal Python object serialization
12.5.
dbm
— Interfaces to Unix “databases”
12.5.1.
dbm.gnu
— GNU’s reinterpretation of dbm
12.5.2.
dbm.ndbm
— Interface based on ndbm
12.5.3.
dbm.dumb
— Portable DBM implementation
12.6.
sqlite3
— DB-API 2.0 interface for SQLite databases
12.6.1. Module functions and constants
12.6.2. Connection Objects
12.6.3. Cursor Objects
12.6.4. Row Objects
12.6.5. SQLite and Python types
12.6.5.1. Introduction
12.6.5.2. Using adapters to store additional Python types in SQLite databases
12.6.5.2.1. Letting your object adapt itself
12.6.5.2.2. Registering an adapter callable
12.6.5.3. Converting SQLite values to custom Python types
12.6.5.4. Default adapters and converters
12.6.6. Controlling Transactions
12.6.7. Using
sqlite3
efficiently
12.6.7.1. Using shortcut methods
12.6.7.2. Accessing columns by name instead of by index
12.6.7.3. Using the connection as a context manager
12.6.8. Common issues
12.6.8.1. Multithreading
13. Data Compression and Archiving
13.1.
zlib
— Compression compatible with
gzip
13.2.
gzip
— Support for
gzip
files
13.2.1. Examples of usage
13.3.
bz2
— Support for
bzip2
compression
13.3.1. (De)compression of files
13.3.2. Incremental (de)compression
13.3.3. One-shot (de)compression
13.4.
lzma
— Compression using the LZMA algorithm
13.4.1. Reading and writing compressed files
13.4.2. Compressing and decompressing data in memory
13.4.3. Miscellaneous
13.4.4. Specifying custom filter chains
13.4.5. Examples
13.5.
zipfile
— Work with ZIP archives
13.5.1. ZipFile Objects
13.5.2. PyZipFile Objects
13.5.3. ZipInfo Objects
13.6.
tarfile
— Read and write tar archive files
13.6.1. TarFile Objects
13.6.2. TarInfo Objects
13.6.3. Examples
13.6.4. Supported tar formats
13.6.5. Unicode issues
14. File Formats
14.1.
csv
— CSV File Reading and Writing
14.1.1. Module Contents
14.1.2. Dialects and Formatting Parameters
14.1.3. Reader Objects
14.1.4. Writer Objects
14.1.5. Examples
14.2.
configparser
— Configuration file parser
14.2.1. Quick Start
14.2.2. Supported Datatypes
14.2.3. Fallback Values
14.2.4. Supported INI File Structure
14.2.5. Interpolation of values
14.2.6. Mapping Protocol Access
14.2.7. Customizing Parser Behaviour
14.2.8. Legacy API Examples
14.2.9. ConfigParser Objects
14.2.10. RawConfigParser Objects
14.2.11. Exceptions
14.3.
netrc
— netrc file processing
14.3.1. netrc Objects
14.4.
xdrlib
— Encode and decode XDR data
14.4.1. Packer Objects
14.4.2. Unpacker Objects
14.4.3. Exceptions
14.5.
plistlib
— Generate and parse Mac OS X
.plist
files
14.5.1. Examples
15. Cryptographic Services
15.1.
hashlib
— Secure hashes and message digests
15.2.
hmac
— Keyed-Hashing for Message Authentication
16. Generic Operating System Services
16.1.
os
— Miscellaneous operating system interfaces
16.1.1. File Names, Command Line Arguments, and Environment Variables
16.1.2. Process Parameters
16.1.3. File Object Creation
16.1.4. File Descriptor Operations
16.1.4.1.
open()
flag constants
16.1.4.2. Querying the size of a terminal
16.1.5. Files and Directories
16.1.5.1. Linux extended attributes
16.1.6. Process Management
16.1.7. Interface to the scheduler
16.1.8. Miscellaneous System Information
16.1.9. Miscellaneous Functions
16.2.
io
— Core tools for working with streams
16.2.1. Overview
16.2.1.1. Text I/O
16.2.1.2. Binary I/O
16.2.1.3. Raw I/O
16.2.2. High-level Module Interface
16.2.2.1. In-memory streams
16.2.3. Class hierarchy
16.2.3.1. I/O Base Classes
16.2.3.2. Raw File I/O
16.2.3.3. Buffered Streams
16.2.3.4. Text I/O
16.2.4. Performance
16.2.4.1. Binary I/O
16.2.4.2. Text I/O
16.2.4.3. Multi-threading
16.2.4.4. Reentrancy
16.3.
time
— Time access and conversions
16.4.
argparse
— Parser for command-line options, arguments and sub-commands
16.4.1. Example
16.4.1.1. Creating a parser
16.4.1.2. Adding arguments
16.4.1.3. Parsing arguments
16.4.2. ArgumentParser objects
16.4.2.1. description
16.4.2.2. epilog
16.4.2.3. add_help
16.4.2.4. prefix_chars
16.4.2.5. fromfile_prefix_chars
16.4.2.6. argument_default
16.4.2.7. parents
16.4.2.8. formatter_class
16.4.2.9. conflict_handler
16.4.2.10. prog
16.4.2.11. usage
16.4.3. The add_argument() method
16.4.3.1. name or flags
16.4.3.2. action
16.4.3.3. nargs
16.4.3.4. const
16.4.3.5. default
16.4.3.6. type
16.4.3.7. choices
16.4.3.8. required
16.4.3.9. help
16.4.3.10. metavar
16.4.3.11. dest
16.4.4. The parse_args() method
16.4.4.1. Option value syntax
16.4.4.2. Invalid arguments
16.4.4.3. Arguments containing
-
16.4.4.4. Argument abbreviations
16.4.4.5. Beyond
sys.argv
16.4.4.6. The Namespace object
16.4.5. Other utilities
16.4.5.1. Sub-commands
16.4.5.2. FileType objects
16.4.5.3. Argument groups
16.4.5.4. Mutual exclusion
16.4.5.5. Parser defaults
16.4.5.6. Printing help
16.4.5.7. Partial parsing
16.4.5.8. Customizing file parsing
16.4.5.9. Exiting methods
16.4.6. Upgrading optparse code
16.5.
optparse
— Parser for command line options
16.5.1. Background
16.5.1.1. Terminology
16.5.1.2. What are options for?
16.5.1.3. What are positional arguments for?
16.5.2. Tutorial
16.5.2.1. Understanding option actions
16.5.2.2. The store action
16.5.2.3. Handling boolean (flag) options
16.5.2.4. Other actions
16.5.2.5. Default values
16.5.2.6. Generating help
16.5.2.6.1. Grouping Options
16.5.2.7. Printing a version string
16.5.2.8. How
optparse
handles errors
16.5.2.9. Putting it all together
16.5.3. Reference Guide
16.5.3.1. Creating the parser
16.5.3.2. Populating the parser
16.5.3.3. Defining options
16.5.3.4. Option attributes
16.5.3.5. Standard option actions
16.5.3.6. Standard option types
16.5.3.7. Parsing arguments
16.5.3.8. Querying and manipulating your option parser
16.5.3.9. Conflicts between options
16.5.3.10. Cleanup
16.5.3.11. Other methods
16.5.4. Option Callbacks
16.5.4.1. Defining a callback option
16.5.4.2. How callbacks are called
16.5.4.3. Raising errors in a callback
16.5.4.4. Callback example 1: trivial callback
16.5.4.5. Callback example 2: check option order
16.5.4.6. Callback example 3: check option order (generalized)
16.5.4.7. Callback example 4: check arbitrary condition
16.5.4.8. Callback example 5: fixed arguments
16.5.4.9. Callback example 6: variable arguments
16.5.5. Extending
optparse
16.5.5.1. Adding new types
16.5.5.2. Adding new actions
16.6.
getopt
— C-style parser for command line options
16.7.
logging
— Logging facility for Python
16.7.1. Logger Objects
16.7.2. Handler Objects
16.7.3. Formatter Objects
16.7.4. Filter Objects
16.7.5. LogRecord Objects
16.7.6. LogRecord attributes
16.7.7. LoggerAdapter Objects
16.7.8. Thread Safety
16.7.9. Module-Level Functions
16.7.10. Integration with the warnings module
16.8.
logging.config
— Logging configuration
16.8.1. Configuration functions
16.8.2. Configuration dictionary schema
16.8.2.1. Dictionary Schema Details
16.8.2.2. Incremental Configuration
16.8.2.3. Object connections
16.8.2.4. User-defined objects
16.8.2.5. Access to external objects
16.8.2.6. Access to internal objects
16.8.2.7. Import resolution and custom importers
16.8.3. Configuration file format
16.9.
logging.handlers
— Logging handlers
16.9.1. StreamHandler
16.9.2. FileHandler
16.9.3. NullHandler
16.9.4. WatchedFileHandler
16.9.5. BaseRotatingHandler
16.9.6. RotatingFileHandler
16.9.7. TimedRotatingFileHandler
16.9.8. SocketHandler
16.9.9. DatagramHandler
16.9.10. SysLogHandler
16.9.11. NTEventLogHandler
16.9.12. SMTPHandler
16.9.13. MemoryHandler
16.9.14. HTTPHandler
16.9.15. QueueHandler
16.9.16. QueueListener
16.10.
getpass
— Portable password input
16.11.
curses
— Terminal handling for character-cell displays
16.11.1. Functions
16.11.2. Window Objects
16.11.3. Constants
16.12.
curses.textpad
— Text input widget for curses programs
16.12.1. Textbox objects
16.13.
curses.ascii
— Utilities for ASCII characters
16.14.
curses.panel
— A panel stack extension for curses
16.14.1. Functions
16.14.2. Panel Objects
16.15.
platform
— Access to underlying platform’s identifying data
16.15.1. Cross Platform
16.15.2. Java Platform
16.15.3. Windows Platform
16.15.3.1. Win95/98 specific
16.15.4. Mac OS Platform
16.15.5. Unix Platforms
16.16.
errno
— Standard errno system symbols
16.17.
ctypes
— A foreign function library for Python
16.17.1. ctypes tutorial
16.17.1.1. Loading dynamic link libraries
16.17.1.2. Accessing functions from loaded dlls
16.17.1.3. Calling functions
16.17.1.4. Fundamental data types
16.17.1.5. Calling functions, continued
16.17.1.6. Calling functions with your own custom data types
16.17.1.7. Specifying the required argument types (function prototypes)
16.17.1.8. Return types
16.17.1.9. Passing pointers (or: passing parameters by reference)
16.17.1.10. Structures and unions
16.17.1.11. Structure/union alignment and byte order
16.17.1.12. Bit fields in structures and unions
16.17.1.13. Arrays
16.17.1.14. Pointers
16.17.1.15. Type conversions
16.17.1.16. Incomplete Types
16.17.1.17. Callback functions
16.17.1.18. Accessing values exported from dlls
16.17.1.19. Surprises
16.17.1.20. Variable-sized data types
16.17.2. ctypes reference
16.17.2.1. Finding shared libraries
16.17.2.2. Loading shared libraries
16.17.2.3. Foreign functions
16.17.2.4. Function prototypes
16.17.2.5. Utility functions
16.17.2.6. Data types
16.17.2.7. Fundamental data types
16.17.2.8. Structured data types
16.17.2.9. Arrays and pointers
17. Concurrent Execution
17.1.
threading
— Thread-based parallelism
17.1.1. Thread-Local Data
17.1.2. Thread Objects
17.1.3. Lock Objects
17.1.4. RLock Objects
17.1.5. Condition Objects
17.1.6. Semaphore Objects
17.1.6.1.
Semaphore
Example
17.1.7. Event Objects
17.1.8. Timer Objects
17.1.9. Barrier Objects
17.1.10. Using locks, conditions, and semaphores in the
with
statement
17.2.
multiprocessing
— Process-based parallelism
17.2.1. Introduction
17.2.1.1. The
Process
class
17.2.1.2. Exchanging objects between processes
17.2.1.3. Synchronization between processes
17.2.1.4. Sharing state between processes
17.2.1.5. Using a pool of workers
17.2.2. Reference
17.2.2.1.
Process
and exceptions
17.2.2.2. Pipes and Queues
17.2.2.3. Miscellaneous
17.2.2.4. Connection Objects
17.2.2.5. Synchronization primitives
17.2.2.6. Shared
ctypes
Objects
17.2.2.6.1. The
multiprocessing.sharedctypes
module
17.2.2.7. Managers
17.2.2.7.1. Namespace objects
17.2.2.7.2. Customized managers
17.2.2.7.3. Using a remote manager
17.2.2.8. Proxy Objects
17.2.2.8.1. Cleanup
17.2.2.9. Process Pools
17.2.2.10. Listeners and Clients
17.2.2.10.1. Address Formats
17.2.2.11. Authentication keys
17.2.2.12. Logging
17.2.2.13. The
multiprocessing.dummy
module
17.2.3. Programming guidelines
17.2.3.1. All platforms
17.2.3.2. Windows
17.2.4. Examples
17.3. The
concurrent
package
17.4.
concurrent.futures
— Launching parallel tasks
17.4.1. Executor Objects
17.4.2. ThreadPoolExecutor
17.4.2.1. ThreadPoolExecutor Example
17.4.3. ProcessPoolExecutor
17.4.3.1. ProcessPoolExecutor Example
17.4.4. Future Objects
17.4.5. Module Functions
17.4.6. Exception classes
17.5.
subprocess
— Subprocess management
17.5.1. Using the
subprocess
Module
17.5.1.1. Frequently Used Arguments
17.5.1.2. Popen Constructor
17.5.1.3. Exceptions
17.5.1.4. Security
17.5.2. Popen Objects
17.5.3. Windows Popen Helpers
17.5.3.1. Constants
17.5.4. Replacing Older Functions with the
subprocess
Module
17.5.4.1. Replacing /bin/sh shell backquote
17.5.4.2. Replacing shell pipeline
17.5.4.3. Replacing
os.system()
17.5.4.4. Replacing the
os.spawn
family
17.5.4.5. Replacing
os.popen()
,
os.popen2()
,
os.popen3()
17.5.4.6. Replacing functions from the
popen2
module
17.5.5. Legacy Shell Invocation Functions
17.5.6. Notes
17.5.6.1. Converting an argument sequence to a string on Windows
17.6.
sched
— Event scheduler
17.6.1. Scheduler Objects
17.7.
queue
— A synchronized queue class
17.7.1. Queue Objects
17.8.
select
— Waiting for I/O completion
17.8.1.
/dev/poll
Polling Objects
17.8.2. Edge and Level Trigger Polling (epoll) Objects
17.8.3. Polling Objects
17.8.4. Kqueue Objects
17.8.5. Kevent Objects
17.9.
dummy_threading
— Drop-in replacement for the
threading
module
17.10.
_thread
— Low-level threading API
17.11.
_dummy_thread
— Drop-in replacement for the
_thread
module
18. Interprocess Communication and Networking
18.1.
socket
— Low-level networking interface
18.1.1. Socket families
18.1.2. Module contents
18.1.3. Socket Objects
18.1.4. Notes on socket timeouts
18.1.4.1. Timeouts and the
connect
method
18.1.4.2. Timeouts and the
accept
method
18.1.5. Example
18.2.
ssl
— TLS/SSL wrapper for socket objects
18.2.1. Functions, Constants, and Exceptions
18.2.1.1. Socket creation
18.2.1.2. Random generation
18.2.1.3. Certificate handling
18.2.1.4. Constants
18.2.2. SSL Sockets
18.2.3. SSL Contexts
18.2.4. Certificates
18.2.4.1. Certificate chains
18.2.4.2. CA certificates
18.2.4.3. Combined key and certificate
18.2.4.4. Self-signed certificates
18.2.5. Examples
18.2.5.1. Testing for SSL support
18.2.5.2. Client-side operation
18.2.5.3. Server-side operation
18.2.6. Notes on non-blocking sockets
18.2.7. Security considerations
18.2.7.1. Verifying certificates
18.2.7.2. Protocol versions
18.2.7.3. Cipher selection
18.3.
asyncore
— Asynchronous socket handler
18.3.1. asyncore Example basic HTTP client
18.3.2. asyncore Example basic echo server
18.4.
asynchat
— Asynchronous socket command/response handler
18.4.1. asynchat - Auxiliary Classes
18.4.2. asynchat Example
18.5.
signal
— Set handlers for asynchronous events
18.5.1. General rules
18.5.1.1. Execution of Python signal handlers
18.5.1.2. Signals and threads
18.5.2. Module contents
18.5.3. Example
18.6.
mmap
— Memory-mapped file support
19. Internet Data Handling
19.1.
email
— An email and MIME handling package
19.1.1.
email.message
: Representing an email message
19.1.2.
email.parser
: Parsing email messages
19.1.2.1. FeedParser API
19.1.2.2. Parser class API
19.1.2.3. Additional notes
19.1.3.
email.generator
: Generating MIME documents
19.1.4.
email.policy
: Policy Objects
19.1.5.
email.headerregistry
: Custom Header Objects
19.1.6.
email.mime
: Creating email and MIME objects from scratch
19.1.7.
email.header
: Internationalized headers
19.1.8.
email.charset
: Representing character sets
19.1.9.
email.encoders
: Encoders
19.1.10.
email.errors
: Exception and Defect classes
19.1.11.
email.utils
: Miscellaneous utilities
19.1.12.
email.iterators
: Iterators
19.1.13.
email
: Examples
19.1.14. Package History
19.1.15. Differences from
mimelib
19.2.
json
— JSON encoder and decoder
19.2.1. Basic Usage
19.2.2. Encoders and Decoders
19.2.3. Standard Compliance
19.2.3.1. Character Encodings
19.2.3.2. Top-level Non-Object, Non-Array Values
19.2.3.3. Infinite and NaN Number Values
19.2.3.4. Repeated Names Within an Object
19.3.
mailcap
— Mailcap file handling
19.4.
mailbox
— Manipulate mailboxes in various formats
19.4.1.
Mailbox
objects
19.4.1.1.
Maildir
19.4.1.2.
mbox
19.4.1.3.
MH
19.4.1.4.
Babyl
19.4.1.5.
MMDF
19.4.2.
Message
objects
19.4.2.1.
MaildirMessage
19.4.2.2.
mboxMessage
19.4.2.3.
MHMessage
19.4.2.4.
BabylMessage
19.4.2.5.
MMDFMessage
19.4.3. Exceptions
19.4.4. Examples
19.5.
mimetypes
— Map filenames to MIME types
19.5.1. MimeTypes Objects
19.6.
base64
— RFC 3548: Base16, Base32, Base64 Data Encodings
19.7.
binhex
— Encode and decode binhex4 files
19.7.1. Notes
19.8.
binascii
— Convert between binary and ASCII
19.9.
quopri
— Encode and decode MIME quoted-printable data
19.10.
uu
— Encode and decode uuencode files
20. Structured Markup Processing Tools
20.1.
html
— HyperText Markup Language support
20.2.
html.parser
— Simple HTML and XHTML parser
20.2.1. Example HTML Parser Application
20.2.2.
HTMLParser
Methods
20.2.3. Examples
20.3.
html.entities
— Definitions of HTML general entities
20.4. XML Processing Modules
20.5.
xml.etree.ElementTree
— The ElementTree XML API
20.5.1. Tutorial
20.5.1.1. XML tree and elements
20.5.1.2. Parsing XML
20.5.1.3. Finding interesting elements
20.5.1.4. Modifying an XML File
20.5.1.5. Building XML documents
20.5.1.6. Additional resources
20.5.2. XPath support
20.5.2.1. Example
20.5.2.2. Supported XPath syntax
20.5.3. Reference
20.5.3.1. Functions
20.5.3.2. Element Objects
20.5.3.3. ElementTree Objects
20.5.3.4. QName Objects
20.5.3.5. TreeBuilder Objects
20.5.3.6. XMLParser Objects
20.5.3.7. Exceptions
20.6.
xml.dom
— The Document Object Model API
20.6.1. Module Contents
20.6.2. Objects in the DOM
20.6.2.1. DOMImplementation Objects
20.6.2.2. Node Objects
20.6.2.3. NodeList Objects
20.6.2.4. DocumentType Objects
20.6.2.5. Document Objects
20.6.2.6. Element Objects
20.6.2.7. Attr Objects
20.6.2.8. NamedNodeMap Objects
20.6.2.9. Comment Objects
20.6.2.10. Text and CDATASection Objects
20.6.2.11. ProcessingInstruction Objects
20.6.2.12. Exceptions
20.6.3. Conformance
20.6.3.1. Type Mapping
20.6.3.2. Accessor Methods
20.7.
xml.dom.minidom
— Lightweight DOM implementation
20.7.1. DOM Objects
20.7.2. DOM Example
20.7.3. minidom and the DOM standard
20.8.
xml.dom.pulldom
— Support for building partial DOM trees
20.8.1. DOMEventStream Objects
20.9.
xml.sax
— Support for SAX2 parsers
20.9.1. SAXException Objects
20.10.
xml.sax.handler
— Base classes for SAX handlers
20.10.1. ContentHandler Objects
20.10.2. DTDHandler Objects
20.10.3. EntityResolver Objects
20.10.4. ErrorHandler Objects
20.11.
xml.sax.saxutils
— SAX Utilities
20.12.
xml.sax.xmlreader
— Interface for XML parsers
20.12.1. XMLReader Objects
20.12.2. IncrementalParser Objects
20.12.3. Locator Objects
20.12.4. InputSource Objects
20.12.5. The
Attributes
Interface
20.12.6. The
AttributesNS
Interface
20.13.
xml.parsers.expat
— Fast XML parsing using Expat
20.13.1. XMLParser Objects
20.13.2. ExpatError Exceptions
20.13.3. Example
20.13.4. Content Model Descriptions
20.13.5. Expat error constants
21. Internet Protocols and Support
21.1.
webbrowser
— Convenient Web-browser controller
21.1.1. Browser Controller Objects
21.2.
cgi
— Common Gateway Interface support
21.2.1. Introduction
21.2.2. Using the cgi module
21.2.3. Higher Level Interface
21.2.4. Functions
21.2.5. Caring about security
21.2.6. Installing your CGI script on a Unix system
21.2.7. Testing your CGI script
21.2.8. Debugging CGI scripts
21.2.9. Common problems and solutions
21.3.
cgitb
— Traceback manager for CGI scripts
21.4.
wsgiref
— WSGI Utilities and Reference Implementation
21.4.1.
wsgiref.util
– WSGI environment utilities
21.4.2.
wsgiref.headers
– WSGI response header tools
21.4.3.
wsgiref.simple_server
– a simple WSGI HTTP server
21.4.4.
wsgiref.validate
— WSGI conformance checker
21.4.5.
wsgiref.handlers
– server/gateway base classes
21.4.6. Examples
21.5.
urllib
— URL handling modules
21.6.
urllib.request
— Extensible library for opening URLs
21.6.1. Request Objects
21.6.2. OpenerDirector Objects
21.6.3. BaseHandler Objects
21.6.4. HTTPRedirectHandler Objects
21.6.5. HTTPCookieProcessor Objects
21.6.6. ProxyHandler Objects
21.6.7. HTTPPasswordMgr Objects
21.6.8. AbstractBasicAuthHandler Objects
21.6.9. HTTPBasicAuthHandler Objects
21.6.10. ProxyBasicAuthHandler Objects
21.6.11. AbstractDigestAuthHandler Objects
21.6.12. HTTPDigestAuthHandler Objects
21.6.13. ProxyDigestAuthHandler Objects
21.6.14. HTTPHandler Objects
21.6.15. HTTPSHandler Objects
21.6.16. FileHandler Objects
21.6.17. DataHandler Objects
21.6.18. FTPHandler Objects
21.6.19. CacheFTPHandler Objects
21.6.20. UnknownHandler Objects
21.6.21. HTTPErrorProcessor Objects
21.6.22. Examples
21.6.23. Legacy interface
21.6.24.
urllib.request
Restrictions
21.7.
urllib.response
— Response classes used by urllib
21.8.
urllib.parse
— Parse URLs into components
21.8.1. URL Parsing
21.8.2. Parsing ASCII Encoded Bytes
21.8.3. Structured Parse Results
21.8.4. URL Quoting
21.9.
urllib.error
— Exception classes raised by urllib.request
21.10.
urllib.robotparser
— Parser for robots.txt
21.11.
http
— HTTP modules
21.12.
http.client
— HTTP protocol client
21.12.1. HTTPConnection Objects
21.12.2. HTTPResponse Objects
21.12.3. Examples
21.12.4. HTTPMessage Objects
21.13.
ftplib
— FTP protocol client
21.13.1. FTP Objects
21.13.2. FTP_TLS Objects
21.14.
poplib
— POP3 protocol client
21.14.1. POP3 Objects
21.14.2. POP3 Example
21.15.
imaplib
— IMAP4 protocol client
21.15.1. IMAP4 Objects
21.15.2. IMAP4 Example
21.16.
nntplib
— NNTP protocol client
21.16.1. NNTP Objects
21.16.1.1. Attributes
21.16.1.2. Methods
21.16.2. Utility functions
21.17.
smtplib
— SMTP protocol client
21.17.1. SMTP Objects
21.17.2. SMTP Example
21.18.
smtpd
— SMTP Server
21.18.1. SMTPServer Objects
21.18.2. DebuggingServer Objects
21.18.3. PureProxy Objects
21.18.4. MailmanProxy Objects
21.18.5. SMTPChannel Objects
21.19.
telnetlib
— Telnet client
21.19.1. Telnet Objects
21.19.2. Telnet Example
21.20.
uuid
— UUID objects according to RFC 4122
21.20.1. Example
21.21.
socketserver
— A framework for network servers
21.21.1. Server Creation Notes
21.21.2. Server Objects
21.21.3. RequestHandler Objects
21.21.4. Examples
21.21.4.1.
socketserver.TCPServer
Example
21.21.4.2.
socketserver.UDPServer
Example
21.21.4.3. Asynchronous Mixins
21.22.
http.server
— HTTP servers
21.23.
http.cookies
— HTTP state management
21.23.1. Cookie Objects
21.23.2. Morsel Objects
21.23.3. Example
21.24.
http.cookiejar
— Cookie handling for HTTP clients
21.24.1. CookieJar and FileCookieJar Objects
21.24.2. FileCookieJar subclasses and co-operation with web browsers
21.24.3. CookiePolicy Objects
21.24.4. DefaultCookiePolicy Objects
21.24.5. Cookie Objects
21.24.6. Examples
21.25.
xmlrpc
— XMLRPC server and client modules
21.26.
xmlrpc.client
— XML-RPC client access
21.26.1. ServerProxy Objects
21.26.2. DateTime Objects
21.26.3. Binary Objects
21.26.4. Fault Objects
21.26.5. ProtocolError Objects
21.26.6. MultiCall Objects
21.26.7. Convenience Functions
21.26.8. Example of Client Usage
21.26.9. Example of Client and Server Usage
21.27.
xmlrpc.server
— Basic XML-RPC servers
21.27.1. SimpleXMLRPCServer Objects
21.27.1.1. SimpleXMLRPCServer Example
21.27.2. CGIXMLRPCRequestHandler
21.27.3. Documenting XMLRPC server
21.27.4. DocXMLRPCServer Objects
21.27.5. DocCGIXMLRPCRequestHandler
21.28.
ipaddress
— IPv4/IPv6 manipulation library
21.28.1. Convenience factory functions
21.28.2. IP Addresses
21.28.2.1. Address objects
21.28.2.2. Conversion to Strings and Integers
21.28.2.3. Operators
21.28.2.3.1. Logical operators
21.28.2.3.2. Arithmetic operators
21.28.3. IP Network definitions
21.28.3.1. Prefix, net mask and host mask
21.28.3.2. Network objects
21.28.3.3. Operators
21.28.3.3.1. Logical operators
21.28.3.3.2. Iteration
21.28.3.3.3. Networks as containers of addresses
21.28.4. Interface objects
21.28.5. Other Module Level Functions
21.28.6. Custom Exceptions
22. Multimedia Services
22.1.
audioop
— Manipulate raw audio data
22.2.
aifc
— Read and write AIFF and AIFC files
22.3.
sunau
— Read and write Sun AU files
22.3.1. AU_read Objects
22.3.2. AU_write Objects
22.4.
wave
— Read and write WAV files
22.4.1. Wave_read Objects
22.4.2. Wave_write Objects
22.5.
chunk
— Read IFF chunked data
22.6.
colorsys
— Conversions between color systems
22.7.
imghdr
— Determine the type of an image
22.8.
sndhdr
— Determine type of sound file
22.9.
ossaudiodev
— Access to OSS-compatible audio devices
22.9.1. Audio Device Objects
22.9.2. Mixer Device Objects
23. Internationalization
23.1.
gettext
— Multilingual internationalization services
23.1.1. GNU
gettext
API
23.1.2. Class-based API
23.1.2.1. The
NullTranslations
class
23.1.2.2. The
GNUTranslations
class
23.1.2.3. Solaris message catalog support
23.1.2.4. The Catalog constructor
23.1.3. Internationalizing your programs and modules
23.1.3.1. Localizing your module
23.1.3.2. Localizing your application
23.1.3.3. Changing languages on the fly
23.1.3.4. Deferred translations
23.1.4. Acknowledgements
23.2.
locale
— Internationalization services
23.2.1. Background, details, hints, tips and caveats
23.2.2. For extension writers and programs that embed Python
23.2.3. Access to message catalogs
24. Program Frameworks
24.1.
turtle
— Turtle graphics
24.1.1. Introduction
24.1.2. Overview of available Turtle and Screen methods
24.1.2.1. Turtle methods
24.1.2.2. Methods of TurtleScreen/Screen
24.1.3. Methods of RawTurtle/Turtle and corresponding functions
24.1.3.1. Turtle motion
24.1.3.2. Tell Turtle’s state
24.1.3.3. Settings for measurement
24.1.3.4. Pen control
24.1.3.4.1. Drawing state
24.1.3.4.2. Color control
24.1.3.4.3. Filling
24.1.3.4.4. More drawing control
24.1.3.5. Turtle state
24.1.3.5.1. Visibility
24.1.3.5.2. Appearance
24.1.3.6. Using events
24.1.3.7. Special Turtle methods
24.1.3.8. Compound shapes
24.1.4. Methods of TurtleScreen/Screen and corresponding functions
24.1.4.1. Window control
24.1.4.2. Animation control
24.1.4.3. Using screen events
24.1.4.4. Input methods
24.1.4.5. Settings and special methods
24.1.4.6. Methods specific to Screen, not inherited from TurtleScreen
24.1.5. Public classes
24.1.6. Help and configuration
24.1.6.1. How to use help
24.1.6.2. Translation of docstrings into different languages
24.1.6.3. How to configure Screen and Turtles
24.1.7. Demo scripts
24.1.8. Changes since Python 2.6
24.1.9. Changes since Python 3.0
24.2.
cmd
— Support for line-oriented command interpreters
24.2.1. Cmd Objects
24.2.2. Cmd Example
24.3.
shlex
— Simple lexical analysis
24.3.1. shlex Objects
24.3.2. Parsing Rules
25. Graphical User Interfaces with Tk
25.1.
tkinter
— Python interface to Tcl/Tk
25.1.1. Tkinter Modules
25.1.2. Tkinter Life Preserver
25.1.2.1. How To Use This Section
25.1.2.2. A Simple Hello World Program
25.1.3. A (Very) Quick Look at Tcl/Tk
25.1.4. Mapping Basic Tk into Tkinter
25.1.5. How Tk and Tkinter are Related
25.1.6. Handy Reference
25.1.6.1. Setting Options
25.1.6.2. The Packer
25.1.6.3. Packer Options
25.1.6.4. Coupling Widget Variables
25.1.6.5. The Window Manager
25.1.6.6. Tk Option Data Types
25.1.6.7. Bindings and Events
25.1.6.8. The index Parameter
25.1.6.9. Images
25.2.
tkinter.ttk
— Tk themed widgets
25.2.1. Using Ttk
25.2.2. Ttk Widgets
25.2.3. Widget
25.2.3.1. Standard Options
25.2.3.2. Scrollable Widget Options
25.2.3.3. Label Options
25.2.3.4. Compatibility Options
25.2.3.5. Widget States
25.2.3.6. ttk.Widget
25.2.4. Combobox
25.2.4.1. Options
25.2.4.2. Virtual events
25.2.4.3. ttk.Combobox
25.2.5. Notebook
25.2.5.1. Options
25.2.5.2. Tab Options
25.2.5.3. Tab Identifiers
25.2.5.4. Virtual Events
25.2.5.5. ttk.Notebook
25.2.6. Progressbar
25.2.6.1. Options
25.2.6.2. ttk.Progressbar
25.2.7. Separator
25.2.7.1. Options
25.2.8. Sizegrip
25.2.8.1. Platform-specific notes
25.2.8.2. Bugs
25.2.9. Treeview
25.2.9.1. Options
25.2.9.2. Item Options
25.2.9.3. Tag Options
25.2.9.4. Column Identifiers
25.2.9.5. Virtual Events
25.2.9.6. ttk.Treeview
25.2.10. Ttk Styling
25.2.10.1. Layouts
25.3.
tkinter.tix
— Extension widgets for Tk
25.3.1. Using Tix
25.3.2. Tix Widgets
25.3.2.1. Basic Widgets
25.3.2.2. File Selectors
25.3.2.3. Hierarchical ListBox
25.3.2.4. Tabular ListBox
25.3.2.5. Manager Widgets
25.3.2.6. Image Types
25.3.2.7. Miscellaneous Widgets
25.3.2.8. Form Geometry Manager
25.3.3. Tix Commands
25.4.
tkinter.scrolledtext
— Scrolled Text Widget
25.5. IDLE
25.5.1. Menus
25.5.1.1. File menu
25.5.1.2. Edit menu
25.5.1.3. Windows menu
25.5.1.4. Debug menu
25.5.1.5. Edit context menu
25.5.1.6. Shell context menu
25.5.2. Basic editing and navigation
25.5.2.1. Automatic indentation
25.5.2.2. Python Shell window
25.5.3. Syntax colors
25.5.4. Startup
25.5.4.1. Command line usage
25.6. Other Graphical User Interface Packages
26. Development Tools
26.1.
pydoc
— Documentation generator and online help system
26.2.
doctest
— Test interactive Python examples
26.2.1. Simple Usage: Checking Examples in Docstrings
26.2.2. Simple Usage: Checking Examples in a Text File
26.2.3. How It Works
26.2.3.1. Which Docstrings Are Examined?
26.2.3.2. How are Docstring Examples Recognized?
26.2.3.3. What’s the Execution Context?
26.2.3.4. What About Exceptions?
26.2.3.5. Option Flags
26.2.3.6. Directives
26.2.3.7. Warnings
26.2.4. Basic API
26.2.5. Unittest API
26.2.6. Advanced API
26.2.6.1. DocTest Objects
26.2.6.2. Example Objects
26.2.6.3. DocTestFinder objects
26.2.6.4. DocTestParser objects
26.2.6.5. DocTestRunner objects
26.2.6.6. OutputChecker objects
26.2.7. Debugging
26.2.8. Soapbox
26.3.
unittest
— Unit testing framework
26.3.1. Basic example
26.3.2. Command-Line Interface
26.3.2.1. Command-line options
26.3.3. Test Discovery
26.3.4. Organizing test code
26.3.5. Re-using old test code
26.3.6. Skipping tests and expected failures
26.3.7. Classes and functions
26.3.7.1. Test cases
26.3.7.1.1. Deprecated aliases
26.3.7.2. Grouping tests
26.3.7.3. Loading and running tests
26.3.7.3.1. load_tests Protocol
26.3.8. Class and Module Fixtures
26.3.8.1. setUpClass and tearDownClass
26.3.8.2. setUpModule and tearDownModule
26.3.9. Signal Handling
26.4.
unittest.mock
— mock object library
26.4.1. Quick Guide
26.4.2. The Mock Class
26.4.2.1. Calling
26.4.2.2. Deleting Attributes
26.4.2.3. Attaching Mocks as Attributes
26.5. The patchers
26.5.1. patch
26.5.2. patch.object
26.5.3. patch.dict
26.5.4. patch.multiple
26.5.5. patch methods: start and stop
26.5.6. TEST_PREFIX
26.5.7. Nesting Patch Decorators
26.5.8. Where to patch
26.5.9. Patching Descriptors and Proxy Objects
26.6. MagicMock and magic method support
26.6.1. Mocking Magic Methods
26.6.2. Magic Mock
26.7. Helpers
26.7.1. sentinel
26.7.2. DEFAULT
26.7.3. call
26.7.4. create_autospec
26.7.5. ANY
26.7.6. FILTER_DIR
26.7.7. mock_open
26.7.8. Autospeccing
26.8.
unittest.mock
— getting started
26.8.1. Using Mock
26.8.1.1. Mock Patching Methods
26.8.1.2. Mock for Method Calls on an Object
26.8.1.3. Mocking Classes
26.8.1.4. Naming your mocks
26.8.1.5. Tracking all Calls
26.8.1.6. Setting Return Values and Attributes
26.8.1.7. Raising exceptions with mocks
26.8.1.8. Side effect functions and iterables
26.8.1.9. Creating a Mock from an Existing Object
26.8.2. Patch Decorators
26.9. Further Examples
26.9.1. Mocking chained calls
26.9.2. Partial mocking
26.9.3. Mocking a Generator Method
26.9.4. Applying the same patch to every test method
26.9.5. Mocking Unbound Methods
26.9.6. Checking multiple calls with mock
26.9.7. Coping with mutable arguments
26.9.8. Nesting Patches
26.9.9. Mocking a dictionary with MagicMock
26.9.10. Mock subclasses and their attributes
26.9.11. Mocking imports with patch.dict
26.9.12. Tracking order of calls and less verbose call assertions
26.9.13. More complex argument matching
26.10. 2to3 - Automated Python 2 to 3 code translation
26.10.1. Using 2to3
26.10.2. Fixers
26.10.3.
lib2to3
- 2to3’s library
26.11.
test
— Regression tests package for Python
26.11.1. Writing Unit Tests for the
test
package
26.11.2. Running tests using the command-line interface
26.12.
test.support
— Utilities for the Python test suite
26.13.
venv
— Creation of virtual environments
26.13.1. Creating virtual environments
26.13.2. API
27. Debugging and Profiling
27.1.
bdb
— Debugger framework
27.2.
faulthandler
— Dump the Python traceback
27.2.1. Dump the traceback
27.2.2. Fault handler state
27.2.3. Dump the tracebacks after a timeout
27.2.4. Dump the traceback on a user signal
27.2.5. File descriptor issue
27.2.6. Example
27.3.
pdb
— The Python Debugger
27.3.1. Debugger Commands
27.4. The Python Profilers
27.4.1. Introduction to the profilers
27.4.2. Instant User’s Manual
27.4.3. What Is Deterministic Profiling?
27.4.4. Reference Manual –
profile
and
cProfile
27.4.4.1. The
Stats
Class
27.4.5. Limitations
27.4.6. Calibration
27.4.7. Extensions — Deriving Better Profilers
27.5.
timeit
— Measure execution time of small code snippets
27.5.1. Basic Examples
27.5.2. Python Interface
27.5.3. Command-Line Interface
27.5.4. Examples
27.6.
trace
— Trace or track Python statement execution
27.6.1. Command-Line Usage
27.6.1.1. Main options
27.6.1.2. Modifiers
27.6.1.3. Filters
27.6.2. Programmatic Interface
28. Python Runtime Services
28.1.
sys
— System-specific parameters and functions
28.2.
sysconfig
— Provide access to Python’s configuration information
28.2.1. Configuration variables
28.2.2. Installation paths
28.2.3. Other functions
28.2.4. Using
sysconfig
as a script
28.3.
builtins
— Built-in objects
28.4.
__main__
— Top-level script environment
28.5.
warnings
— Warning control
28.5.1. Warning Categories
28.5.2. The Warnings Filter
28.5.2.1. Default Warning Filters
28.5.3. Temporarily Suppressing Warnings
28.5.4. Testing Warnings
28.5.5. Updating Code For New Versions of Python
28.5.6. Available Functions
28.5.7. Available Context Managers
28.6.
contextlib
— Utilities for
with
-statement contexts
28.6.1. Utilities
28.6.2. Examples and Recipes
28.6.2.1. Supporting a variable number of context managers
28.6.2.2. Simplifying support for single optional context managers
28.6.2.3. Catching exceptions from
__enter__
methods
28.6.2.4. Cleaning up in an
__enter__
implementation
28.6.2.5. Replacing any use of
try-finally
and flag variables
28.6.2.6. Using a context manager as a function decorator
28.7.
abc
— Abstract Base Classes
28.8.
atexit
— Exit handlers
28.8.1.
atexit
Example
28.9.
traceback
— Print or retrieve a stack traceback
28.9.1. Traceback Examples
28.10.
__future__
— Future statement definitions
28.11.
gc
— Garbage Collector interface
28.12.
inspect
— Inspect live objects
28.12.1. Types and members
28.12.2. Retrieving source code
28.12.3. Introspecting callables with the Signature object
28.12.4. Classes and functions
28.12.5. The interpreter stack
28.12.6. Fetching attributes statically
28.12.7. Current State of a Generator
28.13.
site
— Site-specific configuration hook
28.14.
fpectl
— Floating point exception control
28.14.1. Example
28.14.2. Limitations and other considerations
28.15.
distutils
— Building and installing Python modules
29. Custom Python Interpreters
29.1.
code
— Interpreter base classes
29.1.1. Interactive Interpreter Objects
29.1.2. Interactive Console Objects
29.2.
codeop
— Compile Python code
30. Importing Modules
30.1.
imp
— Access the
import
internals
30.1.1. Examples
30.2.
zipimport
— Import modules from Zip archives
30.2.1. zipimporter Objects
30.2.2. Examples
30.3.
pkgutil
— Package extension utility
30.4.
modulefinder
— Find modules used by a script
30.4.1. Example usage of
ModuleFinder
30.5.
runpy
— Locating and executing Python modules
30.6.
importlib
– An implementation of
import
30.6.1. Introduction
30.6.2. Functions
30.6.3.
importlib.abc
– Abstract base classes related to import
30.6.4.
importlib.machinery
– Importers and path hooks
30.6.5.
importlib.util
– Utility code for importers
31. Python Language Services
31.1.
parser
— Access Python parse trees
31.1.1. Creating ST Objects
31.1.2. Converting ST Objects
31.1.3. Queries on ST Objects
31.1.4. Exceptions and Error Handling
31.1.5. ST Objects
31.1.6. Example: Emulation of
compile()
31.2.
ast
— Abstract Syntax Trees
31.2.1. Node classes
31.2.2. Abstract Grammar
31.2.3.
ast
Helpers
31.3.
symtable
— Access to the compiler’s symbol tables
31.3.1. Generating Symbol Tables
31.3.2. Examining Symbol Tables
31.4.
symbol
— Constants used with Python parse trees
31.5.
token
— Constants used with Python parse trees
31.6.
keyword
— Testing for Python keywords
31.7.
tokenize
— Tokenizer for Python source
31.7.1. Tokenizing Input
31.7.2. Command-Line Usage
31.7.3. Examples
31.8.
tabnanny
— Detection of ambiguous indentation
31.9.
pyclbr
— Python class browser support
31.9.1. Class Objects
31.9.2. Function Objects
31.10.
py_compile
— Compile Python source files
31.11.
compileall
— Byte-compile Python libraries
31.11.1. Command-line use
31.11.2. Public functions
31.12.
dis
— Disassembler for Python bytecode
31.12.1. Python Bytecode Instructions
31.13.
pickletools
— Tools for pickle developers
31.13.1. Command line usage
31.13.1.1. Command line options
31.13.2. Programmatic Interface
32. Miscellaneous Services
32.1.
formatter
— Generic output formatting
32.1.1. The Formatter Interface
32.1.2. Formatter Implementations
32.1.3. The Writer Interface
32.1.4. Writer Implementations
33. MS Windows Specific Services
33.1.
msilib
— Read and write Microsoft Installer files
33.1.1. Database Objects
33.1.2. View Objects
33.1.3. Summary Information Objects
33.1.4. Record Objects
33.1.5. Errors
33.1.6. CAB Objects
33.1.7. Directory Objects
33.1.8. Features
33.1.9. GUI classes
33.1.10. Precomputed tables
33.2.
msvcrt
– Useful routines from the MS VC++ runtime
33.2.1. File Operations
33.2.2. Console I/O
33.2.3. Other Functions
33.3.
winreg
– Windows registry access
33.3.1. Functions
33.3.2. Constants
33.3.2.1. HKEY_* Constants
33.3.2.2. Access Rights
33.3.2.2.1. 64-bit Specific
33.3.2.3. Value Types
33.3.3. Registry Handle Objects
33.4.
winsound
— Sound-playing interface for Windows
34. Unix Specific Services
34.1.
posix
— The most common POSIX system calls
34.1.1. Large File Support
34.1.2. Notable Module Contents
34.2.
pwd
— The password database
34.3.
spwd
— The shadow password database
34.4.
grp
— The group database
34.5.
crypt
— Function to check Unix passwords
34.5.1. Hashing Methods
34.5.2. Module Attributes
34.5.3. Module Functions
34.5.4. Examples
34.6.
termios
— POSIX style tty control
34.6.1. Example
34.7.
tty
— Terminal control functions
34.8.
pty
— Pseudo-terminal utilities
34.8.1. Example
34.9.
fcntl
— The
fcntl()
and
ioctl()
system calls
34.10.
pipes
— Interface to shell pipelines
34.10.1. Template Objects
34.11.
resource
— Resource usage information
34.11.1. Resource Limits
34.11.2. Resource Usage
34.12.
nis
— Interface to Sun’s NIS (Yellow Pages)
34.13.
syslog
— Unix syslog library routines
34.13.1. Examples
34.13.1.1. Simple example
35. Undocumented Modules
35.1. Platform specific 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.10.1. Reference Counting in Python
1.10.2. Ownership Rules
1.10.3. Thin Ice
1.10.4. NULL Pointers
1.11. Writing Extensions in C++
1.12. Providing a C API for an Extension Module
2. Defining New Types
2.1. The Basics
2.1.1. Adding data and methods to the Basic example
2.1.2. Providing finer control over data attributes
2.1.3. Supporting cyclic garbage collection
2.1.4. Subclassing other types
2.2. Type Methods
2.2.1. Finalization and De-allocation
2.2.2. Object Presentation
2.2.3. Attribute Management
2.2.3.1. Generic Attribute Management
2.2.3.2. Type-specific Attribute Management
2.2.4. Object Comparison
2.2.5. Abstract Protocol Support
2.2.6. Weak Reference Support
2.2.7. More Suggestions
3. Building C and C++ Extensions with distutils
3.1. Distributing your extension modules
4. Building C and C++ Extensions on Windows
4.1. A Cookbook Approach
4.2. Differences Between Unix and Windows
4.3. Using DLLs in Practice
5. Embedding Python in Another Application
5.1. Very High Level Embedding
5.2. Beyond Very High Level Embedding: An overview
5.3. Pure Embedding
5.4. Extending Embedded Python
5.5. Embedding Python in C++
5.6. Compiling and Linking under Unix-like systems
Python/C API Reference Manual
Introduction
Include Files
Objects, Types and Reference Counts
Reference Counts
Reference Count Details
Types
Exceptions
Embedding Python
Debugging Builds
The Very High Level Layer
Reference Counting
Exception Handling
Exception Objects
Unicode Exception Objects
Recursion Control
Standard Exceptions
Utilities
Operating System Utilities
System Functions
Process Control
Importing Modules
Data marshalling support
Parsing arguments and building values
Parsing arguments
Strings and buffers
Numbers
Other objects
API Functions
Building values
String conversion and formatting
Reflection
Codec registry and support functions
Codec lookup API
Registry API for Unicode encoding error handlers
Abstract Objects Layer
Object Protocol
Number Protocol
Sequence Protocol
Mapping Protocol
Iterator Protocol
Buffer Protocol
Buffer structure
Buffer request types
request-independent fields
readonly, format
shape, strides, suboffsets
contiguity requests
compound requests
Complex arrays
NumPy-style: shape and strides
PIL-style: shape, strides and suboffsets
Buffer-related functions
Old Buffer Protocol
Concrete Objects Layer
Fundamental Objects
Type Objects
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
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
UCS4 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
List Objects
Mapping Objects
Dictionary Objects
Other Objects
Set Objects
Function Objects
Instance Method Objects
Method Objects
File Objects
Module Objects
Initializing C modules
Iterator Objects
Descriptor Objects
Slice Objects
MemoryView objects
Weak Reference Objects
Capsules
Cell Objects
Generator Objects
DateTime Objects
Code Objects
Initialization, Finalization, and Threads
Initializing and finalizing the interpreter
Process-wide parameters
Thread State and the Global Interpreter Lock
Releasing the GIL from extension code
Non-Python created threads
High-level API
Low-level API
Sub-interpreter support
Bugs and caveats
Asynchronous Notifications
Profiling and Tracing
Advanced Debugger Support
Memory Management
Overview
Memory Interface
Examples
Object Implementation Support
Allocating Objects on the Heap
Common Object Structures
Type Objects
Number Object Structures
Mapping Object Structures
Sequence Object Structures
Buffer Object Structures
Supporting Cyclic Garbage Collection
Stable Appliction Binary Interface
Distributing Python Modules
1. An Introduction to Distutils
1.1. Concepts & Terminology
1.2. A Simple Example
1.3. General Python terminology
1.4. Distutils-specific terminology
2. Writing the Setup Script
2.1. Listing whole packages
2.2. Listing individual modules
2.3. Describing extension modules
2.3.1. Extension names and packages
2.3.2. Extension source files
2.3.3. Preprocessor options
2.3.4. Library options
2.3.5. Other options
2.4. Relationships between Distributions and Packages
2.5. Installing Scripts
2.6. Installing Package Data
2.7. Installing Additional Files
2.8. Additional meta-data
2.9. Debugging the setup script
3. Writing the Setup Configuration File
4. Creating a Source Distribution
4.1. Specifying the files to distribute
4.2. Manifest-related options
5. Creating Built Distributions
5.1. Creating RPM packages
5.2. Creating Windows Installers
5.3. Cross-compiling on Windows
5.3.1. The Postinstallation script
5.4. Vista User Access Control (UAC)
6. Registering with the Package Index
6.1. The .pypirc file
7. Uploading Packages to the Package Index
7.1. PyPI package display
8. Examples
8.1. Pure Python distribution (by module)
8.2. Pure Python distribution (by package)
8.3. Single extension module
8.4. Checking a package
9. Extending Distutils
9.1. Integrating new commands
9.2. Adding new distribution types
10. Command Reference
10.1. Installing modules: the
install
command family
10.1.1.
install_data
10.1.2.
install_scripts
10.2. Creating a source distribution: the
sdist
command
11. API Reference
11.1.
distutils.core
— Core Distutils functionality
11.2.
distutils.ccompiler
— CCompiler base class
11.3.
distutils.unixccompiler
— Unix C Compiler
11.4.
distutils.msvccompiler
— Microsoft Compiler
11.5.
distutils.bcppcompiler
— Borland Compiler
11.6.
distutils.cygwincompiler
— Cygwin Compiler
11.7.
distutils.emxccompiler
— OS/2 EMX Compiler
11.8.
distutils.archive_util
— Archiving utilities
11.9.
distutils.dep_util
— Dependency checking
11.10.
distutils.dir_util
— Directory tree operations
11.11.
distutils.file_util
— Single file operations
11.12.
distutils.util
— Miscellaneous other utility functions
11.13.
distutils.dist
— The Distribution class
11.14.
distutils.extension
— The Extension class
11.15.
distutils.debug
— Distutils debug mode
11.16.
distutils.errors
— Distutils exceptions
11.17.
distutils.fancy_getopt
— Wrapper around the standard getopt module
11.18.
distutils.filelist
— The FileList class
11.19.
distutils.log
— Simple PEP 282-style logging
11.20.
distutils.spawn
— Spawn a sub-process
11.21.
distutils.sysconfig
— System configuration information
11.22.
distutils.text_file
— The TextFile class
11.23.
distutils.version
— Version number classes
11.24.
distutils.cmd
— Abstract base class for Distutils commands
11.25. Creating a new Distutils command
11.26.
distutils.command
— Individual Distutils commands
11.27.
distutils.command.bdist
— Build a binary installer
11.28.
distutils.command.bdist_packager
— Abstract base class for packagers
11.29.
distutils.command.bdist_dumb
— Build a “dumb” installer
11.30.
distutils.command.bdist_msi
— Build a Microsoft Installer binary package
11.31.
distutils.command.bdist_rpm
— Build a binary distribution as a Redhat RPM and SRPM
11.32.
distutils.command.bdist_wininst
— Build a Windows installer
11.33.
distutils.command.sdist
— Build a source distribution
11.34.
distutils.command.build
— Build all files of a package
11.35.
distutils.command.build_clib
— Build any C libraries in a package
11.36.
distutils.command.build_ext
— Build any extensions in a package
11.37.
distutils.command.build_py
— Build the .py/.pyc files of a package
11.38.
distutils.command.build_scripts
— Build the scripts of a package
11.39.
distutils.command.clean
— Clean a package build area
11.40.
distutils.command.config
— Perform package configuration
11.41.
distutils.command.install
— Install a package
11.42.
distutils.command.install_data
— Install data files from a package
11.43.
distutils.command.install_headers
— Install C/C++ header files from a package
11.44.
distutils.command.install_lib
— Install library files from a package
11.45.
distutils.command.install_scripts
— Install script files from a package
11.46.
distutils.command.register
— Register a module with the Python Package Index
11.47.
distutils.command.check
— Check the meta-data of a package
Installing Python Modules
Introduction
Best case: trivial installation
The new standard: Distutils
Standard Build and Install
Platform variations
Splitting the job up
How building works
How installation works
Alternate Installation
Alternate installation: the user scheme
Alternate installation: the home scheme
Alternate installation: Unix (the prefix scheme)
Alternate installation: Windows (the prefix scheme)
Custom Installation
Modifying Python’s Search Path
Distutils Configuration Files
Location and names of config files
Syntax of config files
Building Extensions: Tips and Tricks
Tweaking compiler/linker flags
Using non-Microsoft compilers on Windows
Borland/CodeGear C++
GNU C / Cygwin / MinGW
Older Versions of Python and MinGW
Python HOWTOs
Python Advocacy HOWTO
Reasons to Use Python
Programmability
Prototyping
Simplicity and Ease of Understanding
Java Integration
Arguments and Rebuttals
Useful Resources
Porting Python 2 Code to Python 3
Choosing a Strategy
Universal Bits of Advice
Python 3 and 3to2
Python 2 and 2to3
Support Python 2.7
Try to Support Python 2.6 and Newer Only
from
__future__
import
print_function
from
__future__
import
unicode_literals
Bytes literals
Supporting Python 2.5 and Newer Only
from
__future__
import
absolute_import
Handle Common “Gotchas”
from
__future__
import
division
Specify when opening a file as binary
Text files
Subclass
object
Deal With the Bytes/String Dichotomy
Mark Up Python 2 String Literals
Decide what APIs Will Accept
Bytes / Unicode Comparison
Indexing bytes objects
__str__()
/
__unicode__()
Don’t Index on Exceptions
Don’t use
__getslice__
& Friends
Updating doctests
Update
map
for imbalanced input sequences
Eliminate
-3
Warnings
Run 2to3
Manually
During Installation
Verify & Test
Python 2/3 Compatible Source
Follow The Steps for Using 2to3
Use six
Capturing the Currently Raised Exception
Other Resources
Porting Extension Modules to Python 3
Conditional compilation
Changes to Object APIs
str/unicode Unification
long/int Unification
Module initialization and state
CObject replaced with Capsule
Other options
Curses Programming with Python
What is curses?
The Python curses module
Starting and ending a curses application
Windows and Pads
Displaying Text
Attributes and Color
User Input
For More Information
Descriptor HowTo Guide
Abstract
Definition and Introduction
Descriptor Protocol
Invoking Descriptors
Descriptor Example
Properties
Functions and Methods
Static Methods and Class Methods
Functional Programming HOWTO
Introduction
Formal provability
Modularity
Ease of debugging and testing
Composability
Iterators
Data Types That Support Iterators
Generator expressions and list comprehensions
Generators
Passing values into a generator
Built-in functions
The itertools module
Creating new iterators
Calling functions on elements
Selecting elements
Grouping elements
The functools module
The operator module
Small functions and the lambda expression
Revision History and Acknowledgements
References
General
Python-specific
Python documentation
Logging HOWTO
Basic Logging Tutorial
When to use logging
A simple example
Logging to a file
Logging from multiple modules
Logging variable data
Changing the format of displayed messages
Displaying the date/time in messages
Next Steps
Advanced Logging Tutorial
Loggers
Handlers
Formatters
Configuring Logging
What happens if no configuration is provided
Configuring Logging for a Library
Logging Levels
Custom Levels
Useful Handlers
Exceptions raised during logging
Using arbitrary objects as messages
Optimization
Logging Cookbook
Using logging in multiple modules
Multiple handlers and formatters
Logging to multiple destinations
Configuration server example
Dealing with handlers that block
Sending and receiving logging events across a network
Adding contextual information to your logging output
Using LoggerAdapters to impart contextual information
Using Filters to impart contextual information
Logging to a single file from multiple processes
Using file rotation
Use of alternative formatting styles
Customising
LogRecord
Subclassing QueueHandler - a ZeroMQ example
Subclassing QueueListener - a ZeroMQ example
An example dictionary-based configuration
Using a rotator and namer to customise log rotation processing
A more elaborate multiprocessing example
Inserting a BOM into messages sent to a SysLogHandler
Regular Expression HOWTO
Introduction
Simple Patterns
Matching Characters
Repeating Things
Using Regular Expressions
Compiling Regular Expressions
The Backslash Plague
Performing Matches
Module-Level Functions
Compilation Flags
More Pattern Power
More Metacharacters
Grouping
Non-capturing and Named Groups
Lookahead Assertions
Modifying Strings
Splitting Strings
Search and Replace
Common Problems
Use String Methods
match() versus search()
Greedy versus Non-Greedy
Using re.VERBOSE
Feedback
Socket Programming HOWTO
Sockets
History
Creating a Socket
IPC
Using a Socket
Binary Data
Disconnecting
When Sockets Die
Non-blocking Sockets
Sorting HOW TO
Sorting Basics
Key Functions
Operator Module Functions
Ascending and Descending
Sort Stability and Complex Sorts
The Old Way Using Decorate-Sort-Undecorate
The Old Way Using the
cmp
Parameter
Odd and Ends
Unicode HOWTO
Introduction to Unicode
History of Character Codes
Definitions
Encodings
References
Python’s Unicode Support
The String Type
Converting to Bytes
Unicode Literals in Python Source Code
Unicode Properties
References
Reading and Writing Unicode Data
Unicode filenames
Tips for Writing Unicode-aware Programs
References
Acknowledgements
HOWTO Fetch Internet Resources Using The urllib Package
Introduction
Fetching URLs
Data
Headers
Handling Exceptions
URLError
HTTPError
Error Codes
Wrapping it Up
Number 1
Number 2
info and geturl
Openers and Handlers
Basic Authentication
Proxies
Sockets and Layers
Footnotes
HOWTO Use Python in the web
The Low-Level View
Common Gateway Interface
Simple script for testing CGI
Setting up CGI on your own server
Common problems with CGI scripts
mod_python
FastCGI and SCGI
Setting up FastCGI
mod_wsgi
Step back: WSGI
WSGI Servers
Case study: MoinMoin
Model-View-Controller
Ingredients for Websites
Templates
Data persistence
Frameworks
Some notable frameworks
Django
TurboGears
Zope
Other notable frameworks
Argparse Tutorial
Concepts
The basics
Introducing Positional arguments
Introducing Optional arguments
Short options
Combining Positional and Optional arguments
Getting a little more advanced
Conflicting options
Conclusion
An introduction to the ipaddress module
Creating Address/Network/Interface objects
A Note on IP Versions
IP Host Addresses
Defining Networks
Host Interfaces
Inspecting Address/Network/Interface Objects
Networks as lists of Addresses
Comparisons
Using IP Addresses with other modules
Getting more detail when instance creation fails
Python Frequently Asked Questions
General Python FAQ
General Information
Python in the real world
Programming FAQ
General Questions
Core Language
Numbers and strings
Performance
Sequences (Tuples/Lists)
Dictionaries
Objects
Modules
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 forms contain statements?
Can Python be compiled to machine code, C or some other language?
How does Python manage memory?
Why doesn’t CPython use a more traditional garbage collection scheme?
Why isn’t all memory freed when CPython exits?
Why are there separate tuple and list data types?
How are lists implemented?
How are dictionaries implemented?
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 are default values shared between objects?
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
General Library Questions
Common tasks
Threads
Input and Output
Network/Internet Programming
Databases
Mathematics and Numerics
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)?
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
*.pyd
file 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
General GUI Questions
What platform-independent GUI toolkits exist for Python?
What platform-specific GUI toolkits exist for Python?
Tkinter questions
“Why is Python Installed on my Computer?” FAQ
What is Python?
Why is Python installed on my machine?
Can I delete Python?
Glossary
About these documents
Contributors to the Python Documentation
Reporting Bugs
Documentation bugs
Using the Python issue tracker
Copyright
History and License
History of the software
Terms and conditions for accessing or otherwise using Python
Licenses and Acknowledgements for Incorporated Software
Mersenne Twister
Sockets
Floating point exception control
Asynchronous socket services
Cookie management
Execution tracing
UUencode and UUdecode functions
XML Remote Procedure Calls
test_epoll
Select kqueue
SHA-3
strtod and dtoa
OpenSSL
expat
libffi
zlib
Next topic
What’s New in Python
This Page
Report a Bug
Show Source
Quick search
Enter search terms or a module, class or function name.
Navigation
index
modules
|
next
|
Python
»
3.4.0a0 Documentation
»