Python 3.6.5 Documentation > Contents of this Documentation
Python Documentation contents *****************************
* What’s New in Python
* What’s 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.5
* What’s 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
* What’s 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
* 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
* 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
* PEP 434: IDLE Enhancement Exception for All Branches
* PEP 466: Network Security Enhancements for 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 next
* Core and Builtins
* Library
* Documentation
* Tests
* Tools/Demos
* C API
* Python 3.6.5 release candidate 1
* Security
* Core and Builtins
* Library
* Documentation
* Tests
* Build
* Windows
* macOS
* IDLE
* Tools/Demos
* C API
* Python 3.6.4 final
* Python 3.6.4 release candidate 1
* Core and Builtins
* Library
* Documentation
* Tests
* Build
* Windows
* macOS
* IDLE
* Tools/Demos
* C API
* Python 3.6.3 final
* Library
* Build
* Python 3.6.3 release candidate 1
* Security
* Core and Builtins
* Library
* Documentation
* Tests
* Build
* Windows
* IDLE
* Tools/Demos
* Python 3.6.2 final
* Python 3.6.2 release candidate 2
* Security
* Python 3.6.2 release candidate 1
* Core and Builtins
* Library
* Security
* Library
* IDLE
* C API
* Build
* Documentation
* Tools/Demos
* Tests
* Windows
* Python 3.6.1 final
* Core and Builtins
* Build
* Python 3.6.1 release candidate 1
* Core and Builtins
* Library
* IDLE
* Windows
* C API
* Documentation
* Tests
* Build
* Python 3.6.0 final
* Python 3.6.0 release candidate 2
* Core and Builtins
* Tools/Demos
* Windows
* Build
* Python 3.6.0 release candidate 1
* Core and Builtins
* Library
* C API
* Documentation
* Tools/Demos
* Python 3.6.0 beta 4
* Core and Builtins
* Library
* Documentation
* Tests
* Build
* Python 3.6.0 beta 3
* Core and Builtins
* Library
* Windows
* Build
* Tests
* Python 3.6.0 beta 2
* Core and Builtins
* Library
* Windows
* C API
* Build
* Tests
* Python 3.6.0 beta 1
* Core and Builtins
* Library
* IDLE
* C API
* Tests
* Build
* Tools/Demos
* Windows
* Python 3.6.0 alpha 4
* Core and Builtins
* Library
* IDLE
* Tests
* Windows
* Build
* Python 3.6.0 alpha 3
* Core and Builtins
* Library
* Security
* Library
* Security
* Library
* IDLE
* C API
* Build
* Tools/Demos
* Documentation
* Tests
* Python 3.6.0 alpha 2
* Core and Builtins
* Library
* Security
* Library
* Security
* Library
* IDLE
* Documentation
* Tests
* Windows
* Build
* Windows
* C API
* Tools/Demos
* Python 3.6.0 alpha 1
* Core and Builtins
* Library
* Security
* Library
* Security
* Library
* Security
* Library
* IDLE
* Documentation
* Tests
* Build
* Windows
* Tools/Demos
* C API
* Python 3.5.3 final
* Python 3.5.3 release candidate 1
* Core and Builtins
* Library
* Security
* Library
* Security
* Library
* IDLE
* C API
* Documentation
* Tests
* Tools/Demos
* Windows
* Build
* Python 3.5.2 final
* Core and Builtins
* Tests
* IDLE
* Python 3.5.2 release candidate 1
* Core and Builtins
* Security
* Library
* Security
* Library
* Security
* Library
* Security
* Library
* Security
* Library
* IDLE
* Documentation
* Tests
* Build
* Windows
* Tools/Demos
* Windows
* Python 3.5.1 final
* Core and Builtins
* Windows
* Python 3.5.1 release candidate 1
* Core and Builtins
* Library
* IDLE
* Documentation
* Tests
* Build
* Windows
* Tools/Demos
* Python 3.5.0 final
* Build
* Python 3.5.0 release candidate 4
* Library
* Build
* Python 3.5.0 release candidate 3
* Core and Builtins
* Library
* Python 3.5.0 release candidate 2
* Core and Builtins
* Library
* Python 3.5.0 release candidate 1
* Core and Builtins
* Library
* IDLE
* Documentation
* Tests
* Python 3.5.0 beta 4
* Core and Builtins
* Library
* Build
* Python 3.5.0 beta 3
* Core and Builtins
* Library
* Tests
* Documentation
* Build
* Python 3.5.0 beta 2
* Core and Builtins
* Library
* Python 3.5.0 beta 1
* Core and Builtins
* Library
* IDLE
* Tests
* Documentation
* Tools/Demos
* Python 3.5.0 alpha 4
* Core and Builtins
* Library
* Build
* Tests
* Tools/Demos
* C API
* Python 3.5.0 alpha 3
* Core and Builtins
* Library
* Build
* Tests
* Tools/Demos
* Python 3.5.0 alpha 2
* Core and Builtins
* Library
* Build
* C API
* Windows
* Python 3.5.0 alpha 1
* Core and Builtins
* Library
* IDLE
* Build
* C API
* Documentation
* Tests
* Tools/Demos
* Windows
* 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
* 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 shouldn’t 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
* Installing Python
* Supported Versions
* Installation Steps
* Removing the MAX_PATH Limitation
* Installing Without UI
* Installing Without Downloading
* Modifying an install
* Other Platforms
* 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
* Embedded Distribution
* Python Application
* Embedding Python
* Other resources
* 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
* Determining the appropriate metaclass
* Preparing the class namespace
* Executing the class body
* Creating the class object
* Metaclass example
* Customizing instance and subclass checks
* 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
* 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
* 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 subclassing of enumerations
* 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
* 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
* "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" — GNU’s 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
* 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 platform’s 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
* 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
* "dummy_threading" — Drop-in replacement for the "threading" module
* "_thread" — Low-level threading API
* "_dummy_thread" — Drop-in replacement for the "_thread" module
* Interprocess Communication and Networking
* "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
* 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
* 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
* "asyncio" — Asynchronous I/O, event loop, coroutines and tasks
* Base Event Loop
* Run an event loop
* Calls
* Delayed calls
* Futures
* Tasks
* Creating connections
* Creating listening connections
* Watch file descriptors
* Low-level socket operations
* Resolve host name
* Connect pipes
* UNIX signals
* Executor
* Error Handling API
* Debug mode
* Server
* Handle
* Event loop 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
* Event loops
* Event loop functions
* Available event loops
* Platform support
* Windows
* Mac OS X
* Event loop policies and the default policy
* Event loop policy interface
* Access to the global loop policy
* Customizing the event loop policy
* Tasks and coroutines
* Coroutines
* Example: Hello World coroutine
* Example: Coroutine displaying the current date
* Example: Chain coroutines
* InvalidStateError
* TimeoutError
* Future
* Example: Future with run_until_complete()
* Example: Future with run_forever()
* Task
* Example: Parallel execution of tasks
* Task functions
* Transports and protocols (callback based API)
* Transports
* BaseTransport
* ReadTransport
* WriteTransport
* DatagramTransport
* BaseSubprocessTransport
* Protocols
* Protocol classes
* Connection callbacks
* Streaming protocols
* Datagram protocols
* Flow control callbacks
* Coroutines and protocols
* Protocol examples
* TCP echo client protocol
* TCP echo server protocol
* UDP echo client protocol
* UDP echo server protocol
* Register an open socket to wait for data using a protocol
* Streams (coroutine based API)
* Stream functions
* StreamReader
* StreamWriter
* StreamReaderProtocol
* IncompleteReadError
* LimitOverrunError
* Stream examples
* TCP echo client using streams
* TCP echo server using streams
* Get HTTP headers
* Register an open socket to wait for data using streams
* Subprocess
* Windows event loop
* Create a subprocess: high-level API using Process
* Create a subprocess: low-level API using subprocess.Popen
* Constants
* Process
* Subprocess and threads
* Subprocess examples
* Subprocess using transport and protocol
* Subprocess using streams
* Synchronization primitives
* Locks
* Lock
* Event
* Condition
* Semaphores
* Semaphore
* BoundedSemaphore
* Queues
* Queue
* PriorityQueue
* LifoQueue
* Exceptions
* Develop with asyncio
* Debug mode of asyncio
* Cancellation
* Concurrency and multithreading
* Handle blocking functions correctly
* Logging
* Detect coroutine objects never scheduled
* Detect exceptions never consumed
* Chain coroutines correctly
* Pending task destroyed
* Close transports and event loops
* "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
* "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 Turtle’s 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
* 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
* Automatic indentation
* Completions
* Calltips
* Python Shell window
* Text colors
* Startup and code execution
* Command line usage
* Startup failure
* IDLE-console differences
* Developing tkinter applications
* Running without a subprocess
* Help and preferences
* Additional help sources
* Setting preferences
* 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?
* What’s 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
* "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" - 2to3’s 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
* 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 User’s 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 Python’s 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
* Default Warning Filters
* Temporarily Suppressing Warnings
* Testing Warnings
* Updating Code For New Versions of Python
* Available Functions
* Available Context Managers
* "contextlib" — Utilities for "with"-statement contexts
* Utilities
* Examples and Recipes
* Supporting a variable number of context managers
* Simplifying support for single optional 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
* "fpectl" — Floating point exception control
* Example
* Limitations and other considerations
* 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.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 compiler’s 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
* Class Objects
* Function 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 Sun’s 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 Module’s 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 New Types
* The Basics
* Adding data and methods to the Basic example
* Providing finer control over data attributes
* Supporting cyclic garbage collection
* Subclassing other types
* Type Methods
* 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
* Include Files
* 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
* DateTime 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
* Raw Memory Interface
* Memory Interface
* Object allocators
* Customize Memory Allocators
* The pymalloc allocator
* Customize pymalloc Arena Allocator
* 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
* 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
* 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 Clinic’s 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)
* 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 expressions 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 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?
* 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
* 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.6.5rc1
* 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
* Floating point exception control
* 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
|