documentation
.HELP!
Python 3.7.3 Documentation
Index
Python 3.7.3
previous page
next page
Navigation
index
modules
|
Python
»
3.7.3 Documentation
»
Index – X
X (in module re)
X509 certificate
X_OK (in module os)
xatom() (imaplib.IMAP4 method)
XATTR_CREATE (in module os)
XATTR_REPLACE (in module os)
XATTR_SIZE_MAX (in module os)
xcor() (in module turtle)
XDR
xdrlib (module)
xhdr() (nntplib.NNTP method)
XHTML
XHTML_NAMESPACE (in module xml.dom)
xml (module)
XML() (in module xml.etree.ElementTree)
xml.dom (module)
xml.dom.minidom (module)
xml.dom.pulldom (module)
xml.etree.ElementTree (module)
xml.parsers.expat (module)
xml.parsers.expat.errors (module)
xml.parsers.expat.model (module)
xml.sax (module)
xml.sax.handler (module)
xml.sax.saxutils (module)
xml.sax.xmlreader (module)
XML_ERROR_ABORTED (in module xml.parsers.expat.errors)
XML_ERROR_ASYNC_ENTITY (in module xml.parsers.expat.errors)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (in module xml.parsers.expat.errors)
XML_ERROR_BAD_CHAR_REF (in module xml.parsers.expat.errors)
XML_ERROR_BINARY_ENTITY_REF (in module xml.parsers.expat.errors)
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING (in module xml.parsers.expat.errors)
XML_ERROR_DUPLICATE_ATTRIBUTE (in module xml.parsers.expat.errors)
XML_ERROR_ENTITY_DECLARED_IN_PE (in module xml.parsers.expat.errors)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (in module xml.parsers.expat.errors)
XML_ERROR_FEATURE_REQUIRES_XML_DTD (in module xml.parsers.expat.errors)
XML_ERROR_FINISHED (in module xml.parsers.expat.errors)
XML_ERROR_INCOMPLETE_PE (in module xml.parsers.expat.errors)
XML_ERROR_INCORRECT_ENCODING (in module xml.parsers.expat.errors)
XML_ERROR_INVALID_TOKEN (in module xml.parsers.expat.errors)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (in module xml.parsers.expat.errors)
XML_ERROR_MISPLACED_XML_PI (in module xml.parsers.expat.errors)
XML_ERROR_NO_ELEMENTS (in module xml.parsers.expat.errors)
XML_ERROR_NO_MEMORY (in module xml.parsers.expat.errors)
XML_ERROR_NOT_STANDALONE (in module xml.parsers.expat.errors)
XML_ERROR_NOT_SUSPENDED (in module xml.parsers.expat.errors)
XML_ERROR_PARAM_ENTITY_REF (in module xml.parsers.expat.errors)
XML_ERROR_PARTIAL_CHAR (in module xml.parsers.expat.errors)
XML_ERROR_PUBLICID (in module xml.parsers.expat.errors)
XML_ERROR_RECURSIVE_ENTITY_REF (in module xml.parsers.expat.errors)
XML_ERROR_SUSPEND_PE (in module xml.parsers.expat.errors)
XML_ERROR_SUSPENDED (in module xml.parsers.expat.errors)
XML_ERROR_SYNTAX (in module xml.parsers.expat.errors)
XML_ERROR_TAG_MISMATCH (in module xml.parsers.expat.errors)
XML_ERROR_TEXT_DECL (in module xml.parsers.expat.errors)
XML_ERROR_UNBOUND_PREFIX (in module xml.parsers.expat.errors)
XML_ERROR_UNCLOSED_CDATA_SECTION (in module xml.parsers.expat.errors)
XML_ERROR_UNCLOSED_TOKEN (in module xml.parsers.expat.errors)
XML_ERROR_UNDECLARING_PREFIX (in module xml.parsers.expat.errors)
XML_ERROR_UNDEFINED_ENTITY (in module xml.parsers.expat.errors)
XML_ERROR_UNEXPECTED_STATE (in module xml.parsers.expat.errors)
XML_ERROR_UNKNOWN_ENCODING (in module xml.parsers.expat.errors)
XML_ERROR_XML_DECL (in module xml.parsers.expat.errors)
XML_NAMESPACE (in module xml.dom)
xmlcharrefreplace_errors() (in module codecs)
XmlDeclHandler() (xml.parsers.expat.xmlparser method)
XMLFilterBase (class in xml.sax.saxutils)
XMLGenerator (class in xml.sax.saxutils)
XMLID() (in module xml.etree.ElementTree)
XMLNS_NAMESPACE (in module xml.dom)
XMLParser (class in xml.etree.ElementTree)
XMLParserType (in module xml.parsers.expat)
XMLPullParser (class in xml.etree.ElementTree)
XMLReader (class in xml.sax.xmlreader)
xmlrpc.client (module)
xmlrpc.server (module)
xor
bitwise
xor() (in module operator)
xover() (nntplib.NNTP method)
xpath() (nntplib.NNTP method)
xrange (2to3 fixer)
xreadlines (2to3 fixer)
xview() (tkinter.ttk.Treeview method)
Navigation
index
modules
|
Python
»
3.7.3 Documentation
»
previous page
start
next page
Menu
Homepage
Table of contents
3.7.3 Documentation
Python Module Index
Whats New in Python
Whats New In Python 3.7
Summary Release Highlights
New Features
PEP 563: Postponed Evaluation of Annotations
PEP 538: Legacy C Locale Coercion
PEP 540: Forced UTF-8 Runtime Mode
PEP 553: Built-in breakpoint()
PEP 539: New C API for Thread-Local Storage
PEP 562: Customization of Access to Module Attributes
PEP 564: New Time Functions With Nanosecond Resolution
PEP 565: Show DeprecationWarning in __main__
PEP 560: Core Support for typing module and Generic Types
PEP 552: Hash-based .pyc Files
PEP 545: Python Documentation Translations
Development Runtime Mode: -X dev
Other Language Changes
New Modules
contextvars
dataclasses
importlib.resources
Improved Modules
argparse
asyncio
binascii
calendar
collections
compileall
concurrent.futures
contextlib
cProfile
crypt
datetime
dbm
decimal
dis
distutils
enum
functools
gc
hmac
http.client
http.server
idlelib and IDLE
importlib
io
ipaddress
itertools
locale
logging
math
mimetypes
msilib
multiprocessing
os
pathlib
pdb
py_compile
pydoc
queue
re
signal
socket
socketserver
sqlite3
ssl
string
subprocess
sys
time
tkinter
tracemalloc
types
unicodedata
unittest
unittest.mock
urllib.parse
uu
uuid
warnings
xml
xml.etree
xmlrpc.server
zipapp
zipfile
C API Changes
Build Changes
Optimizations
Other CPython Implementation Changes
Deprecated Python Behavior
Deprecated Python modules, functions and methods
aifc
asyncio
collections
dbm
enum
gettext
importlib
locale
macpath
threading
socket
ssl
sunau
sys
wave
Deprecated functions and types of the C API
Platform Support Removals
API and Feature Removals
Module Removals
Windows-only Changes
Porting to Python 3.7
Changes in Python Behavior
Changes in the Python API
Changes in the C API
CPython bytecode changes
Windows-only Changes
Other CPython implementation changes
Notable changes in Python 3.7.1
Notable changes in Python 3.7.2
Whats New In Python 3.6
Summary Release highlights
New Features
PEP 498: Formatted string literals
PEP 526: Syntax for variable annotations
PEP 515: Underscores in Numeric Literals
PEP 525: Asynchronous Generators
PEP 530: Asynchronous Comprehensions
PEP 487: Simpler customization of class creation
PEP 487: Descriptor Protocol Enhancements
PEP 519: Adding a file system path protocol
PEP 495: Local Time Disambiguation
PEP 529: Change Windows filesystem encoding to UTF-8
PEP 528: Change Windows console encoding to UTF-8
PEP 520: Preserving Class Attribute Definition Order
PEP 468: Preserving Keyword Argument Order
New dict implementation
PEP 523: Adding a frame evaluation API to CPython
PYTHONMALLOC environment variable
DTrace and SystemTap probing support
Other Language Changes
New Modules
secrets
Improved Modules
array
ast
asyncio
binascii
cmath
collections
concurrent.futures
contextlib
datetime
decimal
distutils
email
encodings
enum
faulthandler
fileinput
hashlib
http.client
idlelib and IDLE
importlib
inspect
json
logging
math
multiprocessing
os
pathlib
pdb
pickle
pickletools
pydoc
random
re
readline
rlcompleter
shlex
site
sqlite3
socket
socketserver
ssl
statistics
struct
subprocess
sys
telnetlib
time
timeit
tkinter
traceback
tracemalloc
typing
unicodedata
unittest.mock
urllib.request
urllib.robotparser
venv
warnings
winreg
winsound
xmlrpc.client
zipfile
zlib
Optimizations
Build and C API Changes
Other Improvements
Deprecated
New Keywords
Deprecated Python behavior
Deprecated Python modules, functions and methods
asynchat
asyncore
dbm
distutils
grp
importlib
os
re
ssl
tkinter
venv
Deprecated functions and types of the C API
Deprecated Build Options
Removed
API and Feature Removals
Porting to Python 3.6
Changes in python Command Behavior
Changes in the Python API
Changes in the C API
CPython bytecode changes
Notable changes in Python 3.6.2
New make regen-all build target
Removal of make touch build target
Notable changes in Python 3.6.4
Notable changes in Python 3.6.5
Notable changes in Python 3.6.7
Whats New In Python 3.5
Summary Release highlights
New Features
PEP 492 - Coroutines with async and await syntax
PEP 465 - A dedicated infix operator for matrix multiplication
PEP 448 - Additional Unpacking Generalizations
PEP 461 - percent formatting support for bytes and bytearray
PEP 484 - Type Hints
PEP 471 - os.scandir() function a better and faster directory iterator
PEP 475: Retry system calls failing with EINTR
PEP 479: Change StopIteration handling inside generators
PEP 485: A function for testing approximate equality
PEP 486: Make the Python Launcher aware of virtual environments
PEP 488: Elimination of PYO files
PEP 489: Multi-phase extension module initialization
Other Language Changes
New Modules
typing
zipapp
Improved Modules
argparse
asyncio
bz2
cgi
cmath
code
collections
collections.abc
compileall
concurrent.futures
configparser
contextlib
csv
curses
dbm
difflib
distutils
doctest
email
enum
faulthandler
functools
glob
gzip
heapq
http
http.client
idlelib and IDLE
imaplib
imghdr
importlib
inspect
io
ipaddress
json
linecache
locale
logging
lzma
math
multiprocessing
operator
os
pathlib
pickle
poplib
re
readline
selectors
shutil
signal
smtpd
smtplib
sndhdr
socket
ssl
Memory BIO Support
Application-Layer Protocol Negotiation Support
Other Changes
sqlite3
subprocess
sys
sysconfig
tarfile
threading
time
timeit
tkinter
traceback
types
unicodedata
unittest
unittest.mock
urllib
wsgiref
xmlrpc
xml.sax
zipfile
Other module-level changes
Optimizations
Build and C API Changes
Deprecated
New Keywords
Deprecated Python Behavior
Unsupported Operating Systems
Deprecated Python modules, functions and methods
Removed
API and Feature Removals
Porting to Python 3.5
Changes in Python behavior
Changes in the Python API
Changes in the C API
Notable changes in Python 3.5.4
New make regen-all build target
Removal of make touch build target
Whats New In Python 3.4
Summary Release Highlights
New Features
PEP 453: Explicit Bootstrapping of PIP in Python Installations
Bootstrapping pip By Default
Documentation Changes
PEP 446: Newly Created File Descriptors Are Non-Inheritable
Improvements to Codec Handling
PEP 451: A ModuleSpec Type for the Import System
Other Language Changes
New Modules
asyncio
ensurepip
enum
pathlib
selectors
statistics
tracemalloc
Improved Modules
abc
aifc
argparse
audioop
base64
collections
colorsys
contextlib
dbm
dis
doctest
email
filecmp
functools
gc
glob
hashlib
hmac
html
http
idlelib and IDLE
importlib
inspect
ipaddress
logging
marshal
mmap
multiprocessing
operator
os
pdb
pickle
plistlib
poplib
pprint
pty
pydoc
re
resource
select
shelve
shutil
smtpd
smtplib
socket
sqlite3
ssl
stat
struct
subprocess
sunau
sys
tarfile
textwrap
threading
traceback
types
urllib
unittest
venv
wave
weakref
xml.etree
zipfile
CPython Implementation Changes
PEP 445: Customization of CPython Memory Allocators
PEP 442: Safe Object Finalization
PEP 456: Secure and Interchangeable Hash Algorithm
PEP 436: Argument Clinic
Other Build and C API Changes
Other Improvements
Significant Optimizations
Deprecated
Deprecations in the Python API
Deprecated Features
Removed
Operating Systems No Longer Supported
API and Feature Removals
Code Cleanups
Porting to Python 3.4
Changes in python Command Behavior
Changes in the Python API
Changes in the C API
Changed in 3.4.3
PEP 476: Enabling certificate verification by default for stdlib http clients
Whats 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
Whats 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
Whats 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
Whats 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
Whats New in Python 2.7
The Future for Python 2.x
Changes to the Handling of Deprecation Warnings
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
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
Bootstrapping pip By Default
Documentation Changes
PEP 476: Enabling certificate verification by default for stdlib http clients
PEP 493: HTTPS verification migration tools for Python 2.7
New make regen-all build target
Removal of make touch build target
Acknowledgements
Whats 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
Whats 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
Whats 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
Whats 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
Whats 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
Whats 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
Whats 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
The Python Tutorial
Whetting Your Appetite
Using the Python Interpreter
Invoking the Interpreter
Argument Passing
Interactive Mode
The Interpreter and Its Environment
Source Code Encoding
An Informal Introduction to Python
Using Python as a Calculator
Numbers
Strings
Lists
First Steps Towards Programming
More Control Flow Tools
if Statements
for Statements
The range() Function
break and continue Statements, and else Clauses on Loops
pass Statements
Defining Functions
More on Defining Functions
Default Argument Values
Keyword Arguments
Arbitrary Argument Lists
Unpacking Argument Lists
Lambda Expressions
Documentation Strings
Function Annotations
Intermezzo: Coding Style
Data Structures
More on Lists
Using Lists as Stacks
Using Lists as Queues
List Comprehensions
Nested List Comprehensions
The del statement
Tuples and Sequences
Sets
Dictionaries
Looping Techniques
More on Conditions
Comparing Sequences and Other Types
Modules
More on Modules
Executing modules as scripts
The Module Search Path
Compiled Python files
Standard Modules
The dir() Function
Packages
Importing * From a Package
Intra-package References
Packages in Multiple Directories
Input and Output
Fancier Output Formatting
Formatted String Literals
The String format() Method
Manual String Formatting
Old string formatting
Reading and Writing Files
Methods of File Objects
Saving structured data with json
Errors and Exceptions
Syntax Errors
Exceptions
Handling Exceptions
Raising Exceptions
User-defined Exceptions
Defining Clean-up Actions
Predefined Clean-up Actions
Classes
A Word About Names and Objects
Python Scopes and Namespaces
Scopes and Namespaces Example
A First Look at Classes
Class Definition Syntax
Class Objects
Instance Objects
Method Objects
Class and Instance Variables
Random Remarks
Inheritance
Multiple Inheritance
Private Variables
Odds and Ends
Iterators
Generators
Generator Expressions
Brief Tour of the Standard Library
Operating System Interface
File Wildcards
Command Line Arguments
Error Output Redirection and Program Termination
String Pattern Matching
Mathematics
Internet Access
Dates and Times
Data Compression
Performance Measurement
Quality Control
Batteries Included
Brief Tour of the Standard Library Part II
Output Formatting
Templating
Working with Binary Data Record Layouts
Multi-threading
Logging
Weak References
Tools for Working with Lists
Decimal Floating Point Arithmetic
Virtual Environments and Packages
Introduction
Creating Virtual Environments
Managing Packages with pip
What Now?
Interactive Input Editing and History Substitution
Tab Completion and History Editing
Alternatives to the Interactive Interpreter
Floating Point Arithmetic: Issues and Limitations
Representation Error
Appendix
Interactive Mode
Error Handling
Executable Python Scripts
The Interactive Startup File
The Customization Modules
Python Setup and Usage
Command line and environment
Command line
Interface options
Generic options
Miscellaneous options
Options you shouldnt use
Environment variables
Debug-mode variables
Using Python on Unix platforms
Getting and installing the latest version of Python
On Linux
On FreeBSD and OpenBSD
On OpenSolaris
Building Python
Python-related paths and files
Miscellaneous
Editors and IDEs
Using Python on Windows
The full installer
Installation steps
Removing the MAX_PATH Limitation
Installing Without UI
Installing Without Downloading
Modifying an install
The Microsoft Store package
Known Issues
The nuget.org packages
The embeddable package
Python Application
Embedding Python
Alternative bundles
Configuring Python
Excursus: Setting environment variables
Finding the Python executable
Python Launcher for Windows
Getting started
From the command-line
Virtual environments
From a script
From file associations
Shebang Lines
Arguments in shebang lines
Customization
Customization via INI files
Customizing default Python versions
Diagnostics
Finding modules
Additional modules
PyWin32
cx_Freeze
WConio
Compiling Python on Windows
Other Platforms
Using Python on a Macintosh
Getting and Installing MacPython
How to run a Python script
Running scripts with a GUI
Configuration
The IDE
Installing Additional Python Packages
GUI Programming on the Mac
Distributing Python Applications on the Mac
Other Resources
The Python Language Reference
Introduction
Alternate Implementations
Notation
Lexical analysis
Line structure
Logical lines
Physical lines
Comments
Encoding declarations
Explicit line joining
Implicit line joining
Blank lines
Indentation
Whitespace between tokens
Other tokens
Identifiers and keywords
Keywords
Reserved classes of identifiers
Literals
String and Bytes literals
String literal concatenation
Formatted string literals
Numeric literals
Integer literals
Floating point literals
Imaginary literals
Operators
Delimiters
Data model
Objects, values and types
The standard type hierarchy
Special method names
Basic customization
Customizing attribute access
Customizing module attribute access
Implementing Descriptors
Invoking Descriptors
__slots__
Notes on using __slots__
Customizing class creation
Metaclasses
Resolving MRO entries
Determining the appropriate metaclass
Preparing the class namespace
Executing the class body
Creating the class object
Uses for metaclasses
Customizing instance and subclass checks
Emulating generic types
Emulating callable objects
Emulating container types
Emulating numeric types
With Statement Context Managers
Special method lookup
Coroutines
Awaitable Objects
Coroutine Objects
Asynchronous Iterators
Asynchronous Context Managers
Execution model
Structure of a program
Naming and binding
Binding of names
Resolution of names
Builtins and restricted execution
Interaction with dynamic features
Exceptions
The import system
importlib
Packages
Regular packages
Namespace packages
Searching
The module cache
Finders and loaders
Import hooks
The meta path
Loading
Loaders
Submodules
Module spec
Import-related module attributes
module.__path__
Module reprs
Cached bytecode invalidation
The Path Based Finder
Path entry finders
Path entry finder protocol
Replacing the standard import system
Special considerations for __main__
__main__.__spec__
Open issues
References
Expressions
Arithmetic conversions
Atoms
Identifiers (Names)
Literals
Parenthesized forms
Displays for lists, sets and dictionaries
List displays
Set displays
Dictionary displays
Generator expressions
Yield expressions
Generator-iterator methods
Examples
Asynchronous generator functions
Asynchronous generator-iterator methods
Primaries
Attribute references
Subscriptions
Slicings
Calls
Await expression
The power operator
Unary arithmetic and bitwise operations
Binary arithmetic operations
Shifting operations
Binary bitwise operations
Comparisons
Value comparisons
Membership test operations
Identity comparisons
Boolean operations
Conditional expressions
Lambdas
Expression lists
Evaluation order
Operator precedence
Simple statements
Expression statements
Assignment statements
Augmented assignment statements
Annotated assignment statements
The assert statement
The pass statement
The del statement
The return statement
The yield statement
The raise statement
The break statement
The continue statement
The import statement
Future statements
The global statement
The nonlocal statement
Compound statements
The if statement
The while statement
The for statement
The try statement
The with statement
Function definitions
Class definitions
Coroutines
Coroutine function definition
The async for statement
The async with statement
Top-level components
Complete Python programs
File input
Interactive input
Expression input
Full Grammar specification
The Python Standard Library
Introduction
Notes on availability
Built-in Functions
Built-in Constants
Constants added by the site module
Built-in Types
Truth Value Testing
Boolean Operations and, or, not
Comparisons
Numeric Types int, float, complex
Bitwise Operations on Integer Types
Additional Methods on Integer Types
Additional Methods on Float
Hashing of numeric types
Iterator Types
Generator Types
Sequence Types list, tuple, range
Common Sequence Operations
Immutable Sequence Types
Mutable Sequence Types
Lists
Tuples
Ranges
Text Sequence Type str
String Methods
printf-style String Formatting
Binary Sequence Types bytes, bytearray, memoryview
Bytes Objects
Bytearray Objects
Bytes and Bytearray Operations
printf-style Bytes Formatting
Memory Views
Set Types set, frozenset
Mapping Types dict
Dictionary view objects
Context Manager Types
Other Built-in Types
Modules
Classes and Class Instances
Functions
Methods
Code Objects
Type Objects
The Null Object
The Ellipsis Object
The NotImplemented Object
Boolean Values
Internal Objects
Special Attributes
Built-in Exceptions
Base classes
Concrete exceptions
OS exceptions
Warnings
Exception hierarchy
Text Processing Services
string Common string operations
String constants
Custom String Formatting
Format String Syntax
Format Specification Mini-Language
Format examples
Template strings
Helper functions
re Regular expression operations
Regular Expression Syntax
Module Contents
Regular Expression Objects
Match Objects
Regular Expression Examples
Checking for a Pair
Simulating scanf()
search() vs. match()
Making a Phonebook
Text Munging
Finding all Adverbs
Finding all Adverbs and their Positions
Raw String Notation
Writing a Tokenizer
difflib Helpers for computing deltas
SequenceMatcher Objects
SequenceMatcher Examples
Differ Objects
Differ Example
A command-line interface to difflib
textwrap Text wrapping and filling
unicodedata Unicode Database
stringprep Internet String Preparation
readline GNU readline interface
Init file
Line buffer
History file
History list
Startup hooks
Completion
Example
rlcompleter Completion function for GNU readline
Completer Objects
Binary Data Services
struct Interpret bytes as packed binary data
Functions and Exceptions
Format Strings
Byte Order, Size, and Alignment
Format Characters
Examples
Classes
codecs Codec registry and base classes
Codec Base Classes
Error Handlers
Stateless Encoding and Decoding
Incremental Encoding and Decoding
IncrementalEncoder Objects
IncrementalDecoder Objects
Stream Encoding and Decoding
StreamWriter Objects
StreamReader Objects
StreamReaderWriter Objects
StreamRecoder Objects
Encodings and Unicode
Standard Encodings
Python Specific Encodings
Text Encodings
Binary Transforms
Text Transforms
encodings.idna Internationalized Domain Names in Applications
encodings.mbcs Windows ANSI codepage
encodings.utf_8_sig UTF-8 codec with BOM signature
Data Types
datetime Basic date and time types
Available Types
timedelta Objects
date Objects
datetime Objects
time Objects
tzinfo Objects
timezone Objects
strftime() and strptime() Behavior
calendar General calendar-related functions
collections Container datatypes
ChainMap objects
ChainMap Examples and Recipes
Counter objects
deque objects
deque Recipes
defaultdict objects
defaultdict Examples
namedtuple() Factory Function for Tuples with Named Fields
OrderedDict objects
OrderedDict Examples and Recipes
UserDict objects
UserList objects
UserString objects
collections.abc Abstract Base Classes for Containers
Collections Abstract Base Classes
heapq Heap queue algorithm
Basic Examples
Priority Queue Implementation Notes
Theory
bisect Array bisection algorithm
Searching Sorted Lists
Other Examples
array Efficient arrays of numeric values
weakref Weak references
Weak Reference Objects
Example
Finalizer Objects
Comparing finalizers with __del__() methods
types Dynamic type creation and names for built-in types
Dynamic Type Creation
Standard Interpreter Types
Additional Utility Classes and Functions
Coroutine Utility Functions
copy Shallow and deep copy operations
pprint Data pretty printer
PrettyPrinter Objects
Example
reprlib Alternate repr() implementation
Repr Objects
Subclassing Repr Objects
enum Support for enumerations
Module Contents
Creating an Enum
Programmatic access to enumeration members and their attributes
Duplicating enum members and values
Ensuring unique enumeration values
Using automatic values
Iteration
Comparisons
Allowed members and attributes of enumerations
Restricted Enum subclassing
Pickling
Functional API
Derived Enumerations
IntEnum
IntFlag
Flag
Others
Interesting examples
Omitting values
Using auto
Using object
Using a descriptive string
Using a custom __new__()
OrderedEnum
DuplicateFreeEnum
Planet
TimePeriod
How are Enums different?
Enum Classes
Enum Members (aka instances)
Finer Points
Supported __dunder__ names
Supported _sunder_ names
Enum member type
Boolean value of Enum classes and members
Enum classes with methods
Combining members of Flag
Numeric and Mathematical Modules
numbers Numeric abstract base classes
The numeric tower
Notes for type implementors
Adding More Numeric ABCs
Implementing the arithmetic operations
math Mathematical functions
Number-theoretic and representation functions
Power and logarithmic functions
Trigonometric functions
Angular conversion
Hyperbolic functions
Special functions
Constants
cmath Mathematical functions for complex numbers
Conversions to and from polar coordinates
Power and logarithmic functions
Trigonometric functions
Hyperbolic functions
Classification functions
Constants
decimal Decimal fixed point and floating point arithmetic
Quick-start Tutorial
Decimal objects
Logical operands
Context objects
Constants
Rounding modes
Signals
Floating Point Notes
Mitigating round-off error with increased precision
Special values
Working with threads
Recipes
Decimal FAQ
fractions Rational numbers
random Generate pseudo-random numbers
Bookkeeping functions
Functions for integers
Functions for sequences
Real-valued distributions
Alternative Generator
Notes on Reproducibility
Examples and Recipes
statistics Mathematical statistics functions
Averages and measures of central location
Measures of spread
Function details
Exceptions
Functional Programming Modules
itertools Functions creating iterators for efficient looping
Itertool functions
Itertools Recipes
functools Higher-order functions and operations on callable objects
partial Objects
operator Standard operators as functions
Mapping Operators to Functions
Inplace Operators
File and Directory Access
pathlib Object-oriented filesystem paths
Basic use
Pure paths
General properties
Operators
Accessing individual parts
Methods and properties
Concrete paths
Methods
Correspondence to tools in the os module
os.path Common pathname manipulations
fileinput Iterate over lines from multiple input streams
stat Interpreting stat() results
filecmp File and Directory Comparisons
The dircmp class
tempfile Generate temporary files and directories
Examples
Deprecated functions and variables
glob Unix style pathname pattern expansion
fnmatch Unix filename pattern matching
linecache Random access to text lines
shutil High-level file operations
Directory and files operations
copytree example
rmtree example
Archiving operations
Archiving example
Querying the size of the output terminal
macpath Mac OS 9 path manipulation functions
Data Persistence
pickle Python object serialization
Relationship to other Python modules
Comparison with marshal
Comparison with json
Data stream format
Module Interface
What can be pickled and unpickled?
Pickling Class Instances
Persistence of External Objects
Dispatch Tables
Handling Stateful Objects
Restricting Globals
Performance
Examples
copyreg Register pickle support functions
Example
shelve Python object persistence
Restrictions
Example
marshal Internal Python object serialization
dbm Interfaces to Unix databases
dbm.gnu GNUs reinterpretation of dbm
dbm.ndbm Interface based on ndbm
dbm.dumb Portable DBM implementation
sqlite3 DB-API 2.0 interface for SQLite databases
Module functions and constants
Connection Objects
Cursor Objects
Row Objects
Exceptions
SQLite and Python types
Introduction
Using adapters to store additional Python types in SQLite databases
Letting your object adapt itself
Registering an adapter callable
Converting SQLite values to custom Python types
Default adapters and converters
Controlling Transactions
Using sqlite3 efficiently
Using shortcut methods
Accessing columns by name instead of by index
Using the connection as a context manager
Common issues
Multithreading
Data Compression and Archiving
zlib Compression compatible with gzip
gzip Support for gzip files
Examples of usage
bz2 Support for bzip2 compression
(De)compression of files
Incremental (de)compression
One-shot (de)compression
lzma Compression using the LZMA algorithm
Reading and writing compressed files
Compressing and decompressing data in memory
Miscellaneous
Specifying custom filter chains
Examples
zipfile Work with ZIP archives
ZipFile Objects
PyZipFile Objects
ZipInfo Objects
Command-Line Interface
Command-line options
tarfile Read and write tar archive files
TarFile Objects
TarInfo Objects
Command-Line Interface
Command-line options
Examples
Supported tar formats
Unicode issues
File Formats
csv CSV File Reading and Writing
Module Contents
Dialects and Formatting Parameters
Reader Objects
Writer Objects
Examples
configparser Configuration file parser
Quick Start
Supported Datatypes
Fallback Values
Supported INI File Structure
Interpolation of values
Mapping Protocol Access
Customizing Parser Behaviour
Legacy API Examples
ConfigParser Objects
RawConfigParser Objects
Exceptions
netrc netrc file processing
netrc Objects
xdrlib Encode and decode XDR data
Packer Objects
Unpacker Objects
Exceptions
plistlib Generate and parse Mac OS X .plist files
Examples
Cryptographic Services
hashlib Secure hashes and message digests
Hash algorithms
SHAKE variable length digests
Key derivation
BLAKE2
Creating hash objects
Constants
Examples
Simple hashing
Using different digest sizes
Keyed hashing
Randomized hashing
Personalization
Tree mode
Credits
hmac Keyed-Hashing for Message Authentication
secrets Generate secure random numbers for managing secrets
Random numbers
Generating tokens
How many bytes should tokens use?
Other functions
Recipes and best practices
Generic Operating System Services
os Miscellaneous operating system interfaces
File Names, Command Line Arguments, and Environment Variables
Process Parameters
File Object Creation
File Descriptor Operations
Querying the size of a terminal
Inheritance of File Descriptors
Files and Directories
Linux extended attributes
Process Management
Interface to the scheduler
Miscellaneous System Information
Random numbers
io Core tools for working with streams
Overview
Text I/O
Binary I/O
Raw I/O
High-level Module Interface
In-memory streams
Class hierarchy
I/O Base Classes
Raw File I/O
Buffered Streams
Text I/O
Performance
Binary I/O
Text I/O
Multi-threading
Reentrancy
time Time access and conversions
Functions
Clock ID Constants
Timezone Constants
argparse Parser for command-line options, arguments and sub-commands
Example
Creating a parser
Adding arguments
Parsing arguments
ArgumentParser objects
prog
usage
description
epilog
parents
formatter_class
prefix_chars
fromfile_prefix_chars
argument_default
allow_abbrev
conflict_handler
add_help
The add_argument() method
name or flags
action
nargs
const
default
type
choices
required
help
metavar
dest
Action classes
The parse_args() method
Option value syntax
Invalid arguments
Arguments containing -
Argument abbreviations (prefix matching)
Beyond sys.argv
The Namespace object
Other utilities
Sub-commands
FileType objects
Argument groups
Mutual exclusion
Parser defaults
Printing help
Partial parsing
Customizing file parsing
Exiting methods
Intermixed parsing
Upgrading optparse code
getopt C-style parser for command line options
logging Logging facility for Python
Logger Objects
Logging Levels
Handler Objects
Formatter Objects
Filter Objects
LogRecord Objects
LogRecord attributes
LoggerAdapter Objects
Thread Safety
Module-Level Functions
Module-Level Attributes
Integration with the warnings module
logging.config Logging configuration
Configuration functions
Configuration dictionary schema
Dictionary Schema Details
Incremental Configuration
Object connections
User-defined objects
Access to external objects
Access to internal objects
Import resolution and custom importers
Configuration file format
logging.handlers Logging handlers
StreamHandler
FileHandler
NullHandler
WatchedFileHandler
BaseRotatingHandler
RotatingFileHandler
TimedRotatingFileHandler
SocketHandler
DatagramHandler
SysLogHandler
NTEventLogHandler
SMTPHandler
MemoryHandler
HTTPHandler
QueueHandler
QueueListener
getpass Portable password input
curses Terminal handling for character-cell displays
Functions
Window Objects
Constants
curses.textpad Text input widget for curses programs
Textbox objects
curses.ascii Utilities for ASCII characters
curses.panel A panel stack extension for curses
Functions
Panel Objects
platform Access to underlying platforms identifying data
Cross Platform
Java Platform
Windows Platform
Win95/98 specific
Mac OS Platform
Unix Platforms
errno Standard errno system symbols
ctypes A foreign function library for Python
ctypes tutorial
Loading dynamic link libraries
Accessing functions from loaded dlls
Calling functions
Fundamental data types
Calling functions, continued
Calling functions with your own custom data types
Specifying the required argument types (function prototypes)
Return types
Passing pointers (or: passing parameters by reference)
Structures and unions
Structure/union alignment and byte order
Bit fields in structures and unions
Arrays
Pointers
Type conversions
Incomplete Types
Callback functions
Accessing values exported from dlls
Surprises
Variable-sized data types
ctypes reference
Finding shared libraries
Loading shared libraries
Foreign functions
Function prototypes
Utility functions
Data types
Fundamental data types
Structured data types
Arrays and pointers
Concurrent Execution
threading Thread-based parallelism
Thread-Local Data
Thread Objects
Lock Objects
RLock Objects
Condition Objects
Semaphore Objects
Semaphore Example
Event Objects
Timer Objects
Barrier Objects
Using locks, conditions, and semaphores in the with statement
multiprocessing Process-based parallelism
Introduction
The Process class
Contexts and start methods
Exchanging objects between processes
Synchronization between processes
Sharing state between processes
Using a pool of workers
Reference
Process and exceptions
Pipes and Queues
Miscellaneous
Connection Objects
Synchronization primitives
Shared ctypes Objects
The multiprocessing.sharedctypes module
Managers
Customized managers
Using a remote manager
Proxy Objects
Cleanup
Process Pools
Listeners and Clients
Address Formats
Authentication keys
Logging
The multiprocessing.dummy module
Programming guidelines
All start methods
The spawn and forkserver start methods
Examples
The concurrent package
concurrent.futures Launching parallel tasks
Executor Objects
ThreadPoolExecutor
ThreadPoolExecutor Example
ProcessPoolExecutor
ProcessPoolExecutor Example
Future Objects
Module Functions
Exception classes
subprocess Subprocess management
Using the subprocess Module
Frequently Used Arguments
Popen Constructor
Exceptions
Security Considerations
Popen Objects
Windows Popen Helpers
Windows Constants
Older high-level API
Replacing Older Functions with the subprocess Module
Replacing /bin/sh shell backquote
Replacing shell pipeline
Replacing os.system()
Replacing the os.spawn family
Replacing os.popen(), os.popen2(), os.popen3()
Replacing functions from the popen2 module
Legacy Shell Invocation Functions
Notes
Converting an argument sequence to a string on Windows
sched Event scheduler
Scheduler Objects
queue A synchronized queue class
Queue Objects
SimpleQueue Objects
_thread Low-level threading API
_dummy_thread Drop-in replacement for the _thread module
dummy_threading Drop-in replacement for the threading module
contextvars Context Variables
Context Variables
Manual Context Management
asyncio support
Networking and Interprocess Communication
asyncio Asynchronous I/O
Coroutines and Tasks
Coroutines
Awaitables
Running an asyncio Program
Creating Tasks
Sleeping
Running Tasks Concurrently
Shielding From Cancellation
Timeouts
Waiting Primitives
Scheduling From Other Threads
Introspection
Task Object
Generator-based Coroutines
Streams
StreamReader
StreamWriter
Examples
TCP echo client using streams
TCP echo server using streams
Get HTTP headers
Register an open socket to wait for data using streams
Synchronization Primitives
Lock
Event
Condition
Semaphore
BoundedSemaphore
Subprocesses
Creating Subprocesses
Constants
Interacting with Subprocesses
Subprocess and Threads
Examples
Queues
Queue
Priority Queue
LIFO Queue
Exceptions
Examples
Exceptions
Event Loop
Event Loop Methods
Running and stopping the loop
Scheduling callbacks
Scheduling delayed callbacks
Creating Futures and Tasks
Opening network connections
Creating network servers
Transferring files
TLS Upgrade
Watching file descriptors
Working with socket objects directly
DNS
Working with pipes
Unix signals
Executing code in thread or process pools
Error Handling API
Enabling debug mode
Running Subprocesses
Callback Handles
Server Objects
Event Loop Implementations
Examples
Hello World with call_soon()
Display the current date with call_later()
Watch a file descriptor for read events
Set signal handlers for SIGINT and SIGTERM
Futures
Future Functions
Future Object
Transports and Protocols
Transports
Transports Hierarchy
Base Transport
Read-only Transports
Write-only Transports
Datagram Transports
Subprocess Transports
Protocols
Base Protocols
Base Protocol
Streaming Protocols
Buffered Streaming Protocols
Datagram Protocols
Subprocess Protocols
Examples
TCP Echo Server
TCP Echo Client
UDP Echo Server
UDP Echo Client
Connecting Existing Sockets
loop.subprocess_exec() and SubprocessProtocol
Policies
Getting and Setting the Policy
Policy Objects
Process Watchers
Custom Policies
Platform Support
All Platforms
Windows
Subprocess Support on Windows
macOS
High-level API Index
Tasks
Queues
Subprocesses
Streams
Synchronization
Exceptions
Low-level API Index
Obtaining the Event Loop
Event Loop Methods
Transports
Protocols
Event Loop Policies
Developing with asyncio
Debug Mode
Concurrency and Multithreading
Running Blocking Code
Logging
Detect never-awaited coroutines
Detect never-retrieved exceptions
socket Low-level networking interface
Socket families
Module contents
Exceptions
Constants
Functions
Creating sockets
Other functions
Socket Objects
Notes on socket timeouts
Timeouts and the connect method
Timeouts and the accept method
Example
ssl TLS/SSL wrapper for socket objects
Functions, Constants, and Exceptions
Socket creation
Context creation
Exceptions
Random generation
Certificate handling
Constants
SSL Sockets
SSL Contexts
Certificates
Certificate chains
CA certificates
Combined key and certificate
Self-signed certificates
Examples
Testing for SSL support
Client-side operation
Server-side operation
Notes on non-blocking sockets
Memory BIO Support
SSL session
Security considerations
Best defaults
Manual settings
Verifying certificates
Protocol versions
Cipher selection
Multi-processing
TLS 1.3
LibreSSL support
select Waiting for I/O completion
/dev/poll Polling Objects
Edge and Level Trigger Polling (epoll) Objects
Polling Objects
Kqueue Objects
Kevent Objects
selectors High-level I/O multiplexing
Introduction
Classes
Examples
asyncore Asynchronous socket handler
asyncore Example basic HTTP client
asyncore Example basic echo server
asynchat Asynchronous socket command/response handler
asynchat Example
signal Set handlers for asynchronous events
General rules
Execution of Python signal handlers
Signals and threads
Module contents
Example
Note on SIGPIPE
mmap Memory-mapped file support
Internet Data Handling
email An email and MIME handling package
email.message: Representing an email message
email.parser: Parsing email messages
FeedParser API
Parser API
Additional notes
email.generator: Generating MIME documents
email.policy: Policy Objects
email.errors: Exception and Defect classes
email.headerregistry: Custom Header Objects
email.contentmanager: Managing MIME Content
Content Manager Instances
email: Examples
email.message.Message: Representing an email message using the compat32 API
email.mime: Creating email and MIME objects from scratch
email.header: Internationalized headers
email.charset: Representing character sets
email.encoders: Encoders
email.utils: Miscellaneous utilities
email.iterators: Iterators
json JSON encoder and decoder
Basic Usage
Encoders and Decoders
Exceptions
Standard Compliance and Interoperability
Character Encodings
Infinite and NaN Number Values
Repeated Names Within an Object
Top-level Non-Object, Non-Array Values
Implementation Limitations
Command Line Interface
Command line options
mailcap Mailcap file handling
mailbox Manipulate mailboxes in various formats
Mailbox objects
Maildir
mbox
MH
Babyl
MMDF
Message objects
MaildirMessage
mboxMessage
MHMessage
BabylMessage
MMDFMessage
Exceptions
Examples
mimetypes Map filenames to MIME types
MimeTypes Objects
base64 Base16, Base32, Base64, Base85 Data Encodings
binhex Encode and decode binhex4 files
Notes
binascii Convert between binary and ASCII
quopri Encode and decode MIME quoted-printable data
uu Encode and decode uuencode files
Structured Markup Processing Tools
html HyperText Markup Language support
html.parser Simple HTML and XHTML parser
Example HTML Parser Application
HTMLParser Methods
Examples
html.entities Definitions of HTML general entities
XML Processing Modules
XML vulnerabilities
The defusedxml and defusedexpat Packages
xml.etree.ElementTree The ElementTree XML API
Tutorial
XML tree and elements
Parsing XML
Pull API for non-blocking parsing
Finding interesting elements
Modifying an XML File
Building XML documents
Parsing XML with Namespaces
Additional resources
XPath support
Example
Supported XPath syntax
Reference
Functions
Element Objects
ElementTree Objects
QName Objects
TreeBuilder Objects
XMLParser Objects
XMLPullParser Objects
Exceptions
xml.dom The Document Object Model API
Module Contents
Objects in the DOM
DOMImplementation Objects
Node Objects
NodeList Objects
DocumentType Objects
Document Objects
Element Objects
Attr Objects
NamedNodeMap Objects
Comment Objects
Text and CDATASection Objects
ProcessingInstruction Objects
Exceptions
Conformance
Type Mapping
Accessor Methods
xml.dom.minidom Minimal DOM implementation
DOM Objects
DOM Example
minidom and the DOM standard
xml.dom.pulldom Support for building partial DOM trees
DOMEventStream Objects
xml.sax Support for SAX2 parsers
SAXException Objects
xml.sax.handler Base classes for SAX handlers
ContentHandler Objects
DTDHandler Objects
EntityResolver Objects
ErrorHandler Objects
xml.sax.saxutils SAX Utilities
xml.sax.xmlreader Interface for XML parsers
XMLReader Objects
IncrementalParser Objects
Locator Objects
InputSource Objects
The Attributes Interface
The AttributesNS Interface
xml.parsers.expat Fast XML parsing using Expat
XMLParser Objects
ExpatError Exceptions
Example
Content Model Descriptions
Expat error constants
Internet Protocols and Support
webbrowser Convenient Web-browser controller
Browser Controller Objects
cgi Common Gateway Interface support
Introduction
Using the cgi module
Higher Level Interface
Functions
Caring about security
Installing your CGI script on a Unix system
Testing your CGI script
Debugging CGI scripts
Common problems and solutions
cgitb Traceback manager for CGI scripts
wsgiref WSGI Utilities and Reference Implementation
wsgiref.util WSGI environment utilities
wsgiref.headers WSGI response header tools
wsgiref.simple_server a simple WSGI HTTP server
wsgiref.validate WSGI conformance checker
wsgiref.handlers server/gateway base classes
Examples
urllib URL handling modules
urllib.request Extensible library for opening URLs
Request Objects
OpenerDirector Objects
BaseHandler Objects
HTTPRedirectHandler Objects
HTTPCookieProcessor Objects
ProxyHandler Objects
HTTPPasswordMgr Objects
HTTPPasswordMgrWithPriorAuth Objects
AbstractBasicAuthHandler Objects
HTTPBasicAuthHandler Objects
ProxyBasicAuthHandler Objects
AbstractDigestAuthHandler Objects
HTTPDigestAuthHandler Objects
ProxyDigestAuthHandler Objects
HTTPHandler Objects
HTTPSHandler Objects
FileHandler Objects
DataHandler Objects
FTPHandler Objects
CacheFTPHandler Objects
UnknownHandler Objects
HTTPErrorProcessor Objects
Examples
Legacy interface
urllib.request Restrictions
urllib.response Response classes used by urllib
urllib.parse Parse URLs into components
URL Parsing
Parsing ASCII Encoded Bytes
Structured Parse Results
URL Quoting
urllib.error Exception classes raised by urllib.request
urllib.robotparser Parser for robots.txt
http HTTP modules
HTTP status codes
http.client HTTP protocol client
HTTPConnection Objects
HTTPResponse Objects
Examples
HTTPMessage Objects
ftplib FTP protocol client
FTP Objects
FTP_TLS Objects
poplib POP3 protocol client
POP3 Objects
POP3 Example
imaplib IMAP4 protocol client
IMAP4 Objects
IMAP4 Example
nntplib NNTP protocol client
NNTP Objects
Attributes
Methods
Utility functions
smtplib SMTP protocol client
SMTP Objects
SMTP Example
smtpd SMTP Server
SMTPServer Objects
DebuggingServer Objects
PureProxy Objects
MailmanProxy Objects
SMTPChannel Objects
telnetlib Telnet client
Telnet Objects
Telnet Example
uuid UUID objects according to RFC 4122
Example
socketserver A framework for network servers
Server Creation Notes
Server Objects
Request Handler Objects
Examples
socketserver.TCPServer Example
socketserver.UDPServer Example
Asynchronous Mixins
http.server HTTP servers
http.cookies HTTP state management
Cookie Objects
Morsel Objects
Example
http.cookiejar Cookie handling for HTTP clients
CookieJar and FileCookieJar Objects
FileCookieJar subclasses and co-operation with web browsers
CookiePolicy Objects
DefaultCookiePolicy Objects
Cookie Objects
Examples
xmlrpc XMLRPC server and client modules
xmlrpc.client XML-RPC client access
ServerProxy Objects
DateTime Objects
Binary Objects
Fault Objects
ProtocolError Objects
MultiCall Objects
Convenience Functions
Example of Client Usage
Example of Client and Server Usage
xmlrpc.server Basic XML-RPC servers
SimpleXMLRPCServer Objects
SimpleXMLRPCServer Example
CGIXMLRPCRequestHandler
Documenting XMLRPC server
DocXMLRPCServer Objects
DocCGIXMLRPCRequestHandler
ipaddress IPv4/IPv6 manipulation library
Convenience factory functions
IP Addresses
Address objects
Conversion to Strings and Integers
Operators
Comparison operators
Arithmetic operators
IP Network definitions
Prefix, net mask and host mask
Network objects
Operators
Logical operators
Iteration
Networks as containers of addresses
Interface objects
Operators
Logical operators
Other Module Level Functions
Custom Exceptions
Multimedia Services
audioop Manipulate raw audio data
aifc Read and write AIFF and AIFC files
sunau Read and write Sun AU files
AU_read Objects
AU_write Objects
wave Read and write WAV files
Wave_read Objects
Wave_write Objects
chunk Read IFF chunked data
colorsys Conversions between color systems
imghdr Determine the type of an image
sndhdr Determine type of sound file
ossaudiodev Access to OSS-compatible audio devices
Audio Device Objects
Mixer Device Objects
Internationalization
gettext Multilingual internationalization services
GNU gettext API
Class-based API
The NullTranslations class
The GNUTranslations class
Solaris message catalog support
The Catalog constructor
Internationalizing your programs and modules
Localizing your module
Localizing your application
Changing languages on the fly
Deferred translations
Acknowledgements
locale Internationalization services
Background, details, hints, tips and caveats
For extension writers and programs that embed Python
Access to message catalogs
Program Frameworks
turtle Turtle graphics
Introduction
Overview of available Turtle and Screen methods
Turtle methods
Methods of TurtleScreen/Screen
Methods of RawTurtle/Turtle and corresponding functions
Turtle motion
Tell Turtles state
Settings for measurement
Pen control
Drawing state
Color control
Filling
More drawing control
Turtle state
Visibility
Appearance
Using events
Special Turtle methods
Compound shapes
Methods of TurtleScreen/Screen and corresponding functions
Window control
Animation control
Using screen events
Input methods
Settings and special methods
Methods specific to Screen, not inherited from TurtleScreen
Public classes
Help and configuration
How to use help
Translation of docstrings into different languages
How to configure Screen and Turtles
turtledemo Demo scripts
Changes since Python 2.6
Changes since Python 3.0
cmd Support for line-oriented command interpreters
Cmd Objects
Cmd Example
shlex Simple lexical analysis
shlex Objects
Parsing Rules
Improved Compatibility with Shells
Graphical User Interfaces with Tk
tkinter Python interface to Tcl/Tk
Tkinter Modules
Tkinter Life Preserver
How To Use This Section
A Simple Hello World Program
A (Very) Quick Look at Tcl/Tk
Mapping Basic Tk into Tkinter
How Tk and Tkinter are Related
Handy Reference
Setting Options
The Packer
Packer Options
Coupling Widget Variables
The Window Manager
Tk Option Data Types
Bindings and Events
The index Parameter
Images
File Handlers
tkinter.ttk Tk themed widgets
Using Ttk
Ttk Widgets
Widget
Standard Options
Scrollable Widget Options
Label Options
Compatibility Options
Widget States
ttk.Widget
Combobox
Options
Virtual events
ttk.Combobox
Spinbox
Options
Virtual events
ttk.Spinbox
Notebook
Options
Tab Options
Tab Identifiers
Virtual Events
ttk.Notebook
Progressbar
Options
ttk.Progressbar
Separator
Options
Sizegrip
Platform-specific notes
Bugs
Treeview
Options
Item Options
Tag Options
Column Identifiers
Virtual Events
ttk.Treeview
Ttk Styling
Layouts
tkinter.tix Extension widgets for Tk
Using Tix
Tix Widgets
Basic Widgets
File Selectors
Hierarchical ListBox
Tabular ListBox
Manager Widgets
Image Types
Miscellaneous Widgets
Form Geometry Manager
Tix Commands
tkinter.scrolledtext Scrolled Text Widget
IDLE
Menus
File menu (Shell and Editor)
Edit menu (Shell and Editor)
Format menu (Editor window only)
Run menu (Editor window only)
Shell menu (Shell window only)
Debug menu (Shell window only)
Options menu (Shell and Editor)
Window menu (Shell and Editor)
Help menu (Shell and Editor)
Context Menus
Editing and navigation
Editor windows
Key bindings
Automatic indentation
Completions
Calltips
Code Context
Python Shell window
Text colors
Startup and code execution
Command line usage
Startup failure
Running user code
User output in Shell
Developing tkinter applications
Running without a subprocess
Help and preferences
Help sources
Setting preferences
IDLE on macOS
Extensions
Other Graphical User Interface Packages
Development Tools
typing Support for type hints
Type aliases
NewType
Callable
Generics
User-defined generic types
The Any type
Classes, functions, and decorators
pydoc Documentation generator and online help system
doctest Test interactive Python examples
Simple Usage: Checking Examples in Docstrings
Simple Usage: Checking Examples in a Text File
How It Works
Which Docstrings Are Examined?
How are Docstring Examples Recognized?
Whats the Execution Context?
What About Exceptions?
Option Flags
Directives
Warnings
Basic API
Unittest API
Advanced API
DocTest Objects
Example Objects
DocTestFinder objects
DocTestParser objects
DocTestRunner objects
OutputChecker objects
Debugging
Soapbox
unittest Unit testing framework
Basic example
Command-Line Interface
Command-line options
Test Discovery
Organizing test code
Re-using old test code
Skipping tests and expected failures
Distinguishing test iterations using subtests
Classes and functions
Test cases
Deprecated aliases
Grouping tests
Loading and running tests
load_tests Protocol
Class and Module Fixtures
setUpClass and tearDownClass
setUpModule and tearDownModule
Signal Handling
unittest.mock mock object library
Quick Guide
The Mock Class
Calling
Deleting Attributes
Mock names and the name attribute
Attaching Mocks as Attributes
The patchers
patch
patch.object
patch.dict
patch.multiple
patch methods: start and stop
patch builtins
TEST_PREFIX
Nesting Patch Decorators
Where to patch
Patching Descriptors and Proxy Objects
MagicMock and magic method support
Mocking Magic Methods
Magic Mock
Helpers
sentinel
DEFAULT
call
create_autospec
ANY
FILTER_DIR
mock_open
Autospeccing
Sealing mocks
unittest.mock getting started
Using Mock
Mock Patching Methods
Mock for Method Calls on an Object
Mocking Classes
Naming your mocks
Tracking all Calls
Setting Return Values and Attributes
Raising exceptions with mocks
Side effect functions and iterables
Creating a Mock from an Existing Object
Patch Decorators
Further Examples
Mocking chained calls
Partial mocking
Mocking a Generator Method
Applying the same patch to every test method
Mocking Unbound Methods
Checking multiple calls with mock
Coping with mutable arguments
Nesting Patches
Mocking a dictionary with MagicMock
Mock subclasses and their attributes
Mocking imports with patch.dict
Tracking order of calls and less verbose call assertions
More complex argument matching
2to3 - Automated Python 2 to 3 code translation
Using 2to3
Fixers
lib2to3 - 2to3s library
test Regression tests package for Python
Writing Unit Tests for the test package
Running tests using the command-line interface
test.support Utilities for the Python test suite
test.support.script_helper Utilities for the Python execution tests
Debugging and Profiling
bdb Debugger framework
faulthandler Dump the Python traceback
Dumping the traceback
Fault handler state
Dumping the tracebacks after a timeout
Dumping the traceback on a user signal
Issue with file descriptors
Example
pdb The Python Debugger
Debugger Commands
The Python Profilers
Introduction to the profilers
Instant Users Manual
profile and cProfile Module Reference
The Stats Class
What Is Deterministic Profiling?
Limitations
Calibration
Using a custom timer
timeit Measure execution time of small code snippets
Basic Examples
Python Interface
Command-Line Interface
Examples
trace Trace or track Python statement execution
Command-Line Usage
Main options
Modifiers
Filters
Programmatic Interface
tracemalloc Trace memory allocations
Examples
Display the top 10
Compute differences
Get the traceback of a memory block
Pretty top
API
Functions
DomainFilter
Filter
Frame
Snapshot
Statistic
StatisticDiff
Trace
Traceback
Software Packaging and Distribution
distutils Building and installing Python modules
ensurepip Bootstrapping the pip installer
Command line interface
Module API
venv Creation of virtual environments
Creating virtual environments
API
An example of extending EnvBuilder
zipapp Manage executable Python zip archives
Basic Example
Command-Line Interface
Python API
Examples
Specifying the Interpreter
Creating Standalone Applications with zipapp
Making a Windows executable
Caveats
The Python Zip Application Archive Format
Python Runtime Services
sys System-specific parameters and functions
sysconfig Provide access to Pythons configuration information
Configuration variables
Installation paths
Other functions
Using sysconfig as a script
builtins Built-in objects
__main__ Top-level script environment
warnings Warning control
Warning Categories
The Warnings Filter
Describing Warning Filters
Default Warning Filter
Overriding the default filter
Temporarily Suppressing Warnings
Testing Warnings
Updating Code For New Versions of Dependencies
Available Functions
Available Context Managers
dataclasses Data Classes
Module-level decorators, classes, and functions
Post-init processing
Class variables
Init-only variables
Frozen instances
Inheritance
Default factory functions
Mutable default values
Exceptions
contextlib Utilities for with-statement contexts
Utilities
Examples and Recipes
Supporting a variable number of context managers
Catching exceptions from __enter__ methods
Cleaning up in an __enter__ implementation
Replacing any use of try-finally and flag variables
Using a context manager as a function decorator
Single use, reusable and reentrant context managers
Reentrant context managers
Reusable context managers
abc Abstract Base Classes
atexit Exit handlers
atexit Example
traceback Print or retrieve a stack traceback
TracebackException Objects
StackSummary Objects
FrameSummary Objects
Traceback Examples
__future__ Future statement definitions
gc Garbage Collector interface
inspect Inspect live objects
Types and members
Retrieving source code
Introspecting callables with the Signature object
Classes and functions
The interpreter stack
Fetching attributes statically
Current State of Generators and Coroutines
Code Objects Bit Flags
Command Line Interface
site Site-specific configuration hook
Readline configuration
Module contents
Custom Python Interpreters
code Interpreter base classes
Interactive Interpreter Objects
Interactive Console Objects
codeop Compile Python code
Importing Modules
zipimport Import modules from Zip archives
zipimporter Objects
Examples
pkgutil Package extension utility
modulefinder Find modules used by a script
Example usage of ModuleFinder
runpy Locating and executing Python modules
importlib The implementation of import
Introduction
Functions
importlib.abc Abstract base classes related to import
importlib.resources Resources
importlib.machinery Importers and path hooks
importlib.util Utility code for importers
Examples
Importing programmatically
Checking if a module can be imported
Importing a source file directly
Setting up an importer
Approximating importlib.import_module()
Python Language Services
parser Access Python parse trees
Creating ST Objects
Converting ST Objects
Queries on ST Objects
Exceptions and Error Handling
ST Objects
Example: Emulation of compile()
ast Abstract Syntax Trees
Node classes
Abstract Grammar
ast Helpers
symtable Access to the compilers symbol tables
Generating Symbol Tables
Examining Symbol Tables
symbol Constants used with Python parse trees
token Constants used with Python parse trees
keyword Testing for Python keywords
tokenize Tokenizer for Python source
Tokenizing Input
Command-Line Usage
Examples
tabnanny Detection of ambiguous indentation
pyclbr Python class browser support
Function Objects
Class Objects
py_compile Compile Python source files
compileall Byte-compile Python libraries
Command-line use
Public functions
dis Disassembler for Python bytecode
Bytecode analysis
Analysis functions
Python Bytecode Instructions
Opcode collections
pickletools Tools for pickle developers
Command line usage
Command line options
Programmatic Interface
Miscellaneous Services
formatter Generic output formatting
The Formatter Interface
Formatter Implementations
The Writer Interface
Writer Implementations
MS Windows Specific Services
msilib Read and write Microsoft Installer files
Database Objects
View Objects
Summary Information Objects
Record Objects
Errors
CAB Objects
Directory Objects
Features
GUI classes
Precomputed tables
msvcrt Useful routines from the MS VC++ runtime
File Operations
Console I/O
Other Functions
winreg Windows registry access
Functions
Constants
HKEY_* Constants
Access Rights
64-bit Specific
Value Types
Registry Handle Objects
winsound Sound-playing interface for Windows
Unix Specific Services
posix The most common POSIX system calls
Large File Support
Notable Module Contents
pwd The password database
spwd The shadow password database
grp The group database
crypt Function to check Unix passwords
Hashing Methods
Module Attributes
Module Functions
Examples
termios POSIX style tty control
Example
tty Terminal control functions
pty Pseudo-terminal utilities
Example
fcntl The fcntl and ioctl system calls
pipes Interface to shell pipelines
Template Objects
resource Resource usage information
Resource Limits
Resource Usage
nis Interface to Suns NIS (Yellow Pages)
syslog Unix syslog library routines
Examples
Simple example
Superseded Modules
optparse Parser for command line options
Background
Terminology
What are options for?
What are positional arguments for?
Tutorial
Understanding option actions
The store action
Handling boolean (flag) options
Other actions
Default values
Generating help
Grouping Options
Printing a version string
How optparse handles errors
Putting it all together
Reference Guide
Creating the parser
Populating the parser
Defining options
Option attributes
Standard option actions
Standard option types
Parsing arguments
Querying and manipulating your option parser
Conflicts between options
Cleanup
Other methods
Option Callbacks
Defining a callback option
How callbacks are called
Raising errors in a callback
Callback example 1: trivial callback
Callback example 2: check option order
Callback example 3: check option order (generalized)
Callback example 4: check arbitrary condition
Callback example 5: fixed arguments
Callback example 6: variable arguments
Extending optparse
Adding new types
Adding new actions
imp Access the import internals
Examples
Undocumented Modules
Platform specific modules
Extending and Embedding the Python Interpreter
Recommended third party tools
Creating extensions without third party tools
Extending Python with C or C++
A Simple Example
Intermezzo: Errors and Exceptions
Back to the Example
The Modules Method Table and Initialization Function
Compilation and Linkage
Calling Python Functions from C
Extracting Parameters in Extension Functions
Keyword Parameters for Extension Functions
Building Arbitrary Values
Reference Counts
Reference Counting in Python
Ownership Rules
Thin Ice
NULL Pointers
Writing Extensions in C++
Providing a C API for an Extension Module
Defining Extension Types: Tutorial
The Basics
Adding data and methods to the Basic example
Providing finer control over data attributes
Supporting cyclic garbage collection
Subclassing other types
Defining Extension Types: Assorted Topics
Finalization and De-allocation
Object Presentation
Attribute Management
Generic Attribute Management
Type-specific Attribute Management
Object Comparison
Abstract Protocol Support
Weak Reference Support
More Suggestions
Building C and C++ Extensions
Building C and C++ Extensions with distutils
Distributing your extension modules
Building C and C++ Extensions on Windows
A Cookbook Approach
Differences Between Unix and Windows
Using DLLs in Practice
Embedding the CPython runtime in a larger application
Embedding Python in Another Application
Very High Level Embedding
Beyond Very High Level Embedding: An overview
Pure Embedding
Extending Embedded Python
Embedding Python in C++
Compiling and Linking under Unix-like systems
Python/C API Reference Manual
Introduction
Coding standards
Include Files
Useful macros
Objects, Types and Reference Counts
Reference Counts
Reference Count Details
Types
Exceptions
Embedding Python
Debugging Builds
Stable Application Binary Interface
The Very High Level Layer
Reference Counting
Exception Handling
Printing and clearing
Raising exceptions
Issuing warnings
Querying the error indicator
Signal Handling
Exception Classes
Exception Objects
Unicode Exception Objects
Recursion Control
Standard Exceptions
Standard Warning Categories
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
Built-in Codecs
Generic Codecs
UTF-8 Codecs
UTF-32 Codecs
UTF-16 Codecs
UTF-7 Codecs
Unicode-Escape Codecs
Raw-Unicode-Escape Codecs
Latin-1 Codecs
ASCII Codecs
Character Map Codecs
MBCS codecs for Windows
Methods & Slots
Methods and Slot Functions
Tuple Objects
Struct Sequence Objects
List Objects
Container Objects
Dictionary Objects
Set Objects
Function Objects
Function Objects
Instance Method Objects
Method Objects
Cell Objects
Code Objects
Other Objects
File Objects
Module Objects
Initializing C modules
Single-phase initialization
Multi-phase initialization
Low-level module creation functions
Support functions
Module lookup
Iterator Objects
Descriptor Objects
Slice Objects
Ellipsis Object
MemoryView objects
Weak Reference Objects
Capsules
Generator Objects
Coroutine Objects
Context Variables Objects
DateTime Objects
Initialization, Finalization, and Threads
Before Python Initialization
Global configuration variables
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
Thread Local Storage Support
Thread Specific Storage (TSS) API
Dynamic Allocation
Methods
Thread Local Storage (TLS) API
Memory Management
Overview
Raw Memory Interface
Memory Interface
Object allocators
Default Memory Allocators
Customize Memory Allocators
The pymalloc allocator
Customize pymalloc Arena Allocator
tracemalloc C API
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
Async Object Structures
Supporting Cyclic Garbage Collection
API and ABI Versioning
Distributing Python Modules
Key terms
Open source licensing and collaboration
Installing the tools
Reading the guide
How do I ?
choose a name for my project?
create and distribute binary extensions?
Installing Python Modules
Key terms
Basic usage
How do I ?
install pip in versions of Python prior to Python 3.4?
install packages just for the current user?
install scientific Python packages?
work with multiple versions of Python installed in parallel?
Common installation issues
Installing into the system Python on Linux
Pip not installed
Installing binary extensions
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.py file
Have good test coverage
Learn the differences between Python 2 & 3
Update your code
Division
Text versus binary data
Use feature detection instead of version detection
Prevent compatibility regressions
Check which dependencies block your transition
Update your setup.py file to denote Python 3 compatibility
Use continuous integration to stay compatible
Consider using optional static type checking
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
Combinatoric functions
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
Logging Flow
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
Logging from multiple threads
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 objects other than dicts to pass contextual information
Using Filters to impart contextual information
Logging to a single file from multiple processes
Using file rotation
Use of alternative formatting styles
Customizing LogRecord
Subclassing QueueHandler - a ZeroMQ example
Subclassing QueueListener - a ZeroMQ example
An example dictionary-based configuration
Using a rotator and namer to customize log rotation processing
A more elaborate multiprocessing example
Inserting a BOM into messages sent to a SysLogHandler
Implementing structured logging
Customizing handlers with dictConfig()
Using particular formatting styles throughout your application
Using LogRecord factories
Using custom message objects
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
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
Definitions
Encodings
References
Pythons Unicode Support
The String Type
Converting to Bytes
Unicode Literals in Python Source Code
Unicode Properties
Comparing Strings
Unicode Regular Expressions
References
Reading and Writing Unicode Data
Unicode filenames
Tips for Writing Unicode-aware Programs
Converting Between File Encodings
Files in an Unknown Encoding
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
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
Argument Clinic How-To
The Goals Of Argument Clinic
Basic Concepts And Usage
Converting Your First Function
Advanced Topics
Symbolic default values
Renaming the C functions and variables generated by Argument Clinic
Converting functions using PyArg_UnpackTuple
Optional Groups
Using real Argument Clinic converters, instead of legacy converters
Py_buffer
Advanced converters
Parameter default values
The NULL default value
Expressions specified as default values
Using a return converter
Cloning existing functions
Calling Python code
Using a self converter
Writing a custom converter
Writing a custom return converter
METH_O and METH_NOARGS
tp_new and tp_init functions
Changing and redirecting Clinics output
The #ifdef trick
Using Argument Clinic in Python files
Instrumenting CPython with DTrace and SystemTap
Enabling the static markers
Static DTrace probes
Static SystemTap markers
Available static markers
SystemTap Tapsets
Examples
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)
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 cant 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 isnt there a switch or case statement in Python?
Cant you emulate threads in the interpreter instead of relying on an OS-specific thread implementation?
Why cant lambda expressions contain statements?
Can Python be compiled to machine code, C or some other language?
How does Python manage memory?
Why doesnt CPython use a more traditional garbage collection scheme?
Why isnt all memory freed when CPython 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 doesnt list.sort() return the sorted list?
How do you specify and enforce an interface spec in Python?
Why is there no goto?
Why cant raw strings (r-strings) end with a backslash?
Why doesnt 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 objects 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?
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?
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
Dealing with Bugs
Documentation bugs
Using the Python issue tracker
Getting started contributing to Python yourself
Copyright
History and License
History of the software
Terms and conditions for accessing or otherwise using Python
PSF LICENSE AGREEMENT FOR PYTHON 3.7.3
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
Licenses and Acknowledgements for Incorporated Software
Mersenne Twister
Sockets
Asynchronous socket services
Cookie management
Execution tracing
UUencode and UUdecode functions
XML Remote Procedure Calls
test_epoll
Select kqueue
SipHash24
strtod and dtoa
OpenSSL
expat
libffi
zlib
cfuhash
libmpdec
Get in touch
Submit feedback about this site to:
[email protected]