Python Documentation contents
*****************************

* What's New in Python

  * What's New In Python 3.12

    * Summary -- Release highlights

    * New Features

      * PEP 695: Type Parameter Syntax

      * PEP 701: Syntactic formalization of f-strings

      * PEP 684: A Per-Interpreter GIL

      * PEP 669: Low impact monitoring for CPython

      * PEP 688: Making the buffer protocol accessible in Python

      * PEP 709: Comprehension inlining

      * Improved Error Messages

    * New Features Related to Type Hints

      * PEP 692: Using "TypedDict" for more precise "**kwargs" typing

      * PEP 698: Override Decorator for Static Typing

    * Other Language Changes

    * New Modules

    * Improved Modules

      * array

      * asyncio

      * calendar

      * csv

      * dis

      * fractions

      * importlib.resources

      * inspect

      * itertools

      * math

      * os

      * os.path

      * pathlib

      * pdb

      * random

      * shutil

      * sqlite3

      * statistics

      * sys

      * tempfile

      * threading

      * tkinter

      * tokenize

      * types

      * typing

      * unicodedata

      * unittest

      * uuid

    * Optimizations

    * CPython bytecode changes

    * Demos and Tools

    * Deprecated

      * Pending Removal in Python 3.13

      * Pending Removal in Python 3.14

      * Pending Removal in Python 3.15

      * Pending Removal in Python 3.16

      * Pending Removal in Future Versions

    * Removed

      * asynchat and asyncore

      * configparser

      * distutils

      * ensurepip

      * enum

      * ftplib

      * gzip

      * hashlib

      * importlib

      * imp

      * io

      * locale

      * smtpd

      * sqlite3

      * ssl

      * unittest

      * webbrowser

      * xml.etree.ElementTree

      * zipimport

      * Others

    * Porting to Python 3.12

      * Changes in the Python API

    * Build Changes

    * C API Changes

      * New Features

      * Porting to Python 3.12

      * Deprecated

        * Pending Removal in Python 3.14

        * Pending Removal in Python 3.15

        * Pending Removal in Future Versions

      * Removed

    * Notable changes in 3.12.4

      * ipaddress

    * Notable changes in 3.12.5

      * email

    * Notable changes in 3.12.6

      * email

  * What's New In Python 3.11

    * Summary -- Release highlights

    * New Features

      * PEP 657: Fine-grained error locations in tracebacks

      * PEP 654: Exception Groups and "except*"

      * PEP 678: Exceptions can be enriched with notes

      * Windows "py.exe" launcher improvements

    * New Features Related to Type Hints

      * PEP 646: Variadic generics

      * PEP 655: Marking individual "TypedDict" items as required or
        not-required

      * PEP 673: "Self" type

      * PEP 675: Arbitrary literal string type

      * PEP 681: Data class transforms

      * PEP 563 may not be the future

    * Other Language Changes

    * Other CPython Implementation Changes

    * New Modules

    * Improved Modules

      * asyncio

      * contextlib

      * dataclasses

      * datetime

      * enum

      * fcntl

      * fractions

      * functools

      * gzip

      * hashlib

      * IDLE and idlelib

      * inspect

      * locale

      * logging

      * math

      * operator

      * os

      * pathlib

      * re

      * shutil

      * socket

      * sqlite3

      * string

      * sys

      * sysconfig

      * tempfile

      * threading

      * time

      * tkinter

      * traceback

      * typing

      * unicodedata

      * unittest

      * venv

      * warnings

      * zipfile

    * Optimizations

    * Faster CPython

      * Faster Startup

        * Frozen imports / Static code objects

      * Faster Runtime

        * Cheaper, lazy Python frames

        * Inlined Python function calls

        * PEP 659: Specializing Adaptive Interpreter

      * Misc

      * FAQ

        * How should I write my code to utilize these speedups?

        * Will CPython 3.11 use more memory?

        * I don't see any speedups in my workload. Why?

        * Is there a JIT compiler?

      * About

    * CPython bytecode changes

      * New opcodes

      * Replaced opcodes

      * Changed/removed opcodes

    * Deprecated

      * Language/Builtins

      * Modules

      * Standard Library

    * Pending Removal in Python 3.12

    * Removed

    * Porting to Python 3.11

    * Build Changes

    * C API Changes

      * New Features

      * Porting to Python 3.11

      * Deprecated

      * Pending Removal in Python 3.12

      * Removed

    * Notable changes in 3.11.4

      * tarfile

    * Notable changes in 3.11.5

      * OpenSSL

  * What's New In Python 3.10

    * Summary -- Release highlights

    * New Features

      * Parenthesized context managers

      * Better error messages

        * SyntaxErrors

        * IndentationErrors

        * AttributeErrors

        * NameErrors

      * PEP 626: Precise line numbers for debugging and other tools

      * PEP 634: Structural Pattern Matching

        * Syntax and operations

        * Declarative approach

        * Simple pattern: match to a literal

          * Behavior without the wildcard

        * Patterns with a literal and variable

        * Patterns and classes

          * Patterns with positional parameters

        * Nested patterns

        * Complex patterns and the wildcard

        * Guard

        * Other Key Features

      * Optional "EncodingWarning" and "encoding="locale"" option

    * New Features Related to Type Hints

      * PEP 604: New Type Union Operator

      * PEP 612: Parameter Specification Variables

      * PEP 613: TypeAlias

      * PEP 647: User-Defined Type Guards

    * Other Language Changes

    * New Modules

    * Improved Modules

      * asyncio

      * argparse

      * array

      * asynchat, asyncore, smtpd

      * base64

      * bdb

      * bisect

      * codecs

      * collections.abc

      * contextlib

      * curses

      * dataclasses

        * __slots__

        * Keyword-only fields

      * distutils

      * doctest

      * encodings

      * enum

      * fileinput

      * faulthandler

      * gc

      * glob

      * hashlib

      * hmac

      * IDLE and idlelib

      * importlib.metadata

      * inspect

      * itertools

      * linecache

      * os

      * os.path

      * pathlib

      * platform

      * pprint

      * py_compile

      * pyclbr

      * shelve

      * statistics

      * site

      * socket

      * ssl

      * sqlite3

      * sys

      * _thread

      * threading

      * traceback

      * types

      * typing

      * unittest

      * urllib.parse

      * xml

      * zipimport

    * Optimizations

    * Deprecated

    * Removed

    * Porting to Python 3.10

      * Changes in the Python syntax

      * Changes in the Python API

      * Changes in the C API

    * CPython bytecode changes

    * Build Changes

    * C API Changes

      * PEP 652: Maintaining the Stable ABI

      * New Features

      * Porting to Python 3.10

      * Deprecated

      * Removed

    * Notable security feature in 3.10.7

    * Notable security feature in 3.10.8

    * Notable changes in 3.10.12

      * tarfile

  * What's New In Python 3.9

    * Summary -- Release highlights

    * You should check for DeprecationWarning in your code

    * New Features

      * Dictionary Merge & Update Operators

      * New String Methods to Remove Prefixes and Suffixes

      * Type Hinting Generics in Standard Collections

      * New Parser

    * Other Language Changes

    * New Modules

      * zoneinfo

      * graphlib

    * Improved Modules

      * ast

      * asyncio

      * compileall

      * concurrent.futures

      * curses

      * datetime

      * distutils

      * fcntl

      * ftplib

      * gc

      * hashlib

      * http

      * IDLE and idlelib

      * imaplib

      * importlib

      * inspect

      * ipaddress

      * math

      * multiprocessing

      * nntplib

      * os

      * pathlib

      * pdb

      * poplib

      * pprint

      * pydoc

      * random

      * signal

      * smtplib

      * socket

      * time

      * sys

      * tracemalloc

      * typing

      * unicodedata

      * venv

      * xml

    * Optimizations

    * Deprecated

    * Removed

    * Porting to Python 3.9

      * Changes in the Python API

      * Changes in the C API

      * CPython bytecode changes

    * Build Changes

    * C API Changes

      * New Features

      * Porting to Python 3.9

      * Removed

    * Notable changes in Python 3.9.1

      * typing

      * macOS 11.0 (Big Sur) and Apple Silicon Mac support

    * Notable changes in Python 3.9.2

      * collections.abc

      * urllib.parse

    * Notable changes in Python 3.9.3

    * Notable changes in Python 3.9.5

      * urllib.parse

    * Notable security feature in 3.9.14

    * Notable changes in 3.9.17

      * tarfile

  * What's New In Python 3.8

    * Summary -- Release highlights

    * New Features

      * Assignment expressions

      * Positional-only parameters

      * Parallel filesystem cache for compiled bytecode files

      * Debug build uses the same ABI as release build

      * f-strings support "=" for self-documenting expressions and
        debugging

      * PEP 578: Python Runtime Audit Hooks

      * PEP 587: Python Initialization Configuration

      * PEP 590: Vectorcall: a fast calling protocol for CPython

      * Pickle protocol 5 with out-of-band data buffers

    * Other Language Changes

    * New Modules

    * Improved Modules

      * ast

      * asyncio

      * builtins

      * collections

      * cProfile

      * csv

      * curses

      * ctypes

      * datetime

      * functools

      * gc

      * gettext

      * gzip

      * IDLE and idlelib

      * inspect

      * io

      * itertools

      * json.tool

      * logging

      * math

      * mmap

      * multiprocessing

      * os

      * os.path

      * pathlib

      * pickle

      * plistlib

      * pprint

      * py_compile

      * shlex

      * shutil

      * socket

      * ssl

      * statistics

      * sys

      * tarfile

      * threading

      * tokenize

      * tkinter

      * time

      * typing

      * unicodedata

      * unittest

      * venv

      * weakref

      * xml

      * xmlrpc

    * Optimizations

    * Build and C API Changes

    * Deprecated

    * API and Feature Removals

    * Porting to Python 3.8

      * Changes in Python behavior

      * Changes in the Python API

      * Changes in the C API

      * CPython bytecode changes

      * Demos and Tools

    * Notable changes in Python 3.8.1

    * Notable changes in Python 3.8.2

    * Notable changes in Python 3.8.3

    * Notable changes in Python 3.8.8

    * Notable changes in Python 3.8.9

    * Notable changes in Python 3.8.10

      * macOS 11.0 (Big Sur) and Apple Silicon Mac support

    * Notable changes in Python 3.8.10

      * urllib.parse

    * Notable changes in Python 3.8.12

      * Changes in the Python API

    * Notable security feature in 3.8.14

    * Notable changes in 3.8.17

      * tarfile

  * What's 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

      * Python Development 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

    * Notable changes in Python 3.7.6

    * Notable changes in Python 3.7.10

    * Notable changes in Python 3.7.11

    * Notable security feature in 3.7.14

  * 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

      * xml

      * 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

    * Notable changes in Python 3.6.10

    * Notable changes in Python 3.6.13

    * Notable changes in Python 3.6.14

  * 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

    * Notable changes in Python 3.5.4

      * New "make regen-all" build target

      * Removal of "make touch" build target

  * 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

      * 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

  * 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

      * macOS

      * Windows

      * Tools/Demos

      * Tests

      * Security

      * Library

      * IDLE

      * Documentation

      * Core and Builtins

      * C API

      * Build

    * Python 3.12.7 final

      * Windows

      * Tests

      * Security

      * Library

      * IDLE

      * Core and Builtins

      * C API

      * Build

    * Python 3.12.6 final

      * macOS

      * Windows

      * Tools/Demos

      * Tests

      * Security

      * Library

      * IDLE

      * Core and Builtins

      * Build

    * Python 3.12.5 final

      * Windows

      * Tests

      * Security

      * Library

      * IDLE

      * Documentation

      * Core and Builtins

      * Build

    * Python 3.12.4 final

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.12.3 final

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.12.2 final

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

    * Python 3.12.1 final

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.12.0 final

      * Core and Builtins

      * Library

      * Documentation

      * Windows

      * macOS

      * Tools/Demos

    * Python 3.12.0 release candidate 3

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

    * Python 3.12.0 release candidate 2

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.12.0 release candidate 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.12.0 beta 4

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Tools/Demos

      * C API

    * Python 3.12.0 beta 3

      * Core and Builtins

      * Library

      * Tests

      * Windows

      * C API

    * Python 3.12.0 beta 2

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.12.0 beta 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.12.0 alpha 7

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * Tools/Demos

      * C API

    * Python 3.12.0 alpha 6

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * C API

    * Python 3.12.0 alpha 5

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

    * Python 3.12.0 alpha 4

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.12.0 alpha 3

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.12.0 alpha 2

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * C API

    * Python 3.12.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.11.0 beta 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.11.0 alpha 7

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.11.0 alpha 6

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * IDLE

      * C API

    * Python 3.11.0 alpha 5

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.11.0 alpha 4

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * C API

    * Python 3.11.0 alpha 3

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * C API

    * Python 3.11.0 alpha 2

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.11.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.10.0 beta 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.10.0 alpha 7

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * IDLE

      * C API

    * Python 3.10.0 alpha 6

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.10.0 alpha 5

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.10.0 alpha 4

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * macOS

      * Tools/Demos

      * C API

    * Python 3.10.0 alpha 3

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.10.0 alpha 2

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.10.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.9.0 beta 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * Tools/Demos

      * C API

    * Python 3.9.0 alpha 6

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.9.0 alpha 5

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.9.0 alpha 4

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * IDLE

      * C API

    * Python 3.9.0 alpha 3

      * Core and Builtins

      * Library

      * Documentation

      * Build

      * IDLE

      * C API

    * Python 3.9.0 alpha 2

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * C API

    * Python 3.9.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.8.0 beta 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.8.0 alpha 4

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.8.0 alpha 3

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.8.0 alpha 2

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Windows

      * IDLE

    * Python 3.8.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.7.0 final

      * Library

      * C API

    * Python 3.7.0 release candidate 1

      * Core and Builtins

      * Library

      * Documentation

      * Build

      * Windows

      * IDLE

    * Python 3.7.0 beta 5

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * macOS

      * IDLE

    * Python 3.7.0 beta 4

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

    * Python 3.7.0 beta 3

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.7.0 beta 2

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

    * Python 3.7.0 beta 1

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * C API

    * Python 3.7.0 alpha 4

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Windows

      * Tools/Demos

      * C API

    * Python 3.7.0 alpha 3

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.7.0 alpha 2

      * Core and Builtins

      * Library

      * Documentation

      * Build

      * IDLE

      * C API

    * Python 3.7.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.6.6 final

    * Python 3.6.6 release candidate 1

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * macOS

      * IDLE

      * Tools/Demos

      * C API

    * Python 3.6.5 final

      * Tests

      * Build

    * 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

      * Security

      * Core and Builtins

      * 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

      * Security

      * Core and Builtins

      * Library

      * IDLE

      * C API

      * Build

      * Tools/Demos

      * Documentation

      * Tests

    * Python 3.6.0 alpha 2

      * Security

      * Core and Builtins

      * Library

      * IDLE

      * Documentation

      * Tests

      * Windows

      * Build

      * C API

      * Tools/Demos

    * Python 3.6.0 alpha 1

      * Security

      * Core and Builtins

      * Library

      * IDLE

      * Documentation

      * Tests

      * Build

      * Windows

      * Tools/Demos

      * C API

    * Python 3.5.5 final

    * Python 3.5.5 release candidate 1

      * Security

      * Core and Builtins

      * Library

    * Python 3.5.4 final

      * Library

    * Python 3.5.4 release candidate 1

      * Security

      * Core and Builtins

      * Library

      * Documentation

      * Tests

      * Build

      * Windows

      * C API

    * Python 3.5.3 final

    * Python 3.5.3 release candidate 1

      * Security

      * Core and Builtins

      * 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

      * Security

      * Core and Builtins

      * Library

      * IDLE

      * Documentation

      * Tests

      * Build

      * Windows

      * Tools/Demos

    * 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

  * 1. Whetting Your Appetite

  * 2. Using the Python Interpreter

    * 2.1. Invoking the Interpreter

      * 2.1.1. Argument Passing

      * 2.1.2. Interactive Mode

    * 2.2. The Interpreter and Its Environment

      * 2.2.1. Source Code Encoding

  * 3. An Informal Introduction to Python

    * 3.1. Using Python as a Calculator

      * 3.1.1. Numbers

      * 3.1.2. Text

      * 3.1.3. Lists

    * 3.2. First Steps Towards Programming

  * 4. More Control Flow Tools

    * 4.1. "if" Statements

    * 4.2. "for" Statements

    * 4.3. The "range()" Function

    * 4.4. "break" and "continue" Statements

    * 4.5. "else" Clauses on Loops

    * 4.6. "pass" Statements

    * 4.7. "match" Statements

    * 4.8. Defining Functions

    * 4.9. More on Defining Functions

      * 4.9.1. Default Argument Values

      * 4.9.2. Keyword Arguments

      * 4.9.3. Special parameters

        * 4.9.3.1. Positional-or-Keyword Arguments

        * 4.9.3.2. Positional-Only Parameters

        * 4.9.3.3. Keyword-Only Arguments

        * 4.9.3.4. Function Examples

        * 4.9.3.5. Recap

      * 4.9.4. Arbitrary Argument Lists

      * 4.9.5. Unpacking Argument Lists

      * 4.9.6. Lambda Expressions

      * 4.9.7. Documentation Strings

      * 4.9.8. Function Annotations

    * 4.10. Intermezzo: Coding Style

  * 5. Data Structures

    * 5.1. More on Lists

      * 5.1.1. Using Lists as Stacks

      * 5.1.2. Using Lists as Queues

      * 5.1.3. List Comprehensions

      * 5.1.4. Nested List Comprehensions

    * 5.2. The "del" statement

    * 5.3. Tuples and Sequences

    * 5.4. Sets

    * 5.5. Dictionaries

    * 5.6. Looping Techniques

    * 5.7. More on Conditions

    * 5.8. Comparing Sequences and Other Types

  * 6. Modules

    * 6.1. More on Modules

      * 6.1.1. Executing modules as scripts

      * 6.1.2. The Module Search Path

      * 6.1.3. "Compiled" Python files

    * 6.2. Standard Modules

    * 6.3. The "dir()" Function

    * 6.4. Packages

      * 6.4.1. Importing * From a Package

      * 6.4.2. Intra-package References

      * 6.4.3. Packages in Multiple Directories

  * 7. Input and Output

    * 7.1. Fancier Output Formatting

      * 7.1.1. Formatted String Literals

      * 7.1.2. The String format() Method

      * 7.1.3. Manual String Formatting

      * 7.1.4. Old string formatting

    * 7.2. Reading and Writing Files

      * 7.2.1. Methods of File Objects

      * 7.2.2. Saving structured data with "json"

  * 8. Errors and Exceptions

    * 8.1. Syntax Errors

    * 8.2. Exceptions

    * 8.3. Handling Exceptions

    * 8.4. Raising Exceptions

    * 8.5. Exception Chaining

    * 8.6. User-defined Exceptions

    * 8.7. Defining Clean-up Actions

    * 8.8. Predefined Clean-up Actions

    * 8.9. Raising and Handling Multiple Unrelated Exceptions

    * 8.10. Enriching Exceptions with Notes

  * 9. Classes

    * 9.1. A Word About Names and Objects

    * 9.2. Python Scopes and Namespaces

      * 9.2.1. Scopes and Namespaces Example

    * 9.3. A First Look at Classes

      * 9.3.1. Class Definition Syntax

      * 9.3.2. Class Objects

      * 9.3.3. Instance Objects

      * 9.3.4. Method Objects

      * 9.3.5. Class and Instance Variables

    * 9.4. Random Remarks

    * 9.5. Inheritance

      * 9.5.1. Multiple Inheritance

    * 9.6. Private Variables

    * 9.7. Odds and Ends

    * 9.8. Iterators

    * 9.9. Generators

    * 9.10. Generator Expressions

  * 10. Brief Tour of the Standard Library

    * 10.1. Operating System Interface

    * 10.2. File Wildcards

    * 10.3. Command Line Arguments

    * 10.4. Error Output Redirection and Program Termination

    * 10.5. String Pattern Matching

    * 10.6. Mathematics

    * 10.7. Internet Access

    * 10.8. Dates and Times

    * 10.9. Data Compression

    * 10.10. Performance Measurement

    * 10.11. Quality Control

    * 10.12. Batteries Included

  * 11. Brief Tour of the Standard Library --- Part II

    * 11.1. Output Formatting

    * 11.2. Templating

    * 11.3. Working with Binary Data Record Layouts

    * 11.4. Multi-threading

    * 11.5. Logging

    * 11.6. Weak References

    * 11.7. Tools for Working with Lists

    * 11.8. Decimal Floating-Point Arithmetic

  * 12. Virtual Environments and Packages

    * 12.1. Introduction

    * 12.2. Creating Virtual Environments

    * 12.3. Managing Packages with pip

  * 13. What Now?

  * 14. Interactive Input Editing and History Substitution

    * 14.1. Tab Completion and History Editing

    * 14.2. Alternatives to the Interactive Interpreter

  * 15. Floating-Point Arithmetic:  Issues and Limitations

    * 15.1. Representation Error

  * 16. Appendix

    * 16.1. Interactive Mode

      * 16.1.1. Error Handling

      * 16.1.2. Executable Python Scripts

      * 16.1.3. The Interactive Startup File

      * 16.1.4. The Customization Modules

* Python Setup and Usage

  * 1. Command line and environment

    * 1.1. Command line

      * 1.1.1. Interface options

      * 1.1.2. Generic options

      * 1.1.3. Miscellaneous options

      * 1.1.4. Options you shouldn't use

    * 1.2. Environment variables

      * 1.2.1. Debug-mode variables

  * 2. Using Python on Unix platforms

    * 2.1. Getting and installing the latest version of Python

      * 2.1.1. On Linux

      * 2.1.2. On FreeBSD and OpenBSD

    * 2.2. Building Python

    * 2.3. Python-related paths and files

    * 2.4. Miscellaneous

    * 2.5. Custom OpenSSL

  * 3. Configure Python

    * 3.1. Build Requirements

    * 3.2. Generated files

      * 3.2.1. configure script

    * 3.3. Configure Options

      * 3.3.1. General Options

      * 3.3.2. WebAssembly Options

      * 3.3.3. Install Options

      * 3.3.4. Performance options

      * 3.3.5. Python Debug Build

      * 3.3.6. Debug options

      * 3.3.7. Linker options

      * 3.3.8. Libraries options

      * 3.3.9. Security Options

      * 3.3.10. macOS Options

      * 3.3.11. Cross Compiling Options

    * 3.4. Python Build System

      * 3.4.1. Main files of the build system

      * 3.4.2. Main build steps

      * 3.4.3. Main Makefile targets

      * 3.4.4. C extensions

    * 3.5. Compiler and linker flags

      * 3.5.1. Preprocessor flags

      * 3.5.2. Compiler flags

      * 3.5.3. Linker flags

  * 4. Using Python on Windows

    * 4.1. The full installer

      * 4.1.1. Installation steps

      * 4.1.2. Removing the MAX_PATH Limitation

      * 4.1.3. Installing Without UI

      * 4.1.4. Installing Without Downloading

      * 4.1.5. Modifying an install

    * 4.2. The Microsoft Store package

      * 4.2.1. Known issues

        * 4.2.1.1. Redirection of local data, registry, and temporary
          paths

    * 4.3. The nuget.org packages

    * 4.4. The embeddable package

      * 4.4.1. Python Application

      * 4.4.2. Embedding Python

    * 4.5. Alternative bundles

    * 4.6. Configuring Python

      * 4.6.1. Excursus: Setting environment variables

      * 4.6.2. Finding the Python executable

    * 4.7. UTF-8 mode

    * 4.8. Python Launcher for Windows

      * 4.8.1. Getting started

        * 4.8.1.1. From the command-line

        * 4.8.1.2. Virtual environments

        * 4.8.1.3. From a script

        * 4.8.1.4. From file associations

      * 4.8.2. Shebang Lines

      * 4.8.3. Arguments in shebang lines

      * 4.8.4. Customization

        * 4.8.4.1. Customization via INI files

        * 4.8.4.2. Customizing default Python versions

      * 4.8.5. Diagnostics

      * 4.8.6. Dry Run

      * 4.8.7. Install on demand

      * 4.8.8. Return codes

    * 4.9. Finding modules

    * 4.10. Additional modules

      * 4.10.1. PyWin32

      * 4.10.2. cx_Freeze

    * 4.11. Compiling Python on Windows

    * 4.12. Other Platforms

  * 5. Using Python on a Mac

    * 5.1. Getting and Installing Python

      * 5.1.1. How to run a Python script

      * 5.1.2. Running scripts with a GUI

      * 5.1.3. Configuration

    * 5.2. The IDE

    * 5.3. Installing Additional Python Packages

    * 5.4. GUI Programming

    * 5.5. Distributing Python Applications

    * 5.6. Other Resources

  * 6. Editors and IDEs

* The Python Language Reference

  * 1. Introduction

    * 1.1. Alternate Implementations

    * 1.2. Notation

  * 2. Lexical analysis

    * 2.1. Line structure

      * 2.1.1. Logical lines

      * 2.1.2. Physical lines

      * 2.1.3. Comments

      * 2.1.4. Encoding declarations

      * 2.1.5. Explicit line joining

      * 2.1.6. Implicit line joining

      * 2.1.7. Blank lines

      * 2.1.8. Indentation

      * 2.1.9. Whitespace between tokens

    * 2.2. Other tokens

    * 2.3. Identifiers and keywords

      * 2.3.1. Keywords

      * 2.3.2. Soft Keywords

      * 2.3.3. Reserved classes of identifiers

    * 2.4. Literals

      * 2.4.1. String and Bytes literals

        * 2.4.1.1. Escape sequences

      * 2.4.2. String literal concatenation

      * 2.4.3. f-strings

      * 2.4.4. Numeric literals

      * 2.4.5. Integer literals

      * 2.4.6. Floating-point literals

      * 2.4.7. Imaginary literals

    * 2.5. Operators

    * 2.6. Delimiters

  * 3. Data model

    * 3.1. Objects, values and types

    * 3.2. The standard type hierarchy

      * 3.2.1. None

      * 3.2.2. NotImplemented

      * 3.2.3. Ellipsis

      * 3.2.4. "numbers.Number"

        * 3.2.4.1. "numbers.Integral"

        * 3.2.4.2. "numbers.Real" ("float")

        * 3.2.4.3. "numbers.Complex" ("complex")

      * 3.2.5. Sequences

        * 3.2.5.1. Immutable sequences

        * 3.2.5.2. Mutable sequences

      * 3.2.6. Set types

      * 3.2.7. Mappings

        * 3.2.7.1. Dictionaries

      * 3.2.8. Callable types

        * 3.2.8.1. User-defined functions

          * 3.2.8.1.1. Special read-only attributes

            * "__globals__"

            * "__closure__"

          * 3.2.8.1.2. Special writable attributes

            * "__doc__"

            * "__name__"

            * "__qualname__"

            * "__module__"

            * "__defaults__"

            * "__code__"

            * "__dict__"

            * "__annotations__"

            * "__kwdefaults__"

            * "__type_params__"

        * 3.2.8.2. Instance methods

          * "__self__"

          * "__func__"

          * "__doc__"

          * "__name__"

          * "__module__"

        * 3.2.8.3. Generator functions

        * 3.2.8.4. Coroutine functions

        * 3.2.8.5. Asynchronous generator functions

        * 3.2.8.6. Built-in functions

        * 3.2.8.7. Built-in methods

        * 3.2.8.8. Classes

        * 3.2.8.9. Class Instances

      * 3.2.9. Modules

        * 3.2.9.1. Import-related attributes on module objects

          * "__name__"

          * "__spec__"

          * "__package__"

          * "__loader__"

          * "__path__"

          * "__file__"

          * "__cached__"

        * 3.2.9.2. Other writable attributes on module objects

          * "__doc__"

          * "__annotations__"

        * 3.2.9.3. Module dictionaries

          * "__dict__"

      * 3.2.10. Custom classes

        * 3.2.10.1. Special attributes

          * "__name__"

          * "__qualname__"

          * "__module__"

          * "__dict__"

          * "__bases__"

          * "__doc__"

          * "__annotations__"

          * "__type_params__"

          * "__mro__"

        * 3.2.10.2. Special methods

          * "mro()"

          * "__subclasses__()"

      * 3.2.11. Class instances

        * 3.2.11.1. Special attributes

          * "__class__"

          * "__dict__"

      * 3.2.12. I/O objects (also known as file objects)

      * 3.2.13. Internal types

        * 3.2.13.1. Code objects

          * 3.2.13.1.1. Special read-only attributes

            * "co_name"

            * "co_qualname"

            * "co_argcount"

            * "co_posonlyargcount"

            * "co_kwonlyargcount"

            * "co_nlocals"

            * "co_varnames"

            * "co_cellvars"

            * "co_freevars"

            * "co_code"

            * "co_consts"

            * "co_names"

            * "co_filename"

            * "co_firstlineno"

            * "co_lnotab"

            * "co_stacksize"

            * "co_flags"

          * 3.2.13.1.2. Methods on code objects

            * "co_positions()"

            * "co_lines()"

            * "replace()"

        * 3.2.13.2. Frame objects

          * 3.2.13.2.1. Special read-only attributes

            * "f_back"

            * "f_code"

            * "f_locals"

            * "f_globals"

            * "f_builtins"

            * "f_lasti"

          * 3.2.13.2.2. Special writable attributes

            * "f_trace"

            * "f_trace_lines"

            * "f_trace_opcodes"

            * "f_lineno"

          * 3.2.13.2.3. Frame object methods

            * "clear()"

        * 3.2.13.3. Traceback objects

          * "tb_frame"

          * "tb_lineno"

          * "tb_lasti"

          * "tb_next"

        * 3.2.13.4. Slice objects

          * "indices()"

        * 3.2.13.5. Static method objects

        * 3.2.13.6. Class method objects

    * 3.3. Special method names

      * 3.3.1. Basic customization

        * "__new__()"

        * "__init__()"

        * "__del__()"

        * "__repr__()"

        * "__str__()"

        * "__bytes__()"

        * "__format__()"

        * "__lt__()"

        * "__le__()"

        * "__eq__()"

        * "__ne__()"

        * "__gt__()"

        * "__ge__()"

        * "__hash__()"

        * "__bool__()"

      * 3.3.2. Customizing attribute access

        * "__getattr__()"

        * "__getattribute__()"

        * "__setattr__()"

        * "__delattr__()"

        * "__dir__()"

        * 3.3.2.1. Customizing module attribute access

        * 3.3.2.2. Implementing Descriptors

          * "__get__()"

          * "__set__()"

          * "__delete__()"

          * "__objclass__"

        * 3.3.2.3. Invoking Descriptors

        * 3.3.2.4. __slots__

          * "__slots__"

      * 3.3.3. Customizing class creation

        * "__init_subclass__()"

        * "__set_name__()"

        * 3.3.3.1. Metaclasses

        * 3.3.3.2. Resolving MRO entries

          * "__mro_entries__()"

        * 3.3.3.3. Determining the appropriate metaclass

        * 3.3.3.4. Preparing the class namespace

        * 3.3.3.5. Executing the class body

        * 3.3.3.6. Creating the class object

        * 3.3.3.7. Uses for metaclasses

      * 3.3.4. Customizing instance and subclass checks

        * "__instancecheck__()"

        * "__subclasscheck__()"

      * 3.3.5. Emulating generic types

        * "__class_getitem__()"

        * 3.3.5.1. The purpose of *__class_getitem__*

        * 3.3.5.2. *__class_getitem__* versus *__getitem__*

      * 3.3.6. Emulating callable objects

        * "__call__()"

      * 3.3.7. Emulating container types

        * "__len__()"

        * "__length_hint__()"

        * "__getitem__()"

        * "__setitem__()"

        * "__delitem__()"

        * "__missing__()"

        * "__iter__()"

        * "__reversed__()"

        * "__contains__()"

      * 3.3.8. Emulating numeric types

        * "__add__()"

        * "__sub__()"

        * "__mul__()"

        * "__matmul__()"

        * "__truediv__()"

        * "__floordiv__()"

        * "__mod__()"

        * "__divmod__()"

        * "__pow__()"

        * "__lshift__()"

        * "__rshift__()"

        * "__and__()"

        * "__xor__()"

        * "__or__()"

        * "__radd__()"

        * "__rsub__()"

        * "__rmul__()"

        * "__rmatmul__()"

        * "__rtruediv__()"

        * "__rfloordiv__()"

        * "__rmod__()"

        * "__rdivmod__()"

        * "__rpow__()"

        * "__rlshift__()"

        * "__rrshift__()"

        * "__rand__()"

        * "__rxor__()"

        * "__ror__()"

        * "__iadd__()"

        * "__isub__()"

        * "__imul__()"

        * "__imatmul__()"

        * "__itruediv__()"

        * "__ifloordiv__()"

        * "__imod__()"

        * "__ipow__()"

        * "__ilshift__()"

        * "__irshift__()"

        * "__iand__()"

        * "__ixor__()"

        * "__ior__()"

        * "__neg__()"

        * "__pos__()"

        * "__abs__()"

        * "__invert__()"

        * "__complex__()"

        * "__int__()"

        * "__float__()"

        * "__index__()"

        * "__round__()"

        * "__trunc__()"

        * "__floor__()"

        * "__ceil__()"

      * 3.3.9. With Statement Context Managers

        * "__enter__()"

        * "__exit__()"

      * 3.3.10. Customizing positional arguments in class pattern
        matching

        * "__match_args__"

      * 3.3.11. Emulating buffer types

        * "__buffer__()"

        * "__release_buffer__()"

      * 3.3.12. Special method lookup

    * 3.4. Coroutines

      * 3.4.1. Awaitable Objects

        * "__await__()"

      * 3.4.2. Coroutine Objects

        * "send()"

        * "throw()"

        * "close()"

      * 3.4.3. Asynchronous Iterators

        * "__aiter__()"

        * "__anext__()"

      * 3.4.4. Asynchronous Context Managers

        * "__aenter__()"

        * "__aexit__()"

  * 4. Execution model

    * 4.1. Structure of a program

    * 4.2. Naming and binding

      * 4.2.1. Binding of names

      * 4.2.2. Resolution of names

      * 4.2.3. Annotation scopes

      * 4.2.4. Lazy evaluation

      * 4.2.5. Builtins and restricted execution

      * 4.2.6. Interaction with dynamic features

    * 4.3. Exceptions

  * 5. The import system

    * 5.1. "importlib"

    * 5.2. Packages

      * 5.2.1. Regular packages

      * 5.2.2. Namespace packages

    * 5.3. Searching

      * 5.3.1. The module cache

      * 5.3.2. Finders and loaders

      * 5.3.3. Import hooks

      * 5.3.4. The meta path

    * 5.4. Loading

      * 5.4.1. Loaders

      * 5.4.2. Submodules

      * 5.4.3. Module specs

      * 5.4.4. __path__ attributes on modules

      * 5.4.5. Module reprs

      * 5.4.6. Cached bytecode invalidation

    * 5.5. The Path Based Finder

      * 5.5.1. Path entry finders

      * 5.5.2. Path entry finder protocol

    * 5.6. Replacing the standard import system

    * 5.7. Package Relative Imports

    * 5.8. Special considerations for __main__

      * 5.8.1. __main__.__spec__

    * 5.9. References

  * 6. Expressions

    * 6.1. Arithmetic conversions

    * 6.2. Atoms

      * 6.2.1. Identifiers (Names)

        * 6.2.1.1. Private name mangling

      * 6.2.2. Literals

      * 6.2.3. Parenthesized forms

      * 6.2.4. Displays for lists, sets and dictionaries

      * 6.2.5. List displays

      * 6.2.6. Set displays

      * 6.2.7. Dictionary displays

      * 6.2.8. Generator expressions

      * 6.2.9. Yield expressions

        * 6.2.9.1. Generator-iterator methods

          * "__next__()"

          * "send()"

          * "throw()"

          * "close()"

        * 6.2.9.2. Examples

        * 6.2.9.3. Asynchronous generator functions

        * 6.2.9.4. Asynchronous generator-iterator methods

          * "__anext__()"

          * "asend()"

          * "athrow()"

          * "aclose()"

    * 6.3. Primaries

      * 6.3.1. Attribute references

      * 6.3.2. Subscriptions

      * 6.3.3. Slicings

      * 6.3.4. Calls

    * 6.4. Await expression

    * 6.5. The power operator

    * 6.6. Unary arithmetic and bitwise operations

    * 6.7. Binary arithmetic operations

    * 6.8. Shifting operations

    * 6.9. Binary bitwise operations

    * 6.10. Comparisons

      * 6.10.1. Value comparisons

      * 6.10.2. Membership test operations

      * 6.10.3. Identity comparisons

    * 6.11. Boolean operations

    * 6.12. Assignment expressions

    * 6.13. Conditional expressions

    * 6.14. Lambdas

    * 6.15. Expression lists

    * 6.16. Evaluation order

    * 6.17. Operator precedence

  * 7. Simple statements

    * 7.1. Expression statements

    * 7.2. Assignment statements

      * 7.2.1. Augmented assignment statements

      * 7.2.2. Annotated assignment statements

    * 7.3. The "assert" statement

    * 7.4. The "pass" statement

    * 7.5. The "del" statement

    * 7.6. The "return" statement

    * 7.7. The "yield" statement

    * 7.8. The "raise" statement

    * 7.9. The "break" statement

    * 7.10. The "continue" statement

    * 7.11. The "import" statement

      * 7.11.1. Future statements

    * 7.12. The "global" statement

    * 7.13. The "nonlocal" statement

    * 7.14. The "type" statement

  * 8. Compound statements

    * 8.1. The "if" statement

    * 8.2. The "while" statement

    * 8.3. The "for" statement

    * 8.4. The "try" statement

      * 8.4.1. "except" clause

      * 8.4.2. "except*" clause

      * 8.4.3. "else" clause

      * 8.4.4. "finally" clause

    * 8.5. The "with" statement

    * 8.6. The "match" statement

      * 8.6.1. Overview

      * 8.6.2. Guards

      * 8.6.3. Irrefutable Case Blocks

      * 8.6.4. Patterns

        * 8.6.4.1. OR Patterns

        * 8.6.4.2. AS Patterns

        * 8.6.4.3. Literal Patterns

        * 8.6.4.4. Capture Patterns

        * 8.6.4.5. Wildcard Patterns

        * 8.6.4.6. Value Patterns

        * 8.6.4.7. Group Patterns

        * 8.6.4.8. Sequence Patterns

        * 8.6.4.9. Mapping Patterns

        * 8.6.4.10. Class Patterns

    * 8.7. Function definitions

    * 8.8. Class definitions

    * 8.9. Coroutines

      * 8.9.1. Coroutine function definition

      * 8.9.2. The "async for" statement

      * 8.9.3. The "async with" statement

    * 8.10. Type parameter lists

      * 8.10.1. Generic functions

      * 8.10.2. Generic classes

      * 8.10.3. Generic type aliases

  * 9. Top-level components

    * 9.1. Complete Python programs

    * 9.2. File input

    * 9.3. Interactive input

    * 9.4. Expression input

  * 10. Full Grammar specification

* The Python Standard Library

  * Introduction

    * Notes on availability

      * WebAssembly platforms

  * Built-in Functions

    * "abs()"

    * "aiter()"

    * "all()"

    * "anext()"

    * "any()"

    * "ascii()"

    * "bin()"

    * "bool"

    * "breakpoint()"

    * "callable()"

    * "chr()"

    * "classmethod()"

    * "compile()"

    * "complex"

    * "delattr()"

    * "dir()"

    * "divmod()"

    * "enumerate()"

    * "eval()"

    * "exec()"

    * "filter()"

    * "float"

    * "format()"

    * "getattr()"

    * "globals()"

    * "hasattr()"

    * "hash()"

    * "help()"

    * "hex()"

    * "id()"

    * "input()"

    * "int"

    * "isinstance()"

    * "issubclass()"

    * "iter()"

    * "len()"

    * "locals()"

    * "map()"

    * "max()"

    * "min()"

    * "next()"

    * "object"

    * "oct()"

    * "open()"

    * "ord()"

    * "pow()"

    * "print()"

    * "property"

      * "getter()"

      * "setter()"

      * "deleter()"

    * "repr()"

    * "reversed()"

    * "round()"

    * "setattr()"

    * "slice"

      * "start"

      * "stop"

      * "step"

    * "sorted()"

    * "staticmethod()"

    * "sum()"

    * "super"

    * "type"

    * "vars()"

    * "zip()"

    * "__import__()"

  * Built-in Constants

    * "False"

    * "True"

    * "None"

    * "NotImplemented"

    * "Ellipsis"

    * "__debug__"

    * Constants added by the "site" module

      * "quit"

      * "exit"

      * "copyright"

      * "credits"

      * "license"

  * 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

        * "bit_length()"

        * "bit_count()"

        * "to_bytes()"

        * "from_bytes()"

        * "as_integer_ratio()"

        * "is_integer()"

      * Additional Methods on Float

        * "as_integer_ratio()"

        * "is_integer()"

        * "hex()"

        * "fromhex()"

      * Hashing of numeric types

    * Boolean Type - "bool"

    * Iterator Types

      * "__iter__()"

      * "__iter__()"

      * "__next__()"

      * Generator Types

    * Sequence Types --- "list", "tuple", "range"

      * Common Sequence Operations

      * Immutable Sequence Types

      * Mutable Sequence Types

      * Lists

        * "list"

          * "sort()"

      * Tuples

        * "tuple"

      * Ranges

        * "range"

          * "start"

          * "stop"

          * "step"

    * Text Sequence Type --- "str"

      * "str"

      * String Methods

        * "capitalize()"

        * "casefold()"

        * "center()"

        * "count()"

        * "encode()"

        * "endswith()"

        * "expandtabs()"

        * "find()"

        * "format()"

        * "format_map()"

        * "index()"

        * "isalnum()"

        * "isalpha()"

        * "isascii()"

        * "isdecimal()"

        * "isdigit()"

        * "isidentifier()"

        * "islower()"

        * "isnumeric()"

        * "isprintable()"

        * "isspace()"

        * "istitle()"

        * "isupper()"

        * "join()"

        * "ljust()"

        * "lower()"

        * "lstrip()"

        * "maketrans()"

        * "partition()"

        * "removeprefix()"

        * "removesuffix()"

        * "replace()"

        * "rfind()"

        * "rindex()"

        * "rjust()"

        * "rpartition()"

        * "rsplit()"

        * "rstrip()"

        * "split()"

        * "splitlines()"

        * "startswith()"

        * "strip()"

        * "swapcase()"

        * "title()"

        * "translate()"

        * "upper()"

        * "zfill()"

      * "printf"-style String Formatting

    * Binary Sequence Types --- "bytes", "bytearray", "memoryview"

      * Bytes Objects

        * "bytes"

          * "fromhex()"

          * "hex()"

      * Bytearray Objects

        * "bytearray"

          * "fromhex()"

          * "hex()"

      * Bytes and Bytearray Operations

        * "count()"

        * "count()"

        * "removeprefix()"

        * "removeprefix()"

        * "removesuffix()"

        * "removesuffix()"

        * "decode()"

        * "decode()"

        * "endswith()"

        * "endswith()"

        * "find()"

        * "find()"

        * "index()"

        * "index()"

        * "join()"

        * "join()"

        * "maketrans()"

        * "maketrans()"

        * "partition()"

        * "partition()"

        * "replace()"

        * "replace()"

        * "rfind()"

        * "rfind()"

        * "rindex()"

        * "rindex()"

        * "rpartition()"

        * "rpartition()"

        * "startswith()"

        * "startswith()"

        * "translate()"

        * "translate()"

        * "center()"

        * "center()"

        * "ljust()"

        * "ljust()"

        * "lstrip()"

        * "lstrip()"

        * "rjust()"

        * "rjust()"

        * "rsplit()"

        * "rsplit()"

        * "rstrip()"

        * "rstrip()"

        * "split()"

        * "split()"

        * "strip()"

        * "strip()"

        * "capitalize()"

        * "capitalize()"

        * "expandtabs()"

        * "expandtabs()"

        * "isalnum()"

        * "isalnum()"

        * "isalpha()"

        * "isalpha()"

        * "isascii()"

        * "isascii()"

        * "isdigit()"

        * "isdigit()"

        * "islower()"

        * "islower()"

        * "isspace()"

        * "isspace()"

        * "istitle()"

        * "istitle()"

        * "isupper()"

        * "isupper()"

        * "lower()"

        * "lower()"

        * "splitlines()"

        * "splitlines()"

        * "swapcase()"

        * "swapcase()"

        * "title()"

        * "title()"

        * "upper()"

        * "upper()"

        * "zfill()"

        * "zfill()"

      * "printf"-style Bytes Formatting

      * Memory Views

        * "memoryview"

          * "__eq__()"

          * "tobytes()"

          * "hex()"

          * "tolist()"

          * "toreadonly()"

          * "release()"

          * "cast()"

          * "obj"

          * "nbytes"

          * "readonly"

          * "format"

          * "itemsize"

          * "ndim"

          * "shape"

          * "strides"

          * "suboffsets"

          * "c_contiguous"

          * "f_contiguous"

          * "contiguous"

    * Set Types --- "set", "frozenset"

      * "set"

      * "frozenset"

        * "isdisjoint()"

        * "issubset()"

        * "issuperset()"

        * "union()"

        * "intersection()"

        * "difference()"

        * "symmetric_difference()"

        * "copy()"

        * "update()"

        * "intersection_update()"

        * "difference_update()"

        * "symmetric_difference_update()"

        * "add()"

        * "remove()"

        * "discard()"

        * "pop()"

        * "clear()"

    * Mapping Types --- "dict"

      * "dict"

        * "clear()"

        * "copy()"

        * "fromkeys()"

        * "get()"

        * "items()"

        * "keys()"

        * "pop()"

        * "popitem()"

        * "setdefault()"

        * "update()"

        * "values()"

      * Dictionary view objects

    * Context Manager Types

      * "__enter__()"

      * "__exit__()"

    * Type Annotation Types --- *Generic Alias*, *Union*

      * Generic Alias Type

        * Standard Generic Classes

        * Special Attributes of "GenericAlias" objects

          * "__origin__"

          * "__args__"

          * "__parameters__"

          * "__unpacked__"

      * Union Type

    * Other Built-in Types

      * Modules

      * Classes and Class Instances

      * Functions

      * Methods

      * Code Objects

      * Type Objects

      * The Null Object

      * The Ellipsis Object

      * The NotImplemented Object

      * Internal Objects

    * Special Attributes

      * "__name__"

      * "__qualname__"

      * "__module__"

      * "__doc__"

      * "__type_params__"

    * Integer string conversion length limitation

      * Affected APIs

      * Configuring the limit

      * Recommended configuration

  * Built-in Exceptions

    * Exception context

      * "__context__"

      * "__cause__"

      * "__suppress_context__"

    * Inheriting from built-in exceptions

    * Base classes

      * "BaseException"

        * "args"

        * "with_traceback()"

        * "__traceback__"

        * "add_note()"

        * "__notes__"

      * "Exception"

      * "ArithmeticError"

      * "BufferError"

      * "LookupError"

    * Concrete exceptions

      * "AssertionError"

      * "AttributeError"

      * "EOFError"

      * "FloatingPointError"

      * "GeneratorExit"

      * "ImportError"

        * "name"

        * "path"

      * "ModuleNotFoundError"

      * "IndexError"

      * "KeyError"

      * "KeyboardInterrupt"

      * "MemoryError"

      * "NameError"

      * "NotImplementedError"

      * "OSError"

        * "errno"

        * "winerror"

        * "strerror"

        * "filename"

        * "filename2"

      * "OverflowError"

      * "RecursionError"

      * "ReferenceError"

      * "RuntimeError"

      * "StopIteration"

        * "value"

      * "StopAsyncIteration"

      * "SyntaxError"

        * "filename"

        * "lineno"

        * "offset"

        * "text"

        * "end_lineno"

        * "end_offset"

      * "IndentationError"

      * "TabError"

      * "SystemError"

      * "SystemExit"

        * "code"

      * "TypeError"

      * "UnboundLocalError"

      * "UnicodeError"

        * "encoding"

        * "reason"

        * "object"

        * "start"

        * "end"

      * "UnicodeEncodeError"

      * "UnicodeDecodeError"

      * "UnicodeTranslateError"

      * "ValueError"

      * "ZeroDivisionError"

      * "EnvironmentError"

      * "IOError"

      * "WindowsError"

      * OS exceptions

        * "BlockingIOError"

          * "characters_written"

        * "ChildProcessError"

        * "ConnectionError"

        * "BrokenPipeError"

        * "ConnectionAbortedError"

        * "ConnectionRefusedError"

        * "ConnectionResetError"

        * "FileExistsError"

        * "FileNotFoundError"

        * "InterruptedError"

        * "IsADirectoryError"

        * "NotADirectoryError"

        * "PermissionError"

        * "ProcessLookupError"

        * "TimeoutError"

    * Warnings

      * "Warning"

      * "UserWarning"

      * "DeprecationWarning"

      * "PendingDeprecationWarning"

      * "SyntaxWarning"

      * "RuntimeWarning"

      * "FutureWarning"

      * "ImportWarning"

      * "UnicodeWarning"

      * "EncodingWarning"

      * "BytesWarning"

      * "ResourceWarning"

    * Exception groups

      * "ExceptionGroup"

      * "BaseExceptionGroup"

        * "message"

        * "exceptions"

        * "subgroup()"

        * "split()"

        * "derive()"

    * Exception hierarchy

  * Text Processing Services

    * "string" --- Common string operations

      * String constants

        * "ascii_letters"

        * "ascii_lowercase"

        * "ascii_uppercase"

        * "digits"

        * "hexdigits"

        * "octdigits"

        * "punctuation"

        * "printable"

        * "whitespace"

      * Custom String Formatting

        * "Formatter"

          * "format()"

          * "vformat()"

          * "parse()"

          * "get_field()"

          * "get_value()"

          * "check_unused_args()"

          * "format_field()"

          * "convert_field()"

      * Format String Syntax

        * Format Specification Mini-Language

        * Format examples

      * Template strings

        * "Template"

          * "substitute()"

          * "safe_substitute()"

          * "is_valid()"

          * "get_identifiers()"

          * "template"

      * Helper functions

        * "capwords()"

    * "re" --- Regular expression operations

      * Regular Expression Syntax

      * Module Contents

        * Flags

          * "RegexFlag"

          * "A"

          * "ASCII"

          * "DEBUG"

          * "I"

          * "IGNORECASE"

          * "L"

          * "LOCALE"

          * "M"

          * "MULTILINE"

          * "NOFLAG"

          * "S"

          * "DOTALL"

          * "U"

          * "UNICODE"

          * "X"

          * "VERBOSE"

        * Functions

          * "compile()"

          * "search()"

          * "match()"

          * "fullmatch()"

          * "split()"

          * "findall()"

          * "finditer()"

          * "sub()"

          * "subn()"

          * "escape()"

          * "purge()"

        * Exceptions

          * "error"

            * "msg"

            * "pattern"

            * "pos"

            * "lineno"

            * "colno"

      * Regular Expression Objects

        * "Pattern"

        * "search()"

        * "match()"

        * "fullmatch()"

        * "split()"

        * "findall()"

        * "finditer()"

        * "sub()"

        * "subn()"

        * "flags"

        * "groups"

        * "groupindex"

        * "pattern"

      * Match Objects

        * "Match"

        * "expand()"

        * "group()"

        * "__getitem__()"

        * "groups()"

        * "groupdict()"

        * "start()"

        * "end()"

        * "span()"

        * "pos"

        * "endpos"

        * "lastindex"

        * "lastgroup"

        * "re"

        * "string"

      * 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

      * "Differ"

      * "HtmlDiff"

        * "__init__()"

        * "make_file()"

        * "make_table()"

      * "context_diff()"

      * "get_close_matches()"

      * "ndiff()"

      * "restore()"

      * "unified_diff()"

      * "diff_bytes()"

      * "IS_LINE_JUNK()"

      * "IS_CHARACTER_JUNK()"

      * SequenceMatcher Objects

        * "SequenceMatcher"

          * "set_seqs()"

          * "set_seq1()"

          * "set_seq2()"

          * "find_longest_match()"

          * "get_matching_blocks()"

          * "get_opcodes()"

          * "get_grouped_opcodes()"

          * "ratio()"

          * "quick_ratio()"

          * "real_quick_ratio()"

      * SequenceMatcher Examples

      * Differ Objects

        * "compare()"

      * Differ Example

      * A command-line interface to difflib

      * ndiff example

    * "textwrap" --- Text wrapping and filling

      * "wrap()"

      * "fill()"

      * "shorten()"

      * "dedent()"

      * "indent()"

      * "TextWrapper"

        * "width"

        * "expand_tabs"

        * "tabsize"

        * "replace_whitespace"

        * "drop_whitespace"

        * "initial_indent"

        * "subsequent_indent"

        * "fix_sentence_endings"

        * "break_long_words"

        * "break_on_hyphens"

        * "max_lines"

        * "placeholder"

        * "wrap()"

        * "fill()"

    * "unicodedata" --- Unicode Database

      * "lookup()"

      * "name()"

      * "decimal()"

      * "digit()"

      * "numeric()"

      * "category()"

      * "bidirectional()"

      * "combining()"

      * "east_asian_width()"

      * "mirrored()"

      * "decomposition()"

      * "normalize()"

      * "is_normalized()"

      * "unidata_version"

      * "ucd_3_2_0"

    * "stringprep" --- Internet String Preparation

      * "in_table_a1()"

      * "in_table_b1()"

      * "map_table_b2()"

      * "map_table_b3()"

      * "in_table_c11()"

      * "in_table_c12()"

      * "in_table_c11_c12()"

      * "in_table_c21()"

      * "in_table_c22()"

      * "in_table_c21_c22()"

      * "in_table_c3()"

      * "in_table_c4()"

      * "in_table_c5()"

      * "in_table_c6()"

      * "in_table_c7()"

      * "in_table_c8()"

      * "in_table_c9()"

      * "in_table_d1()"

      * "in_table_d2()"

    * "readline" --- GNU readline interface

      * Init file

        * "parse_and_bind()"

        * "read_init_file()"

      * Line buffer

        * "get_line_buffer()"

        * "insert_text()"

        * "redisplay()"

      * History file

        * "read_history_file()"

        * "write_history_file()"

        * "append_history_file()"

        * "get_history_length()"

        * "set_history_length()"

      * History list

        * "clear_history()"

        * "get_current_history_length()"

        * "get_history_item()"

        * "remove_history_item()"

        * "replace_history_item()"

        * "add_history()"

        * "set_auto_history()"

      * Startup hooks

        * "set_startup_hook()"

        * "set_pre_input_hook()"

      * Completion

        * "set_completer()"

        * "get_completer()"

        * "get_completion_type()"

        * "get_begidx()"

        * "get_endidx()"

        * "set_completer_delims()"

        * "get_completer_delims()"

        * "set_completion_display_matches_hook()"

      * Example

    * "rlcompleter" --- Completion function for GNU readline

      * "Completer"

        * "complete()"

  * Binary Data Services

    * "struct" --- Interpret bytes as packed binary data

      * Functions and Exceptions

        * "error"

        * "pack()"

        * "pack_into()"

        * "unpack()"

        * "unpack_from()"

        * "iter_unpack()"

        * "calcsize()"

      * Format Strings

        * Byte Order, Size, and Alignment

        * Format Characters

        * Examples

      * Applications

        * Native Formats

        * Standard Formats

      * Classes

        * "Struct"

          * "pack()"

          * "pack_into()"

          * "unpack()"

          * "unpack_from()"

          * "iter_unpack()"

          * "format"

          * "size"

    * "codecs" --- Codec registry and base classes

      * "encode()"

      * "decode()"

      * "lookup()"

      * "CodecInfo"

        * "name"

        * "encode"

        * "decode"

        * "incrementalencoder"

        * "incrementaldecoder"

        * "streamwriter"

        * "streamreader"

      * "getencoder()"

      * "getdecoder()"

      * "getincrementalencoder()"

      * "getincrementaldecoder()"

      * "getreader()"

      * "getwriter()"

      * "register()"

      * "unregister()"

      * "open()"

      * "EncodedFile()"

      * "iterencode()"

      * "iterdecode()"

      * "BOM"

      * "BOM_BE"

      * "BOM_LE"

      * "BOM_UTF8"

      * "BOM_UTF16"

      * "BOM_UTF16_BE"

      * "BOM_UTF16_LE"

      * "BOM_UTF32"

      * "BOM_UTF32_BE"

      * "BOM_UTF32_LE"

      * Codec Base Classes

        * Error Handlers

          * "register_error()"

          * "lookup_error()"

          * "strict_errors()"

          * "ignore_errors()"

          * "replace_errors()"

          * "backslashreplace_errors()"

          * "xmlcharrefreplace_errors()"

          * "namereplace_errors()"

        * Stateless Encoding and Decoding

          * "Codec"

            * "encode()"

            * "decode()"

        * Incremental Encoding and Decoding

          * IncrementalEncoder Objects

            * "IncrementalEncoder"

              * "encode()"

              * "reset()"

              * "getstate()"

              * "setstate()"

          * IncrementalDecoder Objects

            * "IncrementalDecoder"

              * "decode()"

              * "reset()"

              * "getstate()"

              * "setstate()"

        * Stream Encoding and Decoding

          * StreamWriter Objects

            * "StreamWriter"

              * "write()"

              * "writelines()"

              * "reset()"

          * StreamReader Objects

            * "StreamReader"

              * "read()"

              * "readline()"

              * "readlines()"

              * "reset()"

          * StreamReaderWriter Objects

            * "StreamReaderWriter"

          * StreamRecoder Objects

            * "StreamRecoder"

      * Encodings and Unicode

      * Standard Encodings

      * Python Specific Encodings

        * Text Encodings

        * Binary Transforms

        * Text Transforms

      * "encodings.idna" --- Internationalized Domain Names in
        Applications

        * "nameprep()"

        * "ToASCII()"

        * "ToUnicode()"

      * "encodings.mbcs" --- Windows ANSI codepage

      * "encodings.utf_8_sig" --- UTF-8 codec with BOM signature

  * Data Types

    * "datetime" --- Basic date and time types

      * Aware and Naive Objects

      * Constants

        * "MINYEAR"

        * "MAXYEAR"

        * "UTC"

      * Available Types

        * Common Properties

        * Determining if an Object is Aware or Naive

      * "timedelta" Objects

        * "timedelta"

        * "min"

        * "max"

        * "resolution"

        * "days"

        * "seconds"

        * "microseconds"

        * "total_seconds()"

        * Examples of usage: "timedelta"

      * "date" Objects

        * "date"

        * "today()"

        * "fromtimestamp()"

        * "fromordinal()"

        * "fromisoformat()"

        * "fromisocalendar()"

        * "min"

        * "max"

        * "resolution"

        * "year"

        * "month"

        * "day"

        * "replace()"

        * "timetuple()"

        * "toordinal()"

        * "weekday()"

        * "isoweekday()"

        * "isocalendar()"

        * "isoformat()"

        * "__str__()"

        * "ctime()"

        * "strftime()"

        * "__format__()"

        * Examples of Usage: "date"

      * "datetime" Objects

        * "datetime"

        * "today()"

        * "now()"

        * "utcnow()"

        * "fromtimestamp()"

        * "utcfromtimestamp()"

        * "fromordinal()"

        * "combine()"

        * "fromisoformat()"

        * "fromisocalendar()"

        * "strptime()"

        * "min"

        * "max"

        * "resolution"

        * "year"

        * "month"

        * "day"

        * "hour"

        * "minute"

        * "second"

        * "microsecond"

        * "tzinfo"

        * "fold"

        * "date()"

        * "time()"

        * "timetz()"

        * "replace()"

        * "astimezone()"

        * "utcoffset()"

        * "dst()"

        * "tzname()"

        * "timetuple()"

        * "utctimetuple()"

        * "toordinal()"

        * "timestamp()"

        * "weekday()"

        * "isoweekday()"

        * "isocalendar()"

        * "isoformat()"

        * "__str__()"

        * "ctime()"

        * "strftime()"

        * "__format__()"

        * Examples of Usage: "datetime"

      * "time" Objects

        * "time"

        * "min"

        * "max"

        * "resolution"

        * "hour"

        * "minute"

        * "second"

        * "microsecond"

        * "tzinfo"

        * "fold"

        * "fromisoformat()"

        * "replace()"

        * "isoformat()"

        * "__str__()"

        * "strftime()"

        * "__format__()"

        * "utcoffset()"

        * "dst()"

        * "tzname()"

        * Examples of Usage: "time"

      * "tzinfo" Objects

        * "tzinfo"

        * "utcoffset()"

        * "dst()"

        * "tzname()"

        * "fromutc()"

      * "timezone" Objects

        * "timezone"

        * "utcoffset()"

        * "tzname()"

        * "dst()"

        * "fromutc()"

        * "utc"

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

        * "strftime()" and "strptime()" Format Codes

        * Technical Detail

    * "zoneinfo" --- IANA time zone support

      * Using "ZoneInfo"

      * Data sources

        * Configuring the data sources

          * Compile-time configuration

          * Environment configuration

          * Runtime configuration

      * The "ZoneInfo" class

        * "ZoneInfo"

        * "from_file()"

        * "no_cache()"

        * "clear_cache()"

        * "key"

        * String representations

        * Pickle serialization

      * Functions

        * "available_timezones()"

        * "reset_tzpath()"

      * Globals

        * "TZPATH"

      * Exceptions and warnings

        * "ZoneInfoNotFoundError"

        * "InvalidTZPathWarning"

    * "calendar" --- General calendar-related functions

      * "Calendar"

        * "iterweekdays()"

        * "itermonthdates()"

        * "itermonthdays()"

        * "itermonthdays2()"

        * "itermonthdays3()"

        * "itermonthdays4()"

        * "monthdatescalendar()"

        * "monthdays2calendar()"

        * "monthdayscalendar()"

        * "yeardatescalendar()"

        * "yeardays2calendar()"

        * "yeardayscalendar()"

      * "TextCalendar"

        * "formatmonth()"

        * "prmonth()"

        * "formatyear()"

        * "pryear()"

      * "HTMLCalendar"

        * "formatmonth()"

        * "formatyear()"

        * "formatyearpage()"

        * "formatmonthname()"

        * "cssclasses"

        * "cssclass_noday"

        * "cssclasses_weekday_head"

        * "cssclass_month_head"

        * "cssclass_month"

        * "cssclass_year"

        * "cssclass_year_head"

      * "LocaleTextCalendar"

      * "LocaleHTMLCalendar"

      * "setfirstweekday()"

      * "firstweekday()"

      * "isleap()"

      * "leapdays()"

      * "weekday()"

      * "weekheader()"

      * "monthrange()"

      * "monthcalendar()"

      * "prmonth()"

      * "month()"

      * "prcal()"

      * "calendar()"

      * "timegm()"

      * "day_name"

      * "day_abbr"

      * "MONDAY"

      * "TUESDAY"

      * "WEDNESDAY"

      * "THURSDAY"

      * "FRIDAY"

      * "SATURDAY"

      * "SUNDAY"

      * "Day"

      * "month_name"

      * "month_abbr"

      * "JANUARY"

      * "FEBRUARY"

      * "MARCH"

      * "APRIL"

      * "MAY"

      * "JUNE"

      * "JULY"

      * "AUGUST"

      * "SEPTEMBER"

      * "OCTOBER"

      * "NOVEMBER"

      * "DECEMBER"

      * "Month"

      * "IllegalMonthError"

        * "month"

      * "IllegalWeekdayError"

        * "weekday"

      * Command-Line Usage

    * "collections" --- Container datatypes

      * "ChainMap" objects

        * "ChainMap"

          * "maps"

          * "new_child()"

          * "parents"

        * "ChainMap" Examples and Recipes

      * "Counter" objects

        * "Counter"

          * "elements()"

          * "most_common()"

          * "subtract()"

          * "total()"

          * "fromkeys()"

          * "update()"

      * "deque" objects

        * "deque"

          * "append()"

          * "appendleft()"

          * "clear()"

          * "copy()"

          * "count()"

          * "extend()"

          * "extendleft()"

          * "index()"

          * "insert()"

          * "pop()"

          * "popleft()"

          * "remove()"

          * "reverse()"

          * "rotate()"

          * "maxlen"

        * "deque" Recipes

      * "defaultdict" objects

        * "defaultdict"

          * "__missing__()"

          * "default_factory"

        * "defaultdict" Examples

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

        * "namedtuple()"

        * "_make()"

        * "_asdict()"

        * "_replace()"

        * "_fields"

        * "_field_defaults"

      * "OrderedDict" objects

        * "OrderedDict"

          * "popitem()"

          * "move_to_end()"

        * "OrderedDict" Examples and Recipes

      * "UserDict" objects

        * "UserDict"

          * "data"

      * "UserList" objects

        * "UserList"

          * "data"

      * "UserString" objects

        * "UserString"

          * "data"

    * "collections.abc" --- Abstract Base Classes for Containers

      * Collections Abstract Base Classes

      * Collections Abstract Base Classes -- Detailed Descriptions

        * "Container"

        * "Hashable"

        * "Sized"

        * "Callable"

        * "Iterable"

        * "Collection"

        * "Iterator"

        * "Reversible"

        * "Generator"

        * "Sequence"

        * "MutableSequence"

        * "ByteString"

        * "Set"

        * "MutableSet"

        * "Mapping"

        * "MutableMapping"

        * "MappingView"

        * "ItemsView"

        * "KeysView"

        * "ValuesView"

        * "Awaitable"

        * "Coroutine"

        * "AsyncIterable"

        * "AsyncIterator"

        * "AsyncGenerator"

        * "Buffer"

      * Examples and Recipes

    * "heapq" --- Heap queue algorithm

      * "heappush()"

      * "heappop()"

      * "heappushpop()"

      * "heapify()"

      * "heapreplace()"

      * "merge()"

      * "nlargest()"

      * "nsmallest()"

      * Basic Examples

      * Priority Queue Implementation Notes

      * Theory

    * "bisect" --- Array bisection algorithm

      * "bisect_left()"

      * "bisect_right()"

      * "bisect()"

      * "insort_left()"

      * "insort_right()"

      * "insort()"

      * Performance Notes

      * Searching Sorted Lists

      * Examples

    * "array" --- Efficient arrays of numeric values

      * "typecodes"

      * "array"

        * "typecode"

        * "itemsize"

        * "append()"

        * "buffer_info()"

        * "byteswap()"

        * "count()"

        * "extend()"

        * "frombytes()"

        * "fromfile()"

        * "fromlist()"

        * "fromunicode()"

        * "index()"

        * "insert()"

        * "pop()"

        * "remove()"

        * "reverse()"

        * "tobytes()"

        * "tofile()"

        * "tolist()"

        * "tounicode()"

    * "weakref" --- Weak references

      * "ref"

        * "__callback__"

      * "proxy()"

      * "getweakrefcount()"

      * "getweakrefs()"

      * "WeakKeyDictionary"

      * "keyrefs()"

      * "WeakValueDictionary"

      * "valuerefs()"

      * "WeakSet"

      * "WeakMethod"

      * "finalize"

        * "__call__()"

        * "detach()"

        * "peek()"

        * "alive"

        * "atexit"

      * "ReferenceType"

      * "ProxyType"

      * "CallableProxyType"

      * "ProxyTypes"

      * Weak Reference Objects

      * Example

      * Finalizer Objects

      * Comparing finalizers with "__del__()" methods

    * "types" --- Dynamic type creation and names for built-in types

      * Dynamic Type Creation

        * "new_class()"

        * "prepare_class()"

        * "resolve_bases()"

        * "get_original_bases()"

      * Standard Interpreter Types

        * "NoneType"

        * "FunctionType"

        * "LambdaType"

        * "GeneratorType"

        * "CoroutineType"

        * "AsyncGeneratorType"

        * "CodeType"

        * "CellType"

        * "MethodType"

        * "BuiltinFunctionType"

        * "BuiltinMethodType"

        * "WrapperDescriptorType"

        * "MethodWrapperType"

        * "NotImplementedType"

        * "MethodDescriptorType"

        * "ClassMethodDescriptorType"

        * "ModuleType"

        * "EllipsisType"

        * "GenericAlias"

        * "UnionType"

        * "TracebackType"

        * "FrameType"

        * "GetSetDescriptorType"

        * "MemberDescriptorType"

        * "MappingProxyType"

          * "copy()"

          * "get()"

          * "items()"

          * "keys()"

          * "values()"

      * Additional Utility Classes and Functions

        * "SimpleNamespace"

        * "DynamicClassAttribute()"

      * Coroutine Utility Functions

        * "coroutine()"

    * "copy" --- Shallow and deep copy operations

      * "copy()"

      * "deepcopy()"

      * "Error"

    * "pprint" --- Data pretty printer

      * Functions

        * "pp()"

        * "pprint()"

        * "pformat()"

        * "isreadable()"

        * "isrecursive()"

        * "saferepr()"

      * PrettyPrinter Objects

        * "PrettyPrinter"

        * "pformat()"

        * "pprint()"

        * "isreadable()"

        * "isrecursive()"

        * "format()"

      * Example

    * "reprlib" --- Alternate "repr()" implementation

      * "Repr"

      * "aRepr"

      * "repr()"

      * "recursive_repr()"

      * Repr Objects

        * "fillvalue"

        * "maxlevel"

        * "maxdict"

        * "maxlist"

        * "maxtuple"

        * "maxset"

        * "maxfrozenset"

        * "maxdeque"

        * "maxarray"

        * "maxlong"

        * "maxstring"

        * "maxother"

        * "indent"

        * "repr()"

        * "repr1()"

      * Subclassing Repr Objects

    * "enum" --- Support for enumerations

      * Module Contents

      * Data Types

        * "EnumType"

          * "__call__()"

          * "__contains__()"

          * "__dir__()"

          * "__getitem__()"

          * "__iter__()"

          * "__len__()"

          * "__members__"

          * "__reversed__()"

        * "Enum"

          * "name"

          * "value"

          * "_name_"

          * "_value_"

          * "_order_"

          * "_ignore_"

          * "__dir__()"

          * "_generate_next_value_()"

          * "__init__()"

          * "__init_subclass__()"

          * "_missing_()"

          * "__new__()"

          * "__repr__()"

          * "__str__()"

          * "__format__()"

        * "IntEnum"

        * "StrEnum"

        * "Flag"

          * "__contains__()"

          * "__or__()"

          * "__and__()"

          * "__xor__()"

          * "_numeric_repr_()"

        * "IntFlag"

        * "ReprEnum"

        * "EnumCheck"

          * "UNIQUE"

          * "CONTINUOUS"

          * "NAMED_FLAGS"

        * "FlagBoundary"

          * "STRICT"

          * "CONFORM"

          * "EJECT"

          * "KEEP"

        * Supported "__dunder__" names

        * Supported "_sunder_" names

      * Utilities and Decorators

        * "auto"

        * "property()"

        * "unique()"

        * "verify()"

        * "member()"

        * "nonmember()"

        * "global_enum()"

        * "show_flag_values()"

      * Notes

    * "graphlib" --- Functionality to operate with graph-like
      structures

      * "TopologicalSorter"

        * "add()"

        * "prepare()"

        * "is_active()"

        * "done()"

        * "get_ready()"

        * "static_order()"

      * Exceptions

        * "CycleError"

  * Numeric and Mathematical Modules

    * "numbers" --- Numeric abstract base classes

      * "Number"

      * The numeric tower

        * "Complex"

          * "real"

          * "imag"

          * "conjugate()"

        * "Real"

        * "Rational"

          * "numerator"

          * "denominator"

        * "Integral"

      * Notes for type implementers

        * Adding More Numeric ABCs

        * Implementing the arithmetic operations

    * "math" --- Mathematical functions

      * Number-theoretic and representation functions

        * "ceil()"

        * "comb()"

        * "copysign()"

        * "fabs()"

        * "factorial()"

        * "floor()"

        * "fmod()"

        * "frexp()"

        * "fsum()"

        * "gcd()"

        * "isclose()"

        * "isfinite()"

        * "isinf()"

        * "isnan()"

        * "isqrt()"

        * "lcm()"

        * "ldexp()"

        * "modf()"

        * "nextafter()"

        * "perm()"

        * "prod()"

        * "remainder()"

        * "sumprod()"

        * "trunc()"

        * "ulp()"

      * Power and logarithmic functions

        * "cbrt()"

        * "exp()"

        * "exp2()"

        * "expm1()"

        * "log()"

        * "log1p()"

        * "log2()"

        * "log10()"

        * "pow()"

        * "sqrt()"

      * Trigonometric functions

        * "acos()"

        * "asin()"

        * "atan()"

        * "atan2()"

        * "cos()"

        * "dist()"

        * "hypot()"

        * "sin()"

        * "tan()"

      * Angular conversion

        * "degrees()"

        * "radians()"

      * Hyperbolic functions

        * "acosh()"

        * "asinh()"

        * "atanh()"

        * "cosh()"

        * "sinh()"

        * "tanh()"

      * Special functions

        * "erf()"

        * "erfc()"

        * "gamma()"

        * "lgamma()"

      * Constants

        * "pi"

        * "e"

        * "tau"

        * "inf"

        * "nan"

    * "cmath" --- Mathematical functions for complex numbers

      * Conversions to and from polar coordinates

        * "phase()"

        * "polar()"

        * "rect()"

      * Power and logarithmic functions

        * "exp()"

        * "log()"

        * "log10()"

        * "sqrt()"

      * Trigonometric functions

        * "acos()"

        * "asin()"

        * "atan()"

        * "cos()"

        * "sin()"

        * "tan()"

      * Hyperbolic functions

        * "acosh()"

        * "asinh()"

        * "atanh()"

        * "cosh()"

        * "sinh()"

        * "tanh()"

      * Classification functions

        * "isfinite()"

        * "isinf()"

        * "isnan()"

        * "isclose()"

      * Constants

        * "pi"

        * "e"

        * "tau"

        * "inf"

        * "infj"

        * "nan"

        * "nanj"

    * "decimal" --- Decimal fixed-point and floating-point arithmetic

      * Quick-start Tutorial

      * Decimal objects

        * "Decimal"

          * "adjusted()"

          * "as_integer_ratio()"

          * "as_tuple()"

          * "canonical()"

          * "compare()"

          * "compare_signal()"

          * "compare_total()"

          * "compare_total_mag()"

          * "conjugate()"

          * "copy_abs()"

          * "copy_negate()"

          * "copy_sign()"

          * "exp()"

          * "from_float()"

          * "fma()"

          * "is_canonical()"

          * "is_finite()"

          * "is_infinite()"

          * "is_nan()"

          * "is_normal()"

          * "is_qnan()"

          * "is_signed()"

          * "is_snan()"

          * "is_subnormal()"

          * "is_zero()"

          * "ln()"

          * "log10()"

          * "logb()"

          * "logical_and()"

          * "logical_invert()"

          * "logical_or()"

          * "logical_xor()"

          * "max()"

          * "max_mag()"

          * "min()"

          * "min_mag()"

          * "next_minus()"

          * "next_plus()"

          * "next_toward()"

          * "normalize()"

          * "number_class()"

          * "quantize()"

          * "radix()"

          * "remainder_near()"

          * "rotate()"

          * "same_quantum()"

          * "scaleb()"

          * "shift()"

          * "sqrt()"

          * "to_eng_string()"

          * "to_integral()"

          * "to_integral_exact()"

          * "to_integral_value()"

        * Logical operands

      * Context objects

        * "getcontext()"

        * "setcontext()"

        * "localcontext()"

        * "BasicContext"

        * "ExtendedContext"

        * "DefaultContext"

        * "Context"

          * "clear_flags()"

          * "clear_traps()"

          * "copy()"

          * "copy_decimal()"

          * "create_decimal()"

          * "create_decimal_from_float()"

          * "Etiny()"

          * "Etop()"

          * "abs()"

          * "add()"

          * "canonical()"

          * "compare()"

          * "compare_signal()"

          * "compare_total()"

          * "compare_total_mag()"

          * "copy_abs()"

          * "copy_negate()"

          * "copy_sign()"

          * "divide()"

          * "divide_int()"

          * "divmod()"

          * "exp()"

          * "fma()"

          * "is_canonical()"

          * "is_finite()"

          * "is_infinite()"

          * "is_nan()"

          * "is_normal()"

          * "is_qnan()"

          * "is_signed()"

          * "is_snan()"

          * "is_subnormal()"

          * "is_zero()"

          * "ln()"

          * "log10()"

          * "logb()"

          * "logical_and()"

          * "logical_invert()"

          * "logical_or()"

          * "logical_xor()"

          * "max()"

          * "max_mag()"

          * "min()"

          * "min_mag()"

          * "minus()"

          * "multiply()"

          * "next_minus()"

          * "next_plus()"

          * "next_toward()"

          * "normalize()"

          * "number_class()"

          * "plus()"

          * "power()"

          * "quantize()"

          * "radix()"

          * "remainder()"

          * "remainder_near()"

          * "rotate()"

          * "same_quantum()"

          * "scaleb()"

          * "shift()"

          * "sqrt()"

          * "subtract()"

          * "to_eng_string()"

          * "to_integral_exact()"

          * "to_sci_string()"

      * Constants

        * "MAX_PREC"

        * "MAX_EMAX"

        * "MIN_EMIN"

        * "MIN_ETINY"

        * "HAVE_THREADS"

        * "HAVE_CONTEXTVAR"

      * Rounding modes

        * "ROUND_CEILING"

        * "ROUND_DOWN"

        * "ROUND_FLOOR"

        * "ROUND_HALF_DOWN"

        * "ROUND_HALF_EVEN"

        * "ROUND_HALF_UP"

        * "ROUND_UP"

        * "ROUND_05UP"

      * Signals

        * "Clamped"

        * "DecimalException"

        * "DivisionByZero"

        * "Inexact"

        * "InvalidOperation"

        * "Overflow"

        * "Rounded"

        * "Subnormal"

        * "Underflow"

        * "FloatOperation"

      * Floating-Point Notes

        * Mitigating round-off error with increased precision

        * Special values

      * Working with threads

      * Recipes

      * Decimal FAQ

    * "fractions" --- Rational numbers

      * "Fraction"

        * "numerator"

        * "denominator"

        * "as_integer_ratio()"

        * "is_integer()"

        * "from_float()"

        * "from_decimal()"

        * "limit_denominator()"

        * "__floor__()"

        * "__ceil__()"

        * "__round__()"

        * "__format__()"

    * "random" --- Generate pseudo-random numbers

      * Bookkeeping functions

        * "seed()"

        * "getstate()"

        * "setstate()"

      * Functions for bytes

        * "randbytes()"

      * Functions for integers

        * "randrange()"

        * "randint()"

        * "getrandbits()"

      * Functions for sequences

        * "choice()"

        * "choices()"

        * "shuffle()"

        * "sample()"

      * Discrete distributions

        * "binomialvariate()"

      * Real-valued distributions

        * "random()"

        * "uniform()"

        * "triangular()"

        * "betavariate()"

        * "expovariate()"

        * "gammavariate()"

        * "gauss()"

        * "lognormvariate()"

        * "normalvariate()"

        * "vonmisesvariate()"

        * "paretovariate()"

        * "weibullvariate()"

      * Alternative Generator

        * "Random"

          * "seed()"

          * "getstate()"

          * "setstate()"

          * "random()"

          * "getrandbits()"

        * "SystemRandom"

      * Notes on Reproducibility

      * Examples

      * Recipes

    * "statistics" --- Mathematical statistics functions

      * Averages and measures of central location

      * Measures of spread

      * Statistics for relations between two inputs

      * Function details

        * "mean()"

        * "fmean()"

        * "geometric_mean()"

        * "harmonic_mean()"

        * "median()"

        * "median_low()"

        * "median_high()"

        * "median_grouped()"

        * "mode()"

        * "multimode()"

        * "pstdev()"

        * "pvariance()"

        * "stdev()"

        * "variance()"

        * "quantiles()"

        * "covariance()"

        * "correlation()"

        * "linear_regression()"

      * Exceptions

        * "StatisticsError"

      * "NormalDist" objects

        * "NormalDist"

          * "mean"

          * "median"

          * "mode"

          * "stdev"

          * "variance"

          * "from_samples()"

          * "samples()"

          * "pdf()"

          * "cdf()"

          * "inv_cdf()"

          * "overlap()"

          * "quantiles()"

          * "zscore()"

      * Examples and Recipes

        * Classic probability problems

        * Monte Carlo inputs for simulations

        * Approximating binomial distributions

        * Naive bayesian classifier

        * Kernel density estimation

  * Functional Programming Modules

    * "itertools" --- Functions creating iterators for efficient
      looping

      * Itertool Functions

        * "accumulate()"

        * "batched()"

        * "chain()"

        * "from_iterable()"

        * "combinations()"

        * "combinations_with_replacement()"

        * "compress()"

        * "count()"

        * "cycle()"

        * "dropwhile()"

        * "filterfalse()"

        * "groupby()"

        * "islice()"

        * "pairwise()"

        * "permutations()"

        * "product()"

        * "repeat()"

        * "starmap()"

        * "takewhile()"

        * "tee()"

        * "zip_longest()"

      * Itertools Recipes

    * "functools" --- Higher-order functions and operations on
      callable objects

      * "cache()"

      * "cached_property()"

      * "cmp_to_key()"

      * "lru_cache()"

      * "total_ordering()"

      * "partial()"

      * "partialmethod"

      * "reduce()"

      * "singledispatch()"

      * "singledispatchmethod"

      * "update_wrapper()"

      * "wraps()"

      * "partial" Objects

        * "func"

        * "args"

        * "keywords"

    * "operator" --- Standard operators as functions

      * "lt()"

      * "le()"

      * "eq()"

      * "ne()"

      * "ge()"

      * "gt()"

      * "__lt__()"

      * "__le__()"

      * "__eq__()"

      * "__ne__()"

      * "__ge__()"

      * "__gt__()"

      * "not_()"

      * "__not__()"

      * "truth()"

      * "is_()"

      * "is_not()"

      * "abs()"

      * "__abs__()"

      * "add()"

      * "__add__()"

      * "and_()"

      * "__and__()"

      * "floordiv()"

      * "__floordiv__()"

      * "index()"

      * "__index__()"

      * "inv()"

      * "invert()"

      * "__inv__()"

      * "__invert__()"

      * "lshift()"

      * "__lshift__()"

      * "mod()"

      * "__mod__()"

      * "mul()"

      * "__mul__()"

      * "matmul()"

      * "__matmul__()"

      * "neg()"

      * "__neg__()"

      * "or_()"

      * "__or__()"

      * "pos()"

      * "__pos__()"

      * "pow()"

      * "__pow__()"

      * "rshift()"

      * "__rshift__()"

      * "sub()"

      * "__sub__()"

      * "truediv()"

      * "__truediv__()"

      * "xor()"

      * "__xor__()"

      * "concat()"

      * "__concat__()"

      * "contains()"

      * "__contains__()"

      * "countOf()"

      * "delitem()"

      * "__delitem__()"

      * "getitem()"

      * "__getitem__()"

      * "indexOf()"

      * "setitem()"

      * "__setitem__()"

      * "length_hint()"

      * "call()"

      * "__call__()"

      * "attrgetter()"

      * "itemgetter()"

      * "methodcaller()"

      * Mapping Operators to Functions

      * In-place Operators

        * "iadd()"

        * "__iadd__()"

        * "iand()"

        * "__iand__()"

        * "iconcat()"

        * "__iconcat__()"

        * "ifloordiv()"

        * "__ifloordiv__()"

        * "ilshift()"

        * "__ilshift__()"

        * "imod()"

        * "__imod__()"

        * "imul()"

        * "__imul__()"

        * "imatmul()"

        * "__imatmul__()"

        * "ior()"

        * "__ior__()"

        * "ipow()"

        * "__ipow__()"

        * "irshift()"

        * "__irshift__()"

        * "isub()"

        * "__isub__()"

        * "itruediv()"

        * "__itruediv__()"

        * "ixor()"

        * "__ixor__()"

  * File and Directory Access

    * "pathlib" --- Object-oriented filesystem paths

      * Basic use

      * Pure paths

        * "PurePath"

        * "PurePosixPath"

        * "PureWindowsPath"

        * General properties

        * Operators

        * Accessing individual parts

          * "parts"

        * Methods and properties

          * "drive"

          * "root"

          * "anchor"

          * "parents"

          * "parent"

          * "name"

          * "suffix"

          * "suffixes"

          * "stem"

          * "as_posix()"

          * "as_uri()"

          * "is_absolute()"

          * "is_relative_to()"

          * "is_reserved()"

          * "joinpath()"

          * "match()"

          * "relative_to()"

          * "with_name()"

          * "with_stem()"

          * "with_suffix()"

          * "with_segments()"

      * Concrete paths

        * "Path"

        * "PosixPath"

        * "WindowsPath"

        * Expanding and resolving paths

          * "home()"

          * "expanduser()"

          * "cwd()"

          * "absolute()"

          * "resolve()"

          * "readlink()"

        * Querying file type and status

          * "stat()"

          * "lstat()"

          * "exists()"

          * "is_file()"

          * "is_dir()"

          * "is_symlink()"

          * "is_junction()"

          * "is_mount()"

          * "is_socket()"

          * "is_fifo()"

          * "is_block_device()"

          * "is_char_device()"

          * "samefile()"

        * Reading and writing files

          * "open()"

          * "read_text()"

          * "read_bytes()"

          * "write_text()"

          * "write_bytes()"

        * Reading directories

          * "iterdir()"

          * "glob()"

          * "rglob()"

          * "walk()"

        * Creating files and directories

          * "touch()"

          * "mkdir()"

          * "symlink_to()"

          * "hardlink_to()"

        * Renaming and deleting

          * "rename()"

          * "replace()"

          * "unlink()"

          * "rmdir()"

        * Permissions and ownership

          * "owner()"

          * "group()"

          * "chmod()"

          * "lchmod()"

      * Correspondence to tools in the "os" module

    * "os.path" --- Common pathname manipulations

      * "abspath()"

      * "basename()"

      * "commonpath()"

      * "commonprefix()"

      * "dirname()"

      * "exists()"

      * "lexists()"

      * "expanduser()"

      * "expandvars()"

      * "getatime()"

      * "getmtime()"

      * "getctime()"

      * "getsize()"

      * "isabs()"

      * "isfile()"

      * "isdir()"

      * "isjunction()"

      * "islink()"

      * "ismount()"

      * "isdevdrive()"

      * "join()"

      * "normcase()"

      * "normpath()"

      * "realpath()"

      * "relpath()"

      * "samefile()"

      * "sameopenfile()"

      * "samestat()"

      * "split()"

      * "splitdrive()"

      * "splitroot()"

      * "splitext()"

      * "supports_unicode_filenames"

    * "fileinput" --- Iterate over lines from multiple input streams

      * "input()"

      * "filename()"

      * "fileno()"

      * "lineno()"

      * "filelineno()"

      * "isfirstline()"

      * "isstdin()"

      * "nextfile()"

      * "close()"

      * "FileInput"

      * "hook_compressed()"

      * "hook_encoded()"

    * "stat" --- Interpreting "stat()" results

      * "S_ISDIR()"

      * "S_ISCHR()"

      * "S_ISBLK()"

      * "S_ISREG()"

      * "S_ISFIFO()"

      * "S_ISLNK()"

      * "S_ISSOCK()"

      * "S_ISDOOR()"

      * "S_ISPORT()"

      * "S_ISWHT()"

      * "S_IMODE()"

      * "S_IFMT()"

      * "filemode()"

      * "ST_MODE"

      * "ST_INO"

      * "ST_DEV"

      * "ST_NLINK"

      * "ST_UID"

      * "ST_GID"

      * "ST_SIZE"

      * "ST_ATIME"

      * "ST_MTIME"

      * "ST_CTIME"

      * "S_IFSOCK"

      * "S_IFLNK"

      * "S_IFREG"

      * "S_IFBLK"

      * "S_IFDIR"

      * "S_IFCHR"

      * "S_IFIFO"

      * "S_IFDOOR"

      * "S_IFPORT"

      * "S_IFWHT"

      * "S_ISUID"

      * "S_ISGID"

      * "S_ISVTX"

      * "S_IRWXU"

      * "S_IRUSR"

      * "S_IWUSR"

      * "S_IXUSR"

      * "S_IRWXG"

      * "S_IRGRP"

      * "S_IWGRP"

      * "S_IXGRP"

      * "S_IRWXO"

      * "S_IROTH"

      * "S_IWOTH"

      * "S_IXOTH"

      * "S_ENFMT"

      * "S_IREAD"

      * "S_IWRITE"

      * "S_IEXEC"

      * "UF_NODUMP"

      * "UF_IMMUTABLE"

      * "UF_APPEND"

      * "UF_OPAQUE"

      * "UF_NOUNLINK"

      * "UF_COMPRESSED"

      * "UF_HIDDEN"

      * "SF_ARCHIVED"

      * "SF_IMMUTABLE"

      * "SF_APPEND"

      * "SF_NOUNLINK"

      * "SF_SNAPSHOT"

      * "FILE_ATTRIBUTE_ARCHIVE"

      * "FILE_ATTRIBUTE_COMPRESSED"

      * "FILE_ATTRIBUTE_DEVICE"

      * "FILE_ATTRIBUTE_DIRECTORY"

      * "FILE_ATTRIBUTE_ENCRYPTED"

      * "FILE_ATTRIBUTE_HIDDEN"

      * "FILE_ATTRIBUTE_INTEGRITY_STREAM"

      * "FILE_ATTRIBUTE_NORMAL"

      * "FILE_ATTRIBUTE_NOT_CONTENT_INDEXED"

      * "FILE_ATTRIBUTE_NO_SCRUB_DATA"

      * "FILE_ATTRIBUTE_OFFLINE"

      * "FILE_ATTRIBUTE_READONLY"

      * "FILE_ATTRIBUTE_REPARSE_POINT"

      * "FILE_ATTRIBUTE_SPARSE_FILE"

      * "FILE_ATTRIBUTE_SYSTEM"

      * "FILE_ATTRIBUTE_TEMPORARY"

      * "FILE_ATTRIBUTE_VIRTUAL"

      * "IO_REPARSE_TAG_SYMLINK"

      * "IO_REPARSE_TAG_MOUNT_POINT"

      * "IO_REPARSE_TAG_APPEXECLINK"

    * "filecmp" --- File and Directory Comparisons

      * "cmp()"

      * "cmpfiles()"

      * "clear_cache()"

      * The "dircmp" class

        * "dircmp"

          * "report()"

          * "report_partial_closure()"

          * "report_full_closure()"

          * "left"

          * "right"

          * "left_list"

          * "right_list"

          * "common"

          * "left_only"

          * "right_only"

          * "common_dirs"

          * "common_files"

          * "common_funny"

          * "same_files"

          * "diff_files"

          * "funny_files"

          * "subdirs"

        * "DEFAULT_IGNORES"

    * "tempfile" --- Generate temporary files and directories

      * "TemporaryFile()"

      * "NamedTemporaryFile()"

      * "SpooledTemporaryFile"

        * "rollover()"

      * "TemporaryDirectory"

        * "name"

        * "cleanup()"

      * "mkstemp()"

      * "mkdtemp()"

      * "gettempdir()"

      * "gettempdirb()"

      * "gettempprefix()"

      * "gettempprefixb()"

      * "tempdir"

      * Examples

      * Deprecated functions and variables

        * "mktemp()"

    * "glob" --- Unix style pathname pattern expansion

      * "glob()"

      * "iglob()"

      * "escape()"

    * "fnmatch" --- Unix filename pattern matching

      * "fnmatch()"

      * "fnmatchcase()"

      * "filter()"

      * "translate()"

    * "linecache" --- Random access to text lines

      * "getline()"

      * "clearcache()"

      * "checkcache()"

      * "lazycache()"

    * "shutil" --- High-level file operations

      * Directory and files operations

        * "copyfileobj()"

        * "copyfile()"

        * "SameFileError"

        * "copymode()"

        * "copystat()"

        * "copy()"

        * "copy2()"

        * "ignore_patterns()"

        * "copytree()"

        * "rmtree()"

          * "avoids_symlink_attacks"

        * "move()"

        * "disk_usage()"

        * "chown()"

        * "which()"

        * "Error"

        * Platform-dependent efficient copy operations

        * copytree example

        * rmtree example

      * Archiving operations

        * "make_archive()"

        * "get_archive_formats()"

        * "register_archive_format()"

        * "unregister_archive_format()"

        * "unpack_archive()"

        * "register_unpack_format()"

        * "unregister_unpack_format()"

        * "get_unpack_formats()"

        * Archiving example

        * Archiving example with *base_dir*

      * Querying the size of the output terminal

        * "get_terminal_size()"

  * Data Persistence

    * "pickle" --- Python object serialization

      * Relationship to other Python modules

        * Comparison with "marshal"

        * Comparison with "json"

      * Data stream format

      * Module Interface

        * "HIGHEST_PROTOCOL"

        * "DEFAULT_PROTOCOL"

        * "dump()"

        * "dumps()"

        * "load()"

        * "loads()"

        * "PickleError"

        * "PicklingError"

        * "UnpicklingError"

        * "Pickler"

          * "dump()"

          * "persistent_id()"

          * "dispatch_table"

          * "reducer_override()"

          * "fast"

        * "Unpickler"

          * "load()"

          * "persistent_load()"

          * "find_class()"

        * "PickleBuffer"

          * "raw()"

          * "release()"

      * What can be pickled and unpickled?

      * Pickling Class Instances

        * "__getnewargs_ex__()"

        * "__getnewargs__()"

        * "__getstate__()"

        * "__setstate__()"

        * "__reduce__()"

        * "__reduce_ex__()"

        * Persistence of External Objects

        * Dispatch Tables

        * Handling Stateful Objects

      * Custom Reduction for Types, Functions, and Other Objects

      * Out-of-band Buffers

        * Provider API

        * Consumer API

        * Example

      * Restricting Globals

      * Performance

      * Examples

    * "copyreg" --- Register "pickle" support functions

      * "constructor()"

      * "pickle()"

      * Example

    * "shelve" --- Python object persistence

      * "open()"

      * "sync()"

      * "close()"

      * Restrictions

        * "Shelf"

        * "BsdDbShelf"

        * "DbfilenameShelf"

      * Example

    * "marshal" --- Internal Python object serialization

      * "dump()"

      * "load()"

      * "dumps()"

      * "loads()"

      * "version"

    * "dbm" --- Interfaces to Unix "databases"

      * "error"

      * "whichdb()"

      * "open()"

      * "dbm.gnu" --- GNU database manager

        * "error"

        * "open()"

          * "open_flags"

          * "firstkey()"

          * "nextkey()"

          * "reorganize()"

          * "sync()"

          * "close()"

      * "dbm.ndbm" --- New Database Manager

        * "error"

        * "library"

        * "open()"

          * "close()"

      * "dbm.dumb" --- Portable DBM implementation

        * "error"

        * "open()"

          * "sync()"

          * "close()"

    * "sqlite3" --- DB-API 2.0 interface for SQLite databases

      * Tutorial

      * Reference

        * Module functions

          * "connect()"

          * "complete_statement()"

          * "enable_callback_tracebacks()"

          * "register_adapter()"

          * "register_converter()"

        * Module constants

          * "LEGACY_TRANSACTION_CONTROL"

          * "PARSE_COLNAMES"

          * "PARSE_DECLTYPES"

          * "SQLITE_OK"

          * "SQLITE_DENY"

          * "SQLITE_IGNORE"

          * "apilevel"

          * "paramstyle"

          * "sqlite_version"

          * "sqlite_version_info"

          * "threadsafety"

          * "version"

          * "version_info"

          * "SQLITE_DBCONFIG_DEFENSIVE"

          * "SQLITE_DBCONFIG_DQS_DDL"

          * "SQLITE_DBCONFIG_DQS_DML"

          * "SQLITE_DBCONFIG_ENABLE_FKEY"

          * "SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER"

          * "SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION"

          * "SQLITE_DBCONFIG_ENABLE_QPSG"

          * "SQLITE_DBCONFIG_ENABLE_TRIGGER"

          * "SQLITE_DBCONFIG_ENABLE_VIEW"

          * "SQLITE_DBCONFIG_LEGACY_ALTER_TABLE"

          * "SQLITE_DBCONFIG_LEGACY_FILE_FORMAT"

          * "SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE"

          * "SQLITE_DBCONFIG_RESET_DATABASE"

          * "SQLITE_DBCONFIG_TRIGGER_EQP"

          * "SQLITE_DBCONFIG_TRUSTED_SCHEMA"

          * "SQLITE_DBCONFIG_WRITABLE_SCHEMA"

        * Connection objects

          * "Connection"

            * "cursor()"

            * "blobopen()"

            * "commit()"

            * "rollback()"

            * "close()"

            * "execute()"

            * "executemany()"

            * "executescript()"

            * "create_function()"

            * "create_aggregate()"

            * "create_window_function()"

            * "create_collation()"

            * "interrupt()"

            * "set_authorizer()"

            * "set_progress_handler()"

            * "set_trace_callback()"

            * "enable_load_extension()"

            * "load_extension()"

            * "iterdump()"

            * "backup()"

            * "getlimit()"

            * "setlimit()"

            * "getconfig()"

            * "setconfig()"

            * "serialize()"

            * "deserialize()"

            * "autocommit"

            * "in_transaction"

            * "isolation_level"

            * "row_factory"

            * "text_factory"

            * "total_changes"

        * Cursor objects

          * "Cursor"

            * "execute()"

            * "executemany()"

            * "executescript()"

            * "fetchone()"

            * "fetchmany()"

            * "fetchall()"

            * "close()"

            * "setinputsizes()"

            * "setoutputsize()"

            * "arraysize"

            * "connection"

            * "description"

            * "lastrowid"

            * "rowcount"

            * "row_factory"

        * Row objects

          * "Row"

            * "keys()"

        * Blob objects

          * "Blob"

            * "close()"

            * "read()"

            * "write()"

            * "tell()"

            * "seek()"

        * PrepareProtocol objects

          * "PrepareProtocol"

        * Exceptions

          * "Warning"

          * "Error"

            * "sqlite_errorcode"

            * "sqlite_errorname"

          * "InterfaceError"

          * "DatabaseError"

          * "DataError"

          * "OperationalError"

          * "IntegrityError"

          * "InternalError"

          * "ProgrammingError"

          * "NotSupportedError"

        * SQLite and Python types

        * Default adapters and converters (deprecated)

        * Command-line interface

      * How-to guides

        * How to use placeholders to bind values in SQL queries

        * How to adapt custom Python types to SQLite values

          * How to write adaptable objects

          * How to register adapter callables

        * How to convert SQLite values to custom Python types

        * Adapter and converter recipes

        * How to use connection shortcut methods

        * How to use the connection context manager

        * How to work with SQLite URIs

        * How to create and use row factories

        * How to handle non-UTF-8 text encodings

      * Explanation

        * Transaction control

          * Transaction control via the "autocommit" attribute

          * Transaction control via the "isolation_level" attribute

  * Data Compression and Archiving

    * "zlib" --- Compression compatible with **gzip**

      * "error"

      * "adler32()"

      * "compress()"

      * "compressobj()"

      * "crc32()"

      * "decompress()"

      * "decompressobj()"

      * "compress()"

      * "flush()"

      * "copy()"

      * "unused_data"

      * "unconsumed_tail"

      * "eof"

      * "decompress()"

      * "flush()"

      * "copy()"

      * "ZLIB_VERSION"

      * "ZLIB_RUNTIME_VERSION"

    * "gzip" --- Support for **gzip** files

      * "open()"

      * "BadGzipFile"

      * "GzipFile"

        * "peek()"

        * "mtime"

        * "name"

      * "compress()"

      * "decompress()"

      * Examples of usage

      * Command Line Interface

        * Command line options

    * "bz2" --- Support for **bzip2** compression

      * (De)compression of files

        * "open()"

        * "BZ2File"

          * "peek()"

          * "fileno()"

          * "readable()"

          * "seekable()"

          * "writable()"

          * "read1()"

          * "readinto()"

      * Incremental (de)compression

        * "BZ2Compressor"

          * "compress()"

          * "flush()"

        * "BZ2Decompressor"

          * "decompress()"

          * "eof"

          * "unused_data"

          * "needs_input"

      * One-shot (de)compression

        * "compress()"

        * "decompress()"

      * Examples of usage

    * "lzma" --- Compression using the LZMA algorithm

      * "LZMAError"

      * Reading and writing compressed files

        * "open()"

        * "LZMAFile"

          * "peek()"

      * Compressing and decompressing data in memory

        * "LZMACompressor"

          * "compress()"

          * "flush()"

        * "LZMADecompressor"

          * "decompress()"

          * "check"

          * "eof"

          * "unused_data"

          * "needs_input"

        * "compress()"

        * "decompress()"

      * Miscellaneous

        * "is_check_supported()"

      * Specifying custom filter chains

      * Examples

    * "zipfile" --- Work with ZIP archives

      * "BadZipFile"

      * "BadZipfile"

      * "LargeZipFile"

      * "ZipInfo"

      * "is_zipfile()"

      * "ZIP_STORED"

      * "ZIP_DEFLATED"

      * "ZIP_BZIP2"

      * "ZIP_LZMA"

      * ZipFile Objects

        * "ZipFile"

        * "close()"

        * "getinfo()"

        * "infolist()"

        * "namelist()"

        * "open()"

        * "extract()"

        * "extractall()"

        * "printdir()"

        * "setpassword()"

        * "read()"

        * "testzip()"

        * "write()"

        * "writestr()"

        * "mkdir()"

        * "filename"

        * "debug"

        * "comment"

      * Path Objects

        * "Path"

        * "name"

        * "open()"

        * "iterdir()"

        * "is_dir()"

        * "is_file()"

        * "exists()"

        * "suffix"

        * "stem"

        * "suffixes"

        * "read_text()"

        * "read_bytes()"

        * "joinpath()"

      * PyZipFile Objects

        * "PyZipFile"

          * "writepy()"

      * ZipInfo Objects

        * "from_file()"

        * "is_dir()"

        * "filename"

        * "date_time"

        * "compress_type"

        * "comment"

        * "extra"

        * "create_system"

        * "create_version"

        * "extract_version"

        * "reserved"

        * "flag_bits"

        * "volume"

        * "internal_attr"

        * "external_attr"

        * "header_offset"

        * "CRC"

        * "compress_size"

        * "file_size"

      * Command-Line Interface

        * Command-line options

      * Decompression pitfalls

        * From file itself

        * File System limitations

        * Resources limitations

        * Interruption

        * Default behaviors of extraction

    * "tarfile" --- Read and write tar archive files

      * "open()"

      * "is_tarfile()"

      * "TarError"

      * "ReadError"

      * "CompressionError"

      * "StreamError"

      * "ExtractError"

      * "HeaderError"

      * "FilterError"

        * "tarinfo"

      * "AbsolutePathError"

      * "OutsideDestinationError"

      * "SpecialFileError"

      * "AbsoluteLinkError"

      * "LinkOutsideDestinationError"

      * "ENCODING"

      * "REGTYPE"

      * "AREGTYPE"

      * "LNKTYPE"

      * "SYMTYPE"

      * "CHRTYPE"

      * "BLKTYPE"

      * "DIRTYPE"

      * "FIFOTYPE"

      * "CONTTYPE"

      * "GNUTYPE_LONGNAME"

      * "GNUTYPE_LONGLINK"

      * "GNUTYPE_SPARSE"

      * "USTAR_FORMAT"

      * "GNU_FORMAT"

      * "PAX_FORMAT"

      * "DEFAULT_FORMAT"

      * TarFile Objects

        * "TarFile"

        * "open()"

        * "getmember()"

        * "getmembers()"

        * "getnames()"

        * "list()"

        * "next()"

        * "extractall()"

        * "extract()"

        * "extractfile()"

        * "errorlevel"

        * "extraction_filter"

        * "add()"

        * "addfile()"

        * "gettarinfo()"

        * "close()"

        * "pax_headers"

      * TarInfo Objects

        * "TarInfo"

        * "frombuf()"

        * "fromtarfile()"

        * "tobuf()"

        * "name"

        * "size"

        * "mtime"

        * "mode"

        * "type"

        * "linkname"

        * "uid"

        * "gid"

        * "uname"

        * "gname"

        * "chksum"

        * "devmajor"

        * "devminor"

        * "offset"

        * "offset_data"

        * "sparse"

        * "pax_headers"

        * "replace()"

        * "isfile()"

        * "isreg()"

        * "isdir()"

        * "issym()"

        * "islnk()"

        * "ischr()"

        * "isblk()"

        * "isfifo()"

        * "isdev()"

      * Extraction filters

        * Default named filters

          * "fully_trusted_filter()"

          * "tar_filter()"

          * "data_filter()"

        * Filter errors

        * Hints for further verification

        * Supporting older Python versions

        * Stateful extraction filter example

      * Command-Line Interface

        * Command-line options

      * Examples

      * Supported tar formats

      * Unicode issues

  * File Formats

    * "csv" --- CSV File Reading and Writing

      * Module Contents

        * "reader()"

        * "writer()"

        * "register_dialect()"

        * "unregister_dialect()"

        * "get_dialect()"

        * "list_dialects()"

        * "field_size_limit()"

        * "DictReader"

        * "DictWriter"

        * "Dialect"

        * "excel"

        * "excel_tab"

        * "unix_dialect"

        * "Sniffer"

          * "sniff()"

          * "has_header()"

        * "QUOTE_ALL"

        * "QUOTE_MINIMAL"

        * "QUOTE_NONNUMERIC"

        * "QUOTE_NONE"

        * "QUOTE_NOTNULL"

        * "QUOTE_STRINGS"

        * "Error"

      * Dialects and Formatting Parameters

        * "delimiter"

        * "doublequote"

        * "escapechar"

        * "lineterminator"

        * "quotechar"

        * "quoting"

        * "skipinitialspace"

        * "strict"

      * Reader Objects

        * "__next__()"

        * "dialect"

        * "line_num"

        * "fieldnames"

      * Writer Objects

        * "writerow()"

        * "writerows()"

        * "dialect"

        * "writeheader()"

      * Examples

    * "configparser" --- Configuration file parser

      * Quick Start

      * Supported Datatypes

      * Fallback Values

      * Supported INI File Structure

      * Interpolation of values

        * "BasicInterpolation"

        * "ExtendedInterpolation"

      * Mapping Protocol Access

      * Customizing Parser Behaviour

        * "BOOLEAN_STATES"

        * "SECTCRE"

      * Legacy API Examples

      * ConfigParser Objects

        * "ConfigParser"

          * "defaults()"

          * "sections()"

          * "add_section()"

          * "has_section()"

          * "options()"

          * "has_option()"

          * "read()"

          * "read_file()"

          * "read_string()"

          * "read_dict()"

          * "get()"

          * "getint()"

          * "getfloat()"

          * "getboolean()"

          * "items()"

          * "set()"

          * "write()"

          * "remove_option()"

          * "remove_section()"

          * "optionxform()"

        * "MAX_INTERPOLATION_DEPTH"

      * RawConfigParser Objects

        * "RawConfigParser"

          * "add_section()"

          * "set()"

      * Exceptions

        * "Error"

        * "NoSectionError"

        * "DuplicateSectionError"

        * "DuplicateOptionError"

        * "NoOptionError"

        * "InterpolationError"

        * "InterpolationDepthError"

        * "InterpolationMissingOptionError"

        * "InterpolationSyntaxError"

        * "MissingSectionHeaderError"

        * "ParsingError"

    * "tomllib" --- Parse TOML files

      * "load()"

      * "loads()"

      * "TOMLDecodeError"

      * Examples

      * Conversion Table

    * "netrc" --- netrc file processing

      * "netrc"

      * "NetrcParseError"

        * "msg"

        * "filename"

        * "lineno"

      * netrc Objects

        * "authenticators()"

        * "__repr__()"

        * "hosts"

        * "macros"

    * "plistlib" --- Generate and parse Apple ".plist" files

      * "load()"

      * "loads()"

      * "dump()"

      * "dumps()"

      * "UID"

      * "FMT_XML"

      * "FMT_BINARY"

      * Examples

  * Cryptographic Services

    * "hashlib" --- Secure hashes and message digests

      * Hash algorithms

      * Usage

      * Constructors

        * "new()"

        * "md5()"

        * "sha1()"

        * "sha224()"

        * "sha256()"

        * "sha384()"

        * "sha512()"

        * "sha3_224()"

        * "sha3_256()"

        * "sha3_384()"

        * "sha3_512()"

      * Attributes

        * "algorithms_guaranteed"

        * "algorithms_available"

      * Hash Objects

        * "digest_size"

        * "block_size"

        * "name"

        * "update()"

        * "digest()"

        * "hexdigest()"

        * "copy()"

      * SHAKE variable length digests

        * "shake_128()"

        * "shake_256()"

        * "digest()"

        * "hexdigest()"

      * File hashing

        * "file_digest()"

      * Key derivation

        * "pbkdf2_hmac()"

        * "scrypt()"

      * BLAKE2

        * Creating hash objects

          * "blake2b()"

          * "blake2s()"

        * Constants

          * "SALT_SIZE"

          * "SALT_SIZE"

          * "PERSON_SIZE"

          * "PERSON_SIZE"

          * "MAX_KEY_SIZE"

          * "MAX_KEY_SIZE"

          * "MAX_DIGEST_SIZE"

          * "MAX_DIGEST_SIZE"

        * Examples

          * Simple hashing

          * Using different digest sizes

          * Keyed hashing

          * Randomized hashing

          * Personalization

          * Tree mode

        * Credits

    * "hmac" --- Keyed-Hashing for Message Authentication

      * "new()"

      * "digest()"

      * "update()"

      * "digest()"

      * "hexdigest()"

      * "copy()"

      * "digest_size"

      * "block_size"

      * "name"

      * "compare_digest()"

    * "secrets" --- Generate secure random numbers for managing
      secrets

      * Random numbers

        * "SystemRandom"

        * "choice()"

        * "randbelow()"

        * "randbits()"

      * Generating tokens

        * "token_bytes()"

        * "token_hex()"

        * "token_urlsafe()"

        * How many bytes should tokens use?

      * Other functions

        * "compare_digest()"

      * Recipes and best practices

  * Generic Operating System Services

    * "os" --- Miscellaneous operating system interfaces

      * "error"

      * "name"

      * File Names, Command Line Arguments, and Environment Variables

      * Python UTF-8 Mode

      * Process Parameters

        * "ctermid()"

        * "environ"

        * "environb"

        * "fsencode()"

        * "fsdecode()"

        * "fspath()"

        * "PathLike"

          * "__fspath__()"

        * "getenv()"

        * "getenvb()"

        * "get_exec_path()"

        * "getegid()"

        * "geteuid()"

        * "getgid()"

        * "getgrouplist()"

        * "getgroups()"

        * "getlogin()"

        * "getpgid()"

        * "getpgrp()"

        * "getpid()"

        * "getppid()"

        * "getpriority()"

        * "PRIO_PROCESS"

        * "PRIO_PGRP"

        * "PRIO_USER"

        * "PRIO_DARWIN_THREAD"

        * "PRIO_DARWIN_PROCESS"

        * "PRIO_DARWIN_BG"

        * "PRIO_DARWIN_NONUI"

        * "getresuid()"

        * "getresgid()"

        * "getuid()"

        * "initgroups()"

        * "putenv()"

        * "setegid()"

        * "seteuid()"

        * "setgid()"

        * "setgroups()"

        * "setns()"

        * "setpgrp()"

        * "setpgid()"

        * "setpriority()"

        * "setregid()"

        * "setresgid()"

        * "setresuid()"

        * "setreuid()"

        * "getsid()"

        * "setsid()"

        * "setuid()"

        * "strerror()"

        * "supports_bytes_environ"

        * "umask()"

        * "uname()"

        * "unsetenv()"

        * "unshare()"

        * "CLONE_FILES"

        * "CLONE_FS"

        * "CLONE_NEWCGROUP"

        * "CLONE_NEWIPC"

        * "CLONE_NEWNET"

        * "CLONE_NEWNS"

        * "CLONE_NEWPID"

        * "CLONE_NEWTIME"

        * "CLONE_NEWUSER"

        * "CLONE_NEWUTS"

        * "CLONE_SIGHAND"

        * "CLONE_SYSVSEM"

        * "CLONE_THREAD"

        * "CLONE_VM"

      * File Object Creation

        * "fdopen()"

      * File Descriptor Operations

        * "close()"

        * "closerange()"

        * "copy_file_range()"

        * "device_encoding()"

        * "dup()"

        * "dup2()"

        * "fchmod()"

        * "fchown()"

        * "fdatasync()"

        * "fpathconf()"

        * "fstat()"

        * "fstatvfs()"

        * "fsync()"

        * "ftruncate()"

        * "get_blocking()"

        * "isatty()"

        * "lockf()"

        * "F_LOCK"

        * "F_TLOCK"

        * "F_ULOCK"

        * "F_TEST"

        * "login_tty()"

        * "lseek()"

        * "SEEK_SET"

        * "SEEK_CUR"

        * "SEEK_END"

        * "SEEK_HOLE"

        * "SEEK_DATA"

        * "open()"

        * "O_RDONLY"

        * "O_WRONLY"

        * "O_RDWR"

        * "O_APPEND"

        * "O_CREAT"

        * "O_EXCL"

        * "O_TRUNC"

        * "O_DSYNC"

        * "O_RSYNC"

        * "O_SYNC"

        * "O_NDELAY"

        * "O_NONBLOCK"

        * "O_NOCTTY"

        * "O_CLOEXEC"

        * "O_BINARY"

        * "O_NOINHERIT"

        * "O_SHORT_LIVED"

        * "O_TEMPORARY"

        * "O_RANDOM"

        * "O_SEQUENTIAL"

        * "O_TEXT"

        * "O_EVTONLY"

        * "O_FSYNC"

        * "O_SYMLINK"

        * "O_NOFOLLOW_ANY"

        * "O_ASYNC"

        * "O_DIRECT"

        * "O_DIRECTORY"

        * "O_NOFOLLOW"

        * "O_NOATIME"

        * "O_PATH"

        * "O_TMPFILE"

        * "O_SHLOCK"

        * "O_EXLOCK"

        * "openpty()"

        * "pipe()"

        * "pipe2()"

        * "posix_fallocate()"

        * "posix_fadvise()"

        * "POSIX_FADV_NORMAL"

        * "POSIX_FADV_SEQUENTIAL"

        * "POSIX_FADV_RANDOM"

        * "POSIX_FADV_NOREUSE"

        * "POSIX_FADV_WILLNEED"

        * "POSIX_FADV_DONTNEED"

        * "pread()"

        * "preadv()"

        * "RWF_NOWAIT"

        * "RWF_HIPRI"

        * "pwrite()"

        * "pwritev()"

        * "RWF_DSYNC"

        * "RWF_SYNC"

        * "RWF_APPEND"

        * "read()"

        * "sendfile()"

        * "SF_NODISKIO"

        * "SF_MNOWAIT"

        * "SF_SYNC"

        * "SF_NOCACHE"

        * "set_blocking()"

        * "splice()"

        * "SPLICE_F_MOVE"

        * "SPLICE_F_NONBLOCK"

        * "SPLICE_F_MORE"

        * "readv()"

        * "tcgetpgrp()"

        * "tcsetpgrp()"

        * "ttyname()"

        * "write()"

        * "writev()"

        * Querying the size of a terminal

          * "get_terminal_size()"

          * "terminal_size"

            * "columns"

            * "lines"

        * Inheritance of File Descriptors

          * "get_inheritable()"

          * "set_inheritable()"

          * "get_handle_inheritable()"

          * "set_handle_inheritable()"

      * Files and Directories

        * "access()"

        * "F_OK"

        * "R_OK"

        * "W_OK"

        * "X_OK"

        * "chdir()"

        * "chflags()"

        * "chmod()"

        * "chown()"

        * "chroot()"

        * "fchdir()"

        * "getcwd()"

        * "getcwdb()"

        * "lchflags()"

        * "lchmod()"

        * "lchown()"

        * "link()"

        * "listdir()"

        * "listdrives()"

        * "listmounts()"

        * "listvolumes()"

        * "lstat()"

        * "mkdir()"

        * "makedirs()"

        * "mkfifo()"

        * "mknod()"

        * "major()"

        * "minor()"

        * "makedev()"

        * "pathconf()"

        * "pathconf_names"

        * "readlink()"

        * "remove()"

        * "removedirs()"

        * "rename()"

        * "renames()"

        * "replace()"

        * "rmdir()"

        * "scandir()"

          * "close()"

        * "DirEntry"

          * "name"

          * "path"

          * "inode()"

          * "is_dir()"

          * "is_file()"

          * "is_symlink()"

          * "is_junction()"

          * "stat()"

        * "stat()"

        * "stat_result"

          * "st_mode"

          * "st_ino"

          * "st_dev"

          * "st_nlink"

          * "st_uid"

          * "st_gid"

          * "st_size"

          * "st_atime"

          * "st_mtime"

          * "st_ctime"

          * "st_atime_ns"

          * "st_mtime_ns"

          * "st_ctime_ns"

          * "st_birthtime"

          * "st_birthtime_ns"

          * "st_blocks"

          * "st_blksize"

          * "st_rdev"

          * "st_flags"

          * "st_gen"

          * "st_fstype"

          * "st_rsize"

          * "st_creator"

          * "st_type"

          * "st_file_attributes"

          * "st_reparse_tag"

        * "statvfs()"

        * "supports_dir_fd"

        * "supports_effective_ids"

        * "supports_fd"

        * "supports_follow_symlinks"

        * "symlink()"

        * "sync()"

        * "truncate()"

        * "unlink()"

        * "utime()"

        * "walk()"

        * "fwalk()"

        * "memfd_create()"

        * "MFD_CLOEXEC"

        * "MFD_ALLOW_SEALING"

        * "MFD_HUGETLB"

        * "MFD_HUGE_SHIFT"

        * "MFD_HUGE_MASK"

        * "MFD_HUGE_64KB"

        * "MFD_HUGE_512KB"

        * "MFD_HUGE_1MB"

        * "MFD_HUGE_2MB"

        * "MFD_HUGE_8MB"

        * "MFD_HUGE_16MB"

        * "MFD_HUGE_32MB"

        * "MFD_HUGE_256MB"

        * "MFD_HUGE_512MB"

        * "MFD_HUGE_1GB"

        * "MFD_HUGE_2GB"

        * "MFD_HUGE_16GB"

        * "eventfd()"

        * "eventfd_read()"

        * "eventfd_write()"

        * "EFD_CLOEXEC"

        * "EFD_NONBLOCK"

        * "EFD_SEMAPHORE"

        * Linux extended attributes

          * "getxattr()"

          * "listxattr()"

          * "removexattr()"

          * "setxattr()"

          * "XATTR_SIZE_MAX"

          * "XATTR_CREATE"

          * "XATTR_REPLACE"

      * Process Management

        * "abort()"

        * "add_dll_directory()"

        * "execl()"

        * "execle()"

        * "execlp()"

        * "execlpe()"

        * "execv()"

        * "execve()"

        * "execvp()"

        * "execvpe()"

        * "_exit()"

        * "EX_OK"

        * "EX_USAGE"

        * "EX_DATAERR"

        * "EX_NOINPUT"

        * "EX_NOUSER"

        * "EX_NOHOST"

        * "EX_UNAVAILABLE"

        * "EX_SOFTWARE"

        * "EX_OSERR"

        * "EX_OSFILE"

        * "EX_CANTCREAT"

        * "EX_IOERR"

        * "EX_TEMPFAIL"

        * "EX_PROTOCOL"

        * "EX_NOPERM"

        * "EX_CONFIG"

        * "EX_NOTFOUND"

        * "fork()"

        * "forkpty()"

        * "kill()"

        * "killpg()"

        * "nice()"

        * "pidfd_open()"

          * "PIDFD_NONBLOCK"

        * "plock()"

        * "popen()"

        * "posix_spawn()"

          * "POSIX_SPAWN_OPEN"

          * "POSIX_SPAWN_CLOSE"

          * "POSIX_SPAWN_DUP2"

        * "posix_spawnp()"

        * "register_at_fork()"

        * "spawnl()"

        * "spawnle()"

        * "spawnlp()"

        * "spawnlpe()"

        * "spawnv()"

        * "spawnve()"

        * "spawnvp()"

        * "spawnvpe()"

        * "P_NOWAIT"

        * "P_NOWAITO"

        * "P_WAIT"

        * "P_DETACH"

        * "P_OVERLAY"

        * "startfile()"

        * "system()"

        * "times()"

        * "wait()"

        * "waitid()"

        * "waitpid()"

        * "wait3()"

        * "wait4()"

        * "P_PID"

        * "P_PGID"

        * "P_ALL"

        * "P_PIDFD"

        * "WCONTINUED"

        * "WEXITED"

        * "WSTOPPED"

        * "WUNTRACED"

        * "WNOHANG"

        * "WNOWAIT"

        * "CLD_EXITED"

        * "CLD_KILLED"

        * "CLD_DUMPED"

        * "CLD_TRAPPED"

        * "CLD_STOPPED"

        * "CLD_CONTINUED"

        * "waitstatus_to_exitcode()"

        * "WCOREDUMP()"

        * "WIFCONTINUED()"

        * "WIFSTOPPED()"

        * "WIFSIGNALED()"

        * "WIFEXITED()"

        * "WEXITSTATUS()"

        * "WSTOPSIG()"

        * "WTERMSIG()"

      * Interface to the scheduler

        * "SCHED_OTHER"

        * "SCHED_BATCH"

        * "SCHED_IDLE"

        * "SCHED_SPORADIC"

        * "SCHED_FIFO"

        * "SCHED_RR"

        * "SCHED_RESET_ON_FORK"

        * "sched_param"

          * "sched_priority"

        * "sched_get_priority_min()"

        * "sched_get_priority_max()"

        * "sched_setscheduler()"

        * "sched_getscheduler()"

        * "sched_setparam()"

        * "sched_getparam()"

        * "sched_rr_get_interval()"

        * "sched_yield()"

        * "sched_setaffinity()"

        * "sched_getaffinity()"

      * Miscellaneous System Information

        * "confstr()"

        * "confstr_names"

        * "cpu_count()"

        * "getloadavg()"

        * "sysconf()"

        * "sysconf_names"

        * "curdir"

        * "pardir"

        * "sep"

        * "altsep"

        * "extsep"

        * "pathsep"

        * "defpath"

        * "linesep"

        * "devnull"

        * "RTLD_LAZY"

        * "RTLD_NOW"

        * "RTLD_GLOBAL"

        * "RTLD_LOCAL"

        * "RTLD_NODELETE"

        * "RTLD_NOLOAD"

        * "RTLD_DEEPBIND"

      * Random numbers

        * "getrandom()"

        * "urandom()"

        * "GRND_NONBLOCK"

        * "GRND_RANDOM"

    * "io" --- Core tools for working with streams

      * Overview

        * Text I/O

        * Binary I/O

        * Raw I/O

      * Text Encoding

        * Opt-in EncodingWarning

      * High-level Module Interface

        * "DEFAULT_BUFFER_SIZE"

        * "open()"

        * "open_code()"

        * "text_encoding()"

        * "BlockingIOError"

        * "UnsupportedOperation"

      * Class hierarchy

        * I/O Base Classes

          * "IOBase"

            * "close()"

            * "closed"

            * "fileno()"

            * "flush()"

            * "isatty()"

            * "readable()"

            * "readline()"

            * "readlines()"

            * "seek()"

            * "seekable()"

            * "tell()"

            * "truncate()"

            * "writable()"

            * "writelines()"

            * "__del__()"

          * "RawIOBase"

            * "read()"

            * "readall()"

            * "readinto()"

            * "write()"

          * "BufferedIOBase"

            * "raw"

            * "detach()"

            * "read()"

            * "read1()"

            * "readinto()"

            * "readinto1()"

            * "write()"

        * Raw File I/O

          * "FileIO"

            * "mode"

            * "name"

        * Buffered Streams

          * "BytesIO"

            * "getbuffer()"

            * "getvalue()"

            * "read1()"

            * "readinto1()"

          * "BufferedReader"

            * "peek()"

            * "read()"

            * "read1()"

          * "BufferedWriter"

            * "flush()"

            * "write()"

          * "BufferedRandom"

          * "BufferedRWPair"

        * Text I/O

          * "TextIOBase"

            * "encoding"

            * "errors"

            * "newlines"

            * "buffer"

            * "detach()"

            * "read()"

            * "readline()"

            * "seek()"

            * "tell()"

            * "write()"

          * "TextIOWrapper"

            * "line_buffering"

            * "write_through"

            * "reconfigure()"

            * "seek()"

            * "tell()"

          * "StringIO"

            * "getvalue()"

          * "IncrementalNewlineDecoder"

      * Performance

        * Binary I/O

        * Text I/O

        * Multi-threading

        * Reentrancy

    * "time" --- Time access and conversions

      * Functions

        * "asctime()"

        * "pthread_getcpuclockid()"

        * "clock_getres()"

        * "clock_gettime()"

        * "clock_gettime_ns()"

        * "clock_settime()"

        * "clock_settime_ns()"

        * "ctime()"

        * "get_clock_info()"

        * "gmtime()"

        * "localtime()"

        * "mktime()"

        * "monotonic()"

        * "monotonic_ns()"

        * "perf_counter()"

        * "perf_counter_ns()"

        * "process_time()"

        * "process_time_ns()"

        * "sleep()"

        * "strftime()"

        * "strptime()"

        * "struct_time"

          * "tm_year"

          * "tm_mon"

          * "tm_mday"

          * "tm_hour"

          * "tm_min"

          * "tm_sec"

          * "tm_wday"

          * "tm_yday"

          * "tm_isdst"

          * "tm_zone"

          * "tm_gmtoff"

        * "time()"

        * "time_ns()"

        * "thread_time()"

        * "thread_time_ns()"

        * "tzset()"

      * Clock ID Constants

        * "CLOCK_BOOTTIME"

        * "CLOCK_HIGHRES"

        * "CLOCK_MONOTONIC"

        * "CLOCK_MONOTONIC_RAW"

        * "CLOCK_PROCESS_CPUTIME_ID"

        * "CLOCK_PROF"

        * "CLOCK_TAI"

        * "CLOCK_THREAD_CPUTIME_ID"

        * "CLOCK_UPTIME"

        * "CLOCK_UPTIME_RAW"

        * "CLOCK_REALTIME"

      * Timezone Constants

        * "altzone"

        * "daylight"

        * "timezone"

        * "tzname"

    * "argparse" --- Parser for command-line options, arguments and
      subcommands

      * ArgumentParser objects

        * "ArgumentParser"

        * prog

        * usage

        * description

        * epilog

        * parents

        * formatter_class

          * "RawDescriptionHelpFormatter"

          * "RawTextHelpFormatter"

          * "ArgumentDefaultsHelpFormatter"

          * "MetavarTypeHelpFormatter"

        * prefix_chars

        * fromfile_prefix_chars

        * argument_default

        * allow_abbrev

        * conflict_handler

        * add_help

        * exit_on_error

      * The add_argument() method

        * "add_argument()"

        * name or flags

        * action

          * "BooleanOptionalAction"

        * nargs

        * const

        * default

        * type

        * choices

        * required

        * help

        * metavar

        * dest

        * Action classes

          * "Action"

            * "__call__()"

            * "format_usage()"

      * The parse_args() method

        * "parse_args()"

        * Option value syntax

        * Invalid arguments

        * Arguments containing "-"

        * Argument abbreviations (prefix matching)

        * Beyond "sys.argv"

        * The Namespace object

          * "Namespace"

      * Other utilities

        * Sub-commands

          * "add_subparsers()"

        * FileType objects

          * "FileType"

        * Argument groups

          * "add_argument_group()"

        * Mutual exclusion

          * "add_mutually_exclusive_group()"

        * Parser defaults

          * "set_defaults()"

          * "get_default()"

        * Printing help

          * "print_usage()"

          * "print_help()"

          * "format_usage()"

          * "format_help()"

        * Partial parsing

          * "parse_known_args()"

        * Customizing file parsing

          * "convert_arg_line_to_args()"

        * Exiting methods

          * "exit()"

          * "error()"

        * Intermixed parsing

          * "parse_intermixed_args()"

          * "parse_known_intermixed_args()"

      * Exceptions

        * "ArgumentError"

        * "ArgumentTypeError"

        * Argparse Tutorial

          * Concepts

          * The basics

          * Introducing Positional arguments

          * Introducing Optional arguments

            * Short options

          * Combining Positional and Optional arguments

          * Getting a little more advanced

            * Specifying ambiguous arguments

            * Conflicting options

          * How to translate the argparse output

          * Custom type converters

          * Conclusion

        * Upgrading optparse code

    * "getopt" --- C-style parser for command line options

      * "getopt()"

      * "gnu_getopt()"

      * "GetoptError"

      * "error"

    * "logging" --- Logging facility for Python

      * Logger Objects

        * "Logger"

          * "name"

          * "level"

          * "parent"

          * "propagate"

          * "handlers"

          * "disabled"

          * "setLevel()"

          * "isEnabledFor()"

          * "getEffectiveLevel()"

          * "getChild()"

          * "getChildren()"

          * "debug()"

          * "info()"

          * "warning()"

          * "error()"

          * "critical()"

          * "log()"

          * "exception()"

          * "addFilter()"

          * "removeFilter()"

          * "filter()"

          * "addHandler()"

          * "removeHandler()"

          * "findCaller()"

          * "handle()"

          * "makeRecord()"

          * "hasHandlers()"

      * Logging Levels

        * "NOTSET"

        * "DEBUG"

        * "INFO"

        * "WARNING"

        * "ERROR"

        * "CRITICAL"

      * Handler Objects

        * "Handler"

          * "__init__()"

          * "createLock()"

          * "acquire()"

          * "release()"

          * "setLevel()"

          * "setFormatter()"

          * "addFilter()"

          * "removeFilter()"

          * "filter()"

          * "flush()"

          * "close()"

          * "handle()"

          * "handleError()"

          * "format()"

          * "emit()"

      * Formatter Objects

        * "Formatter"

          * "format()"

          * "formatTime()"

          * "formatException()"

          * "formatStack()"

        * "BufferingFormatter"

          * "formatHeader()"

          * "formatFooter()"

          * "format()"

      * Filter Objects

        * "Filter"

          * "filter()"

      * LogRecord Objects

        * "LogRecord"

          * "getMessage()"

      * LogRecord attributes

      * LoggerAdapter Objects

        * "LoggerAdapter"

          * "process()"

          * "manager"

          * "_log"

      * Thread Safety

      * Module-Level Functions

        * "getLogger()"

        * "getLoggerClass()"

        * "getLogRecordFactory()"

        * "debug()"

        * "info()"

        * "warning()"

        * "error()"

        * "critical()"

        * "exception()"

        * "log()"

        * "disable()"

        * "addLevelName()"

        * "getLevelNamesMapping()"

        * "getLevelName()"

        * "getHandlerByName()"

        * "getHandlerNames()"

        * "makeLogRecord()"

        * "basicConfig()"

        * "shutdown()"

        * "setLoggerClass()"

        * "setLogRecordFactory()"

      * Module-Level Attributes

        * "lastResort"

        * "raiseExceptions"

      * Integration with the warnings module

        * "captureWarnings()"

    * "logging.config" --- Logging configuration

      * Configuration functions

        * "dictConfig()"

        * "fileConfig()"

        * "listen()"

        * "stopListening()"

      * Security considerations

      * Configuration dictionary schema

        * Dictionary Schema Details

        * Incremental Configuration

        * Object connections

        * User-defined objects

        * Handler configuration order

        * Access to external objects

        * Access to internal objects

        * Import resolution and custom importers

        * Configuring QueueHandler and QueueListener

      * Configuration file format

    * "logging.handlers" --- Logging handlers

      * StreamHandler

        * "StreamHandler"

          * "emit()"

          * "flush()"

          * "setStream()"

          * "terminator"

      * FileHandler

        * "FileHandler"

          * "close()"

          * "emit()"

      * NullHandler

        * "NullHandler"

          * "emit()"

          * "handle()"

          * "createLock()"

      * WatchedFileHandler

        * "WatchedFileHandler"

          * "reopenIfNeeded()"

          * "emit()"

      * BaseRotatingHandler

        * "BaseRotatingHandler"

          * "namer"

          * "rotator"

          * "rotation_filename()"

          * "rotate()"

      * RotatingFileHandler

        * "RotatingFileHandler"

          * "doRollover()"

          * "emit()"

      * TimedRotatingFileHandler

        * "TimedRotatingFileHandler"

          * "doRollover()"

          * "emit()"

          * "getFilesToDelete()"

      * SocketHandler

        * "SocketHandler"

          * "close()"

          * "emit()"

          * "handleError()"

          * "makeSocket()"

          * "makePickle()"

          * "send()"

          * "createSocket()"

      * DatagramHandler

        * "DatagramHandler"

          * "emit()"

          * "makeSocket()"

          * "send()"

      * SysLogHandler

        * "SysLogHandler"

          * "close()"

          * "createSocket()"

          * "emit()"

          * "encodePriority()"

          * "mapPriority()"

      * NTEventLogHandler

        * "NTEventLogHandler"

          * "close()"

          * "emit()"

          * "getEventCategory()"

          * "getEventType()"

          * "getMessageID()"

      * SMTPHandler

        * "SMTPHandler"

          * "emit()"

          * "getSubject()"

      * MemoryHandler

        * "BufferingHandler"

          * "emit()"

          * "flush()"

          * "shouldFlush()"

        * "MemoryHandler"

          * "close()"

          * "flush()"

          * "setTarget()"

          * "shouldFlush()"

      * HTTPHandler

        * "HTTPHandler"

          * "mapLogRecord()"

          * "emit()"

      * QueueHandler

        * "QueueHandler"

          * "emit()"

          * "prepare()"

          * "enqueue()"

          * "listener"

      * QueueListener

        * "QueueListener"

          * "dequeue()"

          * "prepare()"

          * "handle()"

          * "start()"

          * "stop()"

          * "enqueue_sentinel()"

    * "getpass" --- Portable password input

      * "getpass()"

      * "GetPassWarning"

      * "getuser()"

    * "curses" --- Terminal handling for character-cell displays

      * Functions

        * "error"

        * "baudrate()"

        * "beep()"

        * "can_change_color()"

        * "cbreak()"

        * "color_content()"

        * "color_pair()"

        * "curs_set()"

        * "def_prog_mode()"

        * "def_shell_mode()"

        * "delay_output()"

        * "doupdate()"

        * "echo()"

        * "endwin()"

        * "erasechar()"

        * "filter()"

        * "flash()"

        * "flushinp()"

        * "getmouse()"

        * "getsyx()"

        * "getwin()"

        * "has_colors()"

        * "has_extended_color_support()"

        * "has_ic()"

        * "has_il()"

        * "has_key()"

        * "halfdelay()"

        * "init_color()"

        * "init_pair()"

        * "initscr()"

        * "is_term_resized()"

        * "isendwin()"

        * "keyname()"

        * "killchar()"

        * "longname()"

        * "meta()"

        * "mouseinterval()"

        * "mousemask()"

        * "napms()"

        * "newpad()"

        * "newwin()"

        * "nl()"

        * "nocbreak()"

        * "noecho()"

        * "nonl()"

        * "noqiflush()"

        * "noraw()"

        * "pair_content()"

        * "pair_number()"

        * "putp()"

        * "qiflush()"

        * "raw()"

        * "reset_prog_mode()"

        * "reset_shell_mode()"

        * "resetty()"

        * "resize_term()"

        * "resizeterm()"

        * "savetty()"

        * "get_escdelay()"

        * "set_escdelay()"

        * "get_tabsize()"

        * "set_tabsize()"

        * "setsyx()"

        * "setupterm()"

        * "start_color()"

        * "termattrs()"

        * "termname()"

        * "tigetflag()"

        * "tigetnum()"

        * "tigetstr()"

        * "tparm()"

        * "typeahead()"

        * "unctrl()"

        * "ungetch()"

        * "update_lines_cols()"

        * "unget_wch()"

        * "ungetmouse()"

        * "use_env()"

        * "use_default_colors()"

        * "wrapper()"

      * Window Objects

        * "addch()"

        * "addnstr()"

        * "addstr()"

        * "attroff()"

        * "attron()"

        * "attrset()"

        * "bkgd()"

        * "bkgdset()"

        * "border()"

        * "box()"

        * "chgat()"

        * "clear()"

        * "clearok()"

        * "clrtobot()"

        * "clrtoeol()"

        * "cursyncup()"

        * "delch()"

        * "deleteln()"

        * "derwin()"

        * "echochar()"

        * "enclose()"

        * "encoding"

        * "erase()"

        * "getbegyx()"

        * "getbkgd()"

        * "getch()"

        * "get_wch()"

        * "getkey()"

        * "getmaxyx()"

        * "getparyx()"

        * "getstr()"

        * "getyx()"

        * "hline()"

        * "idcok()"

        * "idlok()"

        * "immedok()"

        * "inch()"

        * "insch()"

        * "insdelln()"

        * "insertln()"

        * "insnstr()"

        * "insstr()"

        * "instr()"

        * "is_linetouched()"

        * "is_wintouched()"

        * "keypad()"

        * "leaveok()"

        * "move()"

        * "mvderwin()"

        * "mvwin()"

        * "nodelay()"

        * "notimeout()"

        * "noutrefresh()"

        * "overlay()"

        * "overwrite()"

        * "putwin()"

        * "redrawln()"

        * "redrawwin()"

        * "refresh()"

        * "resize()"

        * "scroll()"

        * "scrollok()"

        * "setscrreg()"

        * "standend()"

        * "standout()"

        * "subpad()"

        * "subwin()"

        * "syncdown()"

        * "syncok()"

        * "syncup()"

        * "timeout()"

        * "touchline()"

        * "touchwin()"

        * "untouchwin()"

        * "vline()"

      * Constants

        * "ERR"

        * "OK"

        * "version"

        * "__version__"

        * "ncurses_version"

        * "COLORS"

        * "COLOR_PAIRS"

        * "COLS"

        * "LINES"

        * "A_ALTCHARSET"

        * "A_BLINK"

        * "A_BOLD"

        * "A_DIM"

        * "A_INVIS"

        * "A_ITALIC"

        * "A_NORMAL"

        * "A_PROTECT"

        * "A_REVERSE"

        * "A_STANDOUT"

        * "A_UNDERLINE"

        * "A_HORIZONTAL"

        * "A_LEFT"

        * "A_LOW"

        * "A_RIGHT"

        * "A_TOP"

        * "A_VERTICAL"

        * "A_ATTRIBUTES"

        * "A_CHARTEXT"

        * "A_COLOR"

        * "KEY_MIN"

        * "KEY_BREAK"

        * "KEY_DOWN"

        * "KEY_UP"

        * "KEY_LEFT"

        * "KEY_RIGHT"

        * "KEY_HOME"

        * "KEY_BACKSPACE"

        * "KEY_F0"

        * "KEY_Fn"

        * "KEY_DL"

        * "KEY_IL"

        * "KEY_DC"

        * "KEY_IC"

        * "KEY_EIC"

        * "KEY_CLEAR"

        * "KEY_EOS"

        * "KEY_EOL"

        * "KEY_SF"

        * "KEY_SR"

        * "KEY_NPAGE"

        * "KEY_PPAGE"

        * "KEY_STAB"

        * "KEY_CTAB"

        * "KEY_CATAB"

        * "KEY_ENTER"

        * "KEY_SRESET"

        * "KEY_RESET"

        * "KEY_PRINT"

        * "KEY_LL"

        * "KEY_A1"

        * "KEY_A3"

        * "KEY_B2"

        * "KEY_C1"

        * "KEY_C3"

        * "KEY_BTAB"

        * "KEY_BEG"

        * "KEY_CANCEL"

        * "KEY_CLOSE"

        * "KEY_COMMAND"

        * "KEY_COPY"

        * "KEY_CREATE"

        * "KEY_END"

        * "KEY_EXIT"

        * "KEY_FIND"

        * "KEY_HELP"

        * "KEY_MARK"

        * "KEY_MESSAGE"

        * "KEY_MOVE"

        * "KEY_NEXT"

        * "KEY_OPEN"

        * "KEY_OPTIONS"

        * "KEY_PREVIOUS"

        * "KEY_REDO"

        * "KEY_REFERENCE"

        * "KEY_REFRESH"

        * "KEY_REPLACE"

        * "KEY_RESTART"

        * "KEY_RESUME"

        * "KEY_SAVE"

        * "KEY_SBEG"

        * "KEY_SCANCEL"

        * "KEY_SCOMMAND"

        * "KEY_SCOPY"

        * "KEY_SCREATE"

        * "KEY_SDC"

        * "KEY_SDL"

        * "KEY_SELECT"

        * "KEY_SEND"

        * "KEY_SEOL"

        * "KEY_SEXIT"

        * "KEY_SFIND"

        * "KEY_SHELP"

        * "KEY_SHOME"

        * "KEY_SIC"

        * "KEY_SLEFT"

        * "KEY_SMESSAGE"

        * "KEY_SMOVE"

        * "KEY_SNEXT"

        * "KEY_SOPTIONS"

        * "KEY_SPREVIOUS"

        * "KEY_SPRINT"

        * "KEY_SREDO"

        * "KEY_SREPLACE"

        * "KEY_SRIGHT"

        * "KEY_SRSUME"

        * "KEY_SSAVE"

        * "KEY_SSUSPEND"

        * "KEY_SUNDO"

        * "KEY_SUSPEND"

        * "KEY_UNDO"

        * "KEY_MOUSE"

        * "KEY_RESIZE"

        * "KEY_MAX"

        * "ACS_BBSS"

        * "ACS_BLOCK"

        * "ACS_BOARD"

        * "ACS_BSBS"

        * "ACS_BSSB"

        * "ACS_BSSS"

        * "ACS_BTEE"

        * "ACS_BULLET"

        * "ACS_CKBOARD"

        * "ACS_DARROW"

        * "ACS_DEGREE"

        * "ACS_DIAMOND"

        * "ACS_GEQUAL"

        * "ACS_HLINE"

        * "ACS_LANTERN"

        * "ACS_LARROW"

        * "ACS_LEQUAL"

        * "ACS_LLCORNER"

        * "ACS_LRCORNER"

        * "ACS_LTEE"

        * "ACS_NEQUAL"

        * "ACS_PI"

        * "ACS_PLMINUS"

        * "ACS_PLUS"

        * "ACS_RARROW"

        * "ACS_RTEE"

        * "ACS_S1"

        * "ACS_S3"

        * "ACS_S7"

        * "ACS_S9"

        * "ACS_SBBS"

        * "ACS_SBSB"

        * "ACS_SBSS"

        * "ACS_SSBB"

        * "ACS_SSBS"

        * "ACS_SSSB"

        * "ACS_SSSS"

        * "ACS_STERLING"

        * "ACS_TTEE"

        * "ACS_UARROW"

        * "ACS_ULCORNER"

        * "ACS_URCORNER"

        * "ACS_VLINE"

        * "BUTTONn_PRESSED"

        * "BUTTONn_RELEASED"

        * "BUTTONn_CLICKED"

        * "BUTTONn_DOUBLE_CLICKED"

        * "BUTTONn_TRIPLE_CLICKED"

        * "BUTTON_SHIFT"

        * "BUTTON_CTRL"

        * "BUTTON_ALT"

        * "COLOR_BLACK"

        * "COLOR_BLUE"

        * "COLOR_CYAN"

        * "COLOR_GREEN"

        * "COLOR_MAGENTA"

        * "COLOR_RED"

        * "COLOR_WHITE"

        * "COLOR_YELLOW"

    * "curses.textpad" --- Text input widget for curses programs

      * "rectangle()"

      * Textbox objects

        * "Textbox"

          * "edit()"

          * "do_command()"

          * "gather()"

          * "stripspaces"

    * "curses.ascii" --- Utilities for ASCII characters

      * "NUL"

      * "SOH"

      * "STX"

      * "ETX"

      * "EOT"

      * "ENQ"

      * "ACK"

      * "BEL"

      * "BS"

      * "TAB"

      * "HT"

      * "LF"

      * "NL"

      * "VT"

      * "FF"

      * "CR"

      * "SO"

      * "SI"

      * "DLE"

      * "DC1"

      * "DC2"

      * "DC3"

      * "DC4"

      * "NAK"

      * "SYN"

      * "ETB"

      * "CAN"

      * "EM"

      * "SUB"

      * "ESC"

      * "FS"

      * "GS"

      * "RS"

      * "US"

      * "SP"

      * "DEL"

      * "isalnum()"

      * "isalpha()"

      * "isascii()"

      * "isblank()"

      * "iscntrl()"

      * "isdigit()"

      * "isgraph()"

      * "islower()"

      * "isprint()"

      * "ispunct()"

      * "isspace()"

      * "isupper()"

      * "isxdigit()"

      * "isctrl()"

      * "ismeta()"

      * "ascii()"

      * "ctrl()"

      * "alt()"

      * "unctrl()"

      * "controlnames"

    * "curses.panel" --- A panel stack extension for curses

      * Functions

        * "bottom_panel()"

        * "new_panel()"

        * "top_panel()"

        * "update_panels()"

      * Panel Objects

        * "above()"

        * "below()"

        * "bottom()"

        * "hidden()"

        * "hide()"

        * "move()"

        * "replace()"

        * "set_userptr()"

        * "show()"

        * "top()"

        * "userptr()"

        * "window()"

    * "platform" ---  Access to underlying platform's identifying data

      * Cross Platform

        * "architecture()"

        * "machine()"

        * "node()"

        * "platform()"

        * "processor()"

        * "python_build()"

        * "python_compiler()"

        * "python_branch()"

        * "python_implementation()"

        * "python_revision()"

        * "python_version()"

        * "python_version_tuple()"

        * "release()"

        * "system()"

        * "system_alias()"

        * "version()"

        * "uname()"

      * Java Platform

        * "java_ver()"

      * Windows Platform

        * "win32_ver()"

        * "win32_edition()"

        * "win32_is_iot()"

      * macOS Platform

        * "mac_ver()"

      * Unix Platforms

        * "libc_ver()"

      * Linux Platforms

        * "freedesktop_os_release()"

    * "errno" --- Standard errno system symbols

      * "errorcode"

      * "EPERM"

      * "ENOENT"

      * "ESRCH"

      * "EINTR"

      * "EIO"

      * "ENXIO"

      * "E2BIG"

      * "ENOEXEC"

      * "EBADF"

      * "ECHILD"

      * "EAGAIN"

      * "ENOMEM"

      * "EACCES"

      * "EFAULT"

      * "ENOTBLK"

      * "EBUSY"

      * "EEXIST"

      * "EXDEV"

      * "ENODEV"

      * "ENOTDIR"

      * "EISDIR"

      * "EINVAL"

      * "ENFILE"

      * "EMFILE"

      * "ENOTTY"

      * "ETXTBSY"

      * "EFBIG"

      * "ENOSPC"

      * "ESPIPE"

      * "EROFS"

      * "EMLINK"

      * "EPIPE"

      * "EDOM"

      * "ERANGE"

      * "EDEADLK"

      * "ENAMETOOLONG"

      * "ENOLCK"

      * "ENOSYS"

      * "ENOTEMPTY"

      * "ELOOP"

      * "EWOULDBLOCK"

      * "ENOMSG"

      * "EIDRM"

      * "ECHRNG"

      * "EL2NSYNC"

      * "EL3HLT"

      * "EL3RST"

      * "ELNRNG"

      * "EUNATCH"

      * "ENOCSI"

      * "EL2HLT"

      * "EBADE"

      * "EBADR"

      * "EXFULL"

      * "ENOANO"

      * "EBADRQC"

      * "EBADSLT"

      * "EDEADLOCK"

      * "EBFONT"

      * "ENOSTR"

      * "ENODATA"

      * "ETIME"

      * "ENOSR"

      * "ENONET"

      * "ENOPKG"

      * "EREMOTE"

      * "ENOLINK"

      * "EADV"

      * "ESRMNT"

      * "ECOMM"

      * "EPROTO"

      * "EMULTIHOP"

      * "EDOTDOT"

      * "EBADMSG"

      * "EOVERFLOW"

      * "ENOTUNIQ"

      * "EBADFD"

      * "EREMCHG"

      * "ELIBACC"

      * "ELIBBAD"

      * "ELIBSCN"

      * "ELIBMAX"

      * "ELIBEXEC"

      * "EILSEQ"

      * "ERESTART"

      * "ESTRPIPE"

      * "EUSERS"

      * "ENOTSOCK"

      * "EDESTADDRREQ"

      * "EMSGSIZE"

      * "EPROTOTYPE"

      * "ENOPROTOOPT"

      * "EPROTONOSUPPORT"

      * "ESOCKTNOSUPPORT"

      * "EOPNOTSUPP"

      * "ENOTSUP"

      * "EPFNOSUPPORT"

      * "EAFNOSUPPORT"

      * "EADDRINUSE"

      * "EADDRNOTAVAIL"

      * "ENETDOWN"

      * "ENETUNREACH"

      * "ENETRESET"

      * "ECONNABORTED"

      * "ECONNRESET"

      * "ENOBUFS"

      * "EISCONN"

      * "ENOTCONN"

      * "ESHUTDOWN"

      * "ETOOMANYREFS"

      * "ETIMEDOUT"

      * "ECONNREFUSED"

      * "EHOSTDOWN"

      * "EHOSTUNREACH"

      * "EALREADY"

      * "EINPROGRESS"

      * "ESTALE"

      * "EUCLEAN"

      * "ENOTNAM"

      * "ENAVAIL"

      * "EISNAM"

      * "EREMOTEIO"

      * "EDQUOT"

      * "EQFULL"

      * "ENOTCAPABLE"

      * "ECANCELED"

      * "EOWNERDEAD"

      * "ENOTRECOVERABLE"

    * "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 variadic functions

        * 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

          * "CDLL"

          * "OleDLL"

          * "WinDLL"

          * "PyDLL"

          * "_handle"

          * "_name"

          * "LibraryLoader"

            * "LoadLibrary()"

        * Foreign functions

          * "_CFuncPtr"

            * "restype"

            * "argtypes"

            * "errcheck"

          * "ArgumentError"

        * Function prototypes

          * "CFUNCTYPE()"

          * "WINFUNCTYPE()"

          * "PYFUNCTYPE()"

        * Utility functions

          * "addressof()"

          * "alignment()"

          * "byref()"

          * "cast()"

          * "create_string_buffer()"

          * "create_unicode_buffer()"

          * "DllCanUnloadNow()"

          * "DllGetClassObject()"

          * "find_library()"

          * "find_msvcrt()"

          * "FormatError()"

          * "GetLastError()"

          * "get_errno()"

          * "get_last_error()"

          * "memmove()"

          * "memset()"

          * "POINTER()"

          * "pointer()"

          * "resize()"

          * "set_errno()"

          * "set_last_error()"

          * "sizeof()"

          * "string_at()"

          * "WinError()"

          * "wstring_at()"

        * Data types

          * "_CData"

            * "from_buffer()"

            * "from_buffer_copy()"

            * "from_address()"

            * "from_param()"

            * "in_dll()"

            * "_b_base_"

            * "_b_needsfree_"

            * "_objects"

        * Fundamental data types

          * "_SimpleCData"

            * "value"

          * "c_byte"

          * "c_char"

          * "c_char_p"

          * "c_double"

          * "c_longdouble"

          * "c_float"

          * "c_int"

          * "c_int8"

          * "c_int16"

          * "c_int32"

          * "c_int64"

          * "c_long"

          * "c_longlong"

          * "c_short"

          * "c_size_t"

          * "c_ssize_t"

          * "c_time_t"

          * "c_ubyte"

          * "c_uint"

          * "c_uint8"

          * "c_uint16"

          * "c_uint32"

          * "c_uint64"

          * "c_ulong"

          * "c_ulonglong"

          * "c_ushort"

          * "c_void_p"

          * "c_wchar"

          * "c_wchar_p"

          * "c_bool"

          * "HRESULT"

          * "py_object"

        * Structured data types

          * "Union"

          * "BigEndianUnion"

          * "LittleEndianUnion"

          * "BigEndianStructure"

          * "LittleEndianStructure"

          * "Structure"

            * "_fields_"

            * "_pack_"

            * "_anonymous_"

        * Arrays and pointers

          * "Array"

            * "_length_"

            * "_type_"

          * "_Pointer"

            * "_type_"

            * "contents"

  * Concurrent Execution

    * "threading" --- Thread-based parallelism

      * "active_count()"

      * "current_thread()"

      * "excepthook()"

      * "__excepthook__"

      * "get_ident()"

      * "get_native_id()"

      * "enumerate()"

      * "main_thread()"

      * "settrace()"

      * "settrace_all_threads()"

      * "gettrace()"

      * "setprofile()"

      * "setprofile_all_threads()"

      * "getprofile()"

      * "stack_size()"

      * "TIMEOUT_MAX"

      * Thread-Local Data

        * "local"

      * Thread Objects

        * "Thread"

          * "start()"

          * "run()"

          * "join()"

          * "name"

          * "getName()"

          * "setName()"

          * "ident"

          * "native_id"

          * "is_alive()"

          * "daemon"

          * "isDaemon()"

          * "setDaemon()"

      * Lock Objects

        * "Lock"

          * "acquire()"

          * "release()"

          * "locked()"

      * RLock Objects

        * "RLock"

          * "acquire()"

          * "release()"

      * Condition Objects

        * "Condition"

          * "acquire()"

          * "release()"

          * "wait()"

          * "wait_for()"

          * "notify()"

          * "notify_all()"

      * Semaphore Objects

        * "Semaphore"

          * "acquire()"

          * "release()"

        * "BoundedSemaphore"

        * "Semaphore" Example

      * Event Objects

        * "Event"

          * "is_set()"

          * "set()"

          * "clear()"

          * "wait()"

      * Timer Objects

        * "Timer"

          * "cancel()"

      * Barrier Objects

        * "Barrier"

          * "wait()"

          * "reset()"

          * "abort()"

          * "parties"

          * "n_waiting"

          * "broken"

        * "BrokenBarrierError"

      * 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

          * "Process"

            * "run()"

            * "start()"

            * "join()"

            * "name"

            * "is_alive()"

            * "daemon"

            * "pid"

            * "exitcode"

            * "authkey"

            * "sentinel"

            * "terminate()"

            * "kill()"

            * "close()"

          * "ProcessError"

          * "BufferTooShort"

          * "AuthenticationError"

          * "TimeoutError"

        * Pipes and Queues

          * "Pipe()"

          * "Queue"

            * "qsize()"

            * "empty()"

            * "full()"

            * "put()"

            * "put_nowait()"

            * "get()"

            * "get_nowait()"

            * "close()"

            * "join_thread()"

            * "cancel_join_thread()"

          * "SimpleQueue"

            * "close()"

            * "empty()"

            * "get()"

            * "put()"

          * "JoinableQueue"

            * "task_done()"

            * "join()"

        * Miscellaneous

          * "active_children()"

          * "cpu_count()"

          * "current_process()"

          * "parent_process()"

          * "freeze_support()"

          * "get_all_start_methods()"

          * "get_context()"

          * "get_start_method()"

          * "set_executable()"

          * "set_forkserver_preload()"

          * "set_start_method()"

        * Connection Objects

          * "Connection"

            * "send()"

            * "recv()"

            * "fileno()"

            * "close()"

            * "poll()"

            * "send_bytes()"

            * "recv_bytes()"

            * "recv_bytes_into()"

        * Synchronization primitives

          * "Barrier"

          * "BoundedSemaphore"

          * "Condition"

          * "Event"

          * "Lock"

            * "acquire()"

            * "release()"

          * "RLock"

            * "acquire()"

            * "release()"

          * "Semaphore"

        * Shared "ctypes" Objects

          * "Value()"

          * "Array()"

          * The "multiprocessing.sharedctypes" module

            * "RawArray()"

            * "RawValue()"

            * "Array()"

            * "Value()"

            * "copy()"

            * "synchronized()"

        * Managers

          * "Manager()"

          * "BaseManager"

            * "start()"

            * "get_server()"

            * "connect()"

            * "shutdown()"

            * "register()"

            * "address"

          * "SyncManager"

            * "Barrier()"

            * "BoundedSemaphore()"

            * "Condition()"

            * "Event()"

            * "Lock()"

            * "Namespace()"

            * "Queue()"

            * "RLock()"

            * "Semaphore()"

            * "Array()"

            * "Value()"

            * "dict()"

            * "list()"

          * "Namespace"

          * Customized managers

          * Using a remote manager

        * Proxy Objects

          * "BaseProxy"

            * "_callmethod()"

            * "_getvalue()"

            * "__repr__()"

            * "__str__()"

          * Cleanup

        * Process Pools

          * "Pool"

            * "apply()"

            * "apply_async()"

            * "map()"

            * "map_async()"

            * "imap()"

            * "imap_unordered()"

            * "starmap()"

            * "starmap_async()"

            * "close()"

            * "terminate()"

            * "join()"

          * "AsyncResult"

            * "get()"

            * "wait()"

            * "ready()"

            * "successful()"

        * Listeners and Clients

          * "deliver_challenge()"

          * "answer_challenge()"

          * "Client()"

          * "Listener"

            * "accept()"

            * "close()"

            * "address"

            * "last_accepted"

          * "wait()"

          * Address Formats

        * Authentication keys

        * Logging

          * "get_logger()"

          * "log_to_stderr()"

        * The "multiprocessing.dummy" module

          * "ThreadPool"

      * Programming guidelines

        * All start methods

        * The *spawn* and *forkserver* start methods

      * Examples

    * "multiprocessing.shared_memory" --- Shared memory for direct
      access across processes

      * "SharedMemory"

        * "close()"

        * "unlink()"

        * "buf"

        * "name"

        * "size"

      * "SharedMemoryManager"

        * "SharedMemory()"

        * "ShareableList()"

      * "ShareableList"

        * "count()"

        * "index()"

        * "format"

        * "shm"

    * The "concurrent" package

    * "concurrent.futures" --- Launching parallel tasks

      * Executor Objects

        * "Executor"

          * "submit()"

          * "map()"

          * "shutdown()"

      * ThreadPoolExecutor

        * "ThreadPoolExecutor"

        * ThreadPoolExecutor Example

      * ProcessPoolExecutor

        * "ProcessPoolExecutor"

        * ProcessPoolExecutor Example

      * Future Objects

        * "Future"

          * "cancel()"

          * "cancelled()"

          * "running()"

          * "done()"

          * "result()"

          * "exception()"

          * "add_done_callback()"

          * "set_running_or_notify_cancel()"

          * "set_result()"

          * "set_exception()"

      * Module Functions

        * "wait()"

          * "FIRST_COMPLETED"

          * "FIRST_EXCEPTION"

          * "ALL_COMPLETED"

        * "as_completed()"

      * Exception classes

        * "CancelledError"

        * "TimeoutError"

        * "BrokenExecutor"

        * "InvalidStateError"

        * "BrokenThreadPool"

        * "BrokenProcessPool"

    * "subprocess" --- Subprocess management

      * Using the "subprocess" Module

        * "run()"

        * "CompletedProcess"

          * "args"

          * "returncode"

          * "stdout"

          * "stderr"

          * "check_returncode()"

        * "DEVNULL"

        * "PIPE"

        * "STDOUT"

        * "SubprocessError"

        * "TimeoutExpired"

          * "cmd"

          * "timeout"

          * "output"

          * "stdout"

          * "stderr"

        * "CalledProcessError"

          * "returncode"

          * "cmd"

          * "output"

          * "stdout"

          * "stderr"

        * Frequently Used Arguments

        * Popen Constructor

          * "Popen"

        * Exceptions

      * Security Considerations

      * Popen Objects

        * "poll()"

        * "wait()"

        * "communicate()"

        * "send_signal()"

        * "terminate()"

        * "kill()"

        * "args"

        * "stdin"

        * "stdout"

        * "stderr"

        * "pid"

        * "returncode"

      * Windows Popen Helpers

        * "STARTUPINFO"

          * "dwFlags"

          * "hStdInput"

          * "hStdOutput"

          * "hStdError"

          * "wShowWindow"

          * "lpAttributeList"

        * Windows Constants

          * "STD_INPUT_HANDLE"

          * "STD_OUTPUT_HANDLE"

          * "STD_ERROR_HANDLE"

          * "SW_HIDE"

          * "STARTF_USESTDHANDLES"

          * "STARTF_USESHOWWINDOW"

          * "CREATE_NEW_CONSOLE"

          * "CREATE_NEW_PROCESS_GROUP"

          * "ABOVE_NORMAL_PRIORITY_CLASS"

          * "BELOW_NORMAL_PRIORITY_CLASS"

          * "HIGH_PRIORITY_CLASS"

          * "IDLE_PRIORITY_CLASS"

          * "NORMAL_PRIORITY_CLASS"

          * "REALTIME_PRIORITY_CLASS"

          * "CREATE_NO_WINDOW"

          * "DETACHED_PROCESS"

          * "CREATE_DEFAULT_ERROR_MODE"

          * "CREATE_BREAKAWAY_FROM_JOB"

      * Older high-level API

        * "call()"

        * "check_call()"

        * "check_output()"

      * Replacing Older Functions with the "subprocess" Module

        * Replacing **/bin/sh** shell command substitution

        * 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

        * "getstatusoutput()"

        * "getoutput()"

      * Notes

        * Converting an argument sequence to a string on Windows

        * Disabling use of "vfork()" or "posix_spawn()"

    * "sched" --- Event scheduler

      * "scheduler"

      * Scheduler Objects

        * "enterabs()"

        * "enter()"

        * "cancel()"

        * "empty()"

        * "run()"

        * "queue"

    * "queue" --- A synchronized queue class

      * "Queue"

      * "LifoQueue"

      * "PriorityQueue"

      * "SimpleQueue"

      * "Empty"

      * "Full"

      * Queue Objects

        * "qsize()"

        * "empty()"

        * "full()"

        * "put()"

        * "put_nowait()"

        * "get()"

        * "get_nowait()"

        * "task_done()"

        * "join()"

      * SimpleQueue Objects

        * "qsize()"

        * "empty()"

        * "put()"

        * "put_nowait()"

        * "get()"

        * "get_nowait()"

    * "contextvars" --- Context Variables

      * Context Variables

        * "ContextVar"

          * "name"

          * "get()"

          * "set()"

          * "reset()"

        * "Token"

          * "var"

          * "old_value"

          * "MISSING"

      * Manual Context Management

        * "copy_context()"

        * "Context"

          * "run()"

          * "copy()"

          * "get()"

          * "keys()"

          * "values()"

          * "items()"

      * asyncio support

    * "_thread" --- Low-level threading API

      * "error"

      * "LockType"

      * "start_new_thread()"

      * "interrupt_main()"

      * "exit()"

      * "allocate_lock()"

      * "get_ident()"

      * "get_native_id()"

      * "stack_size()"

      * "TIMEOUT_MAX"

      * "acquire()"

      * "release()"

      * "locked()"

  * Networking and Interprocess Communication

    * "asyncio" --- Asynchronous I/O

      * Runners

        * Running an asyncio Program

          * "run()"

        * Runner context manager

          * "Runner"

            * "run()"

            * "close()"

            * "get_loop()"

        * Handling Keyboard Interruption

      * Coroutines and Tasks

        * Coroutines

        * Awaitables

        * Creating Tasks

          * "create_task()"

        * Task Cancellation

        * Task Groups

          * "TaskGroup"

            * "create_task()"

          * Terminating a Task Group

        * Sleeping

          * "sleep()"

        * Running Tasks Concurrently

          * "gather()"

        * Eager Task Factory

          * "eager_task_factory()"

          * "create_eager_task_factory()"

        * Shielding From Cancellation

          * "shield()"

        * Timeouts

          * "timeout()"

            * "Timeout"

              * "when()"

              * "reschedule()"

              * "expired()"

          * "timeout_at()"

          * "wait_for()"

        * Waiting Primitives

          * "wait()"

            * "FIRST_COMPLETED"

            * "FIRST_EXCEPTION"

            * "ALL_COMPLETED"

          * "as_completed()"

        * Running in Threads

          * "to_thread()"

        * Scheduling From Other Threads

          * "run_coroutine_threadsafe()"

        * Introspection

          * "current_task()"

          * "all_tasks()"

          * "iscoroutine()"

        * Task Object

          * "Task"

            * "done()"

            * "result()"

            * "exception()"

            * "add_done_callback()"

            * "remove_done_callback()"

            * "get_stack()"

            * "print_stack()"

            * "get_coro()"

            * "get_context()"

            * "get_name()"

            * "set_name()"

            * "cancel()"

            * "cancelled()"

            * "uncancel()"

            * "cancelling()"

      * Streams

        * "open_connection()"

        * "start_server()"

        * "open_unix_connection()"

        * "start_unix_server()"

        * StreamReader

          * "StreamReader"

            * "feed_eof()"

            * "read()"

            * "readline()"

            * "readexactly()"

            * "readuntil()"

            * "at_eof()"

        * StreamWriter

          * "StreamWriter"

            * "write()"

            * "writelines()"

            * "close()"

            * "can_write_eof()"

            * "write_eof()"

            * "transport"

            * "get_extra_info()"

            * "drain()"

            * "start_tls()"

            * "is_closing()"

            * "wait_closed()"

        * 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

          * "Lock"

            * "acquire()"

            * "release()"

            * "locked()"

        * Event

          * "Event"

            * "wait()"

            * "set()"

            * "clear()"

            * "is_set()"

        * Condition

          * "Condition"

            * "acquire()"

            * "notify()"

            * "locked()"

            * "notify_all()"

            * "release()"

            * "wait()"

            * "wait_for()"

        * Semaphore

          * "Semaphore"

            * "acquire()"

            * "locked()"

            * "release()"

        * BoundedSemaphore

          * "BoundedSemaphore"

        * Barrier

          * "Barrier"

            * "wait()"

            * "reset()"

            * "abort()"

            * "parties"

            * "n_waiting"

            * "broken"

          * "BrokenBarrierError"

      * Subprocesses

        * Creating Subprocesses

          * "create_subprocess_exec()"

          * "create_subprocess_shell()"

        * Constants

          * "PIPE"

          * "STDOUT"

          * "DEVNULL"

        * Interacting with Subprocesses

          * "Process"

            * "wait()"

            * "communicate()"

            * "send_signal()"

            * "terminate()"

            * "kill()"

            * "stdin"

            * "stdout"

            * "stderr"

            * "pid"

            * "returncode"

          * Subprocess and Threads

          * Examples

      * Queues

        * Queue

          * "Queue"

            * "maxsize"

            * "empty()"

            * "full()"

            * "get()"

            * "get_nowait()"

            * "join()"

            * "put()"

            * "put_nowait()"

            * "qsize()"

            * "task_done()"

        * Priority Queue

          * "PriorityQueue"

        * LIFO Queue

          * "LifoQueue"

        * Exceptions

          * "QueueEmpty"

          * "QueueFull"

        * Examples

      * Exceptions

        * "TimeoutError"

        * "CancelledError"

        * "InvalidStateError"

        * "SendfileNotAvailableError"

        * "IncompleteReadError"

          * "expected"

          * "partial"

        * "LimitOverrunError"

          * "consumed"

      * Event Loop

        * "get_running_loop()"

        * "get_event_loop()"

        * "set_event_loop()"

        * "new_event_loop()"

        * Event Loop Methods

          * Running and stopping the loop

            * "run_until_complete()"

            * "run_forever()"

            * "stop()"

            * "is_running()"

            * "is_closed()"

            * "close()"

            * "shutdown_asyncgens()"

            * "shutdown_default_executor()"

          * Scheduling callbacks

            * "call_soon()"

            * "call_soon_threadsafe()"

          * Scheduling delayed callbacks

            * "call_later()"

            * "call_at()"

            * "time()"

          * Creating Futures and Tasks

            * "create_future()"

            * "create_task()"

            * "set_task_factory()"

            * "get_task_factory()"

          * Opening network connections

            * "create_connection()"

            * "create_datagram_endpoint()"

            * "create_unix_connection()"

          * Creating network servers

            * "create_server()"

            * "create_unix_server()"

            * "connect_accepted_socket()"

          * Transferring files

            * "sendfile()"

          * TLS Upgrade

            * "start_tls()"

          * Watching file descriptors

            * "add_reader()"

            * "remove_reader()"

            * "add_writer()"

            * "remove_writer()"

          * Working with socket objects directly

            * "sock_recv()"

            * "sock_recv_into()"

            * "sock_recvfrom()"

            * "sock_recvfrom_into()"

            * "sock_sendall()"

            * "sock_sendto()"

            * "sock_connect()"

            * "sock_accept()"

            * "sock_sendfile()"

          * DNS

            * "getaddrinfo()"

            * "getnameinfo()"

          * Working with pipes

            * "connect_read_pipe()"

            * "connect_write_pipe()"

          * Unix signals

            * "add_signal_handler()"

            * "remove_signal_handler()"

          * Executing code in thread or process pools

            * "run_in_executor()"

            * "set_default_executor()"

          * Error Handling API

            * "set_exception_handler()"

            * "get_exception_handler()"

            * "default_exception_handler()"

            * "call_exception_handler()"

          * Enabling debug mode

            * "get_debug()"

            * "set_debug()"

            * "slow_callback_duration"

          * Running Subprocesses

            * "subprocess_exec()"

            * "subprocess_shell()"

        * Callback Handles

          * "Handle"

            * "get_context()"

            * "cancel()"

            * "cancelled()"

          * "TimerHandle"

            * "when()"

        * Server Objects

          * "Server"

            * "close()"

            * "get_loop()"

            * "start_serving()"

            * "serve_forever()"

            * "is_serving()"

            * "wait_closed()"

            * "sockets"

        * Event Loop Implementations

          * "SelectorEventLoop"

          * "ProactorEventLoop"

          * "AbstractEventLoop"

        * 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

          * "isfuture()"

          * "ensure_future()"

          * "wrap_future()"

        * Future Object

          * "Future"

            * "result()"

            * "set_result()"

            * "set_exception()"

            * "done()"

            * "cancelled()"

            * "add_done_callback()"

            * "remove_done_callback()"

            * "cancel()"

            * "exception()"

            * "get_loop()"

      * Transports and Protocols

        * Transports

          * Transports Hierarchy

            * "BaseTransport"

            * "WriteTransport"

            * "ReadTransport"

            * "Transport"

            * "DatagramTransport"

            * "SubprocessTransport"

          * Base Transport

            * "close()"

            * "is_closing()"

            * "get_extra_info()"

            * "set_protocol()"

            * "get_protocol()"

          * Read-only Transports

            * "is_reading()"

            * "pause_reading()"

            * "resume_reading()"

          * Write-only Transports

            * "abort()"

            * "can_write_eof()"

            * "get_write_buffer_size()"

            * "get_write_buffer_limits()"

            * "set_write_buffer_limits()"

            * "write()"

            * "writelines()"

            * "write_eof()"

          * Datagram Transports

            * "sendto()"

            * "abort()"

          * Subprocess Transports

            * "get_pid()"

            * "get_pipe_transport()"

            * "get_returncode()"

            * "kill()"

            * "send_signal()"

            * "terminate()"

            * "close()"

        * Protocols

          * Base Protocols

            * "BaseProtocol"

            * "Protocol"

            * "BufferedProtocol"

            * "DatagramProtocol"

            * "SubprocessProtocol"

          * Base Protocol

            * "connection_made()"

            * "connection_lost()"

            * "pause_writing()"

            * "resume_writing()"

          * Streaming Protocols

            * "data_received()"

            * "eof_received()"

          * Buffered Streaming Protocols

            * "get_buffer()"

            * "buffer_updated()"

            * "eof_received()"

          * Datagram Protocols

            * "datagram_received()"

            * "error_received()"

          * Subprocess Protocols

            * "pipe_data_received()"

            * "pipe_connection_lost()"

            * "process_exited()"

        * 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

          * "get_event_loop_policy()"

          * "set_event_loop_policy()"

        * Policy Objects

          * "AbstractEventLoopPolicy"

            * "get_event_loop()"

            * "set_event_loop()"

            * "new_event_loop()"

            * "get_child_watcher()"

            * "set_child_watcher()"

          * "DefaultEventLoopPolicy"

          * "WindowsSelectorEventLoopPolicy"

          * "WindowsProactorEventLoopPolicy"

        * Process Watchers

          * "get_child_watcher()"

          * "set_child_watcher()"

          * "AbstractChildWatcher"

            * "add_child_handler()"

            * "remove_child_handler()"

            * "attach_loop()"

            * "is_active()"

            * "close()"

          * "ThreadedChildWatcher"

          * "MultiLoopChildWatcher"

          * "SafeChildWatcher"

          * "FastChildWatcher"

          * "PidfdChildWatcher"

        * Custom Policies

      * Platform Support

        * All Platforms

        * Windows

          * Subprocess Support on Windows

        * macOS

      * Extending

        * Writing a Custom Event Loop

        * Future and Task private constructors

          * "__init__()"

          * "__init__()"

        * Task lifetime support

          * "_register_task()"

          * "_unregister_task()"

          * "_enter_task()"

          * "_leave_task()"

      * 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

          * "error"

          * "herror"

          * "gaierror"

          * "timeout"

        * Constants

          * "AF_UNIX"

          * "AF_INET"

          * "AF_INET6"

          * "AF_UNSPEC"

          * "SOCK_STREAM"

          * "SOCK_DGRAM"

          * "SOCK_RAW"

          * "SOCK_RDM"

          * "SOCK_SEQPACKET"

          * "SOCK_CLOEXEC"

          * "SOCK_NONBLOCK"

          * "SOMAXCONN"

          * "AF_CAN"

          * "PF_CAN"

          * "CAN_BCM"

          * "CAN_RAW_FD_FRAMES"

          * "CAN_RAW_JOIN_FILTERS"

          * "CAN_ISOTP"

          * "CAN_J1939"

          * "AF_DIVERT"

          * "PF_DIVERT"

          * "AF_PACKET"

          * "PF_PACKET"

          * "ETH_P_ALL"

          * "AF_RDS"

          * "PF_RDS"

          * "SOL_RDS"

          * "SIO_RCVALL"

          * "SIO_KEEPALIVE_VALS"

          * "SIO_LOOPBACK_FAST_PATH"

          * "AF_ALG"

          * "SOL_ALG"

          * "AF_VSOCK"

          * "IOCTL_VM_SOCKETS_GET_LOCAL_CID"

          * "AF_LINK"

          * "has_ipv6"

          * "BDADDR_ANY"

          * "BDADDR_LOCAL"

          * "HCI_FILTER"

          * "HCI_TIME_STAMP"

          * "HCI_DATA_DIR"

          * "AF_QIPCRTR"

          * "SCM_CREDS2"

          * "LOCAL_CREDS"

          * "LOCAL_CREDS_PERSISTENT"

          * "SO_INCOMING_CPU"

          * "AF_HYPERV"

          * "HV_PROTOCOL_RAW"

          * "HVSOCKET_CONNECT_TIMEOUT"

          * "HVSOCKET_CONNECT_TIMEOUT_MAX"

          * "HVSOCKET_CONNECTED_SUSPEND"

          * "HVSOCKET_ADDRESS_FLAG_PASSTHRU"

          * "HV_GUID_ZERO"

          * "HV_GUID_WILDCARD"

          * "HV_GUID_BROADCAST"

          * "HV_GUID_CHILDREN"

          * "HV_GUID_LOOPBACK"

          * "HV_GUID_PARENT"

          * "ETHERTYPE_ARP"

          * "ETHERTYPE_IP"

          * "ETHERTYPE_IPV6"

          * "ETHERTYPE_VLAN"

          * "SHUT_RD"

          * "SHUT_WR"

          * "SHUT_RDWR"

        * Functions

          * Creating sockets

            * "socket"

            * "socketpair()"

            * "create_connection()"

            * "create_server()"

            * "has_dualstack_ipv6()"

            * "fromfd()"

            * "fromshare()"

            * "SocketType"

          * Other functions

            * "close()"

            * "getaddrinfo()"

            * "getfqdn()"

            * "gethostbyname()"

            * "gethostbyname_ex()"

            * "gethostname()"

            * "gethostbyaddr()"

            * "getnameinfo()"

            * "getprotobyname()"

            * "getservbyname()"

            * "getservbyport()"

            * "ntohl()"

            * "ntohs()"

            * "htonl()"

            * "htons()"

            * "inet_aton()"

            * "inet_ntoa()"

            * "inet_pton()"

            * "inet_ntop()"

            * "CMSG_LEN()"

            * "CMSG_SPACE()"

            * "getdefaulttimeout()"

            * "setdefaulttimeout()"

            * "sethostname()"

            * "if_nameindex()"

            * "if_nametoindex()"

            * "if_indextoname()"

            * "send_fds()"

            * "recv_fds()"

      * Socket Objects

        * "accept()"

        * "bind()"

        * "close()"

        * "connect()"

        * "connect_ex()"

        * "detach()"

        * "dup()"

        * "fileno()"

        * "get_inheritable()"

        * "getpeername()"

        * "getsockname()"

        * "getsockopt()"

        * "getblocking()"

        * "gettimeout()"

        * "ioctl()"

        * "listen()"

        * "makefile()"

        * "recv()"

        * "recvfrom()"

        * "recvmsg()"

        * "recvmsg_into()"

        * "recvfrom_into()"

        * "recv_into()"

        * "send()"

        * "sendall()"

        * "sendto()"

        * "sendmsg()"

        * "sendmsg_afalg()"

        * "sendfile()"

        * "set_inheritable()"

        * "setblocking()"

        * "settimeout()"

        * "setsockopt()"

        * "shutdown()"

        * "share()"

        * "family"

        * "type"

        * "proto"

      * 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

          * "create_default_context()"

        * Exceptions

          * "SSLError"

            * "library"

            * "reason"

          * "SSLZeroReturnError"

          * "SSLWantReadError"

          * "SSLWantWriteError"

          * "SSLSyscallError"

          * "SSLEOFError"

          * "SSLCertVerificationError"

            * "verify_code"

            * "verify_message"

          * "CertificateError"

        * Random generation

          * "RAND_bytes()"

          * "RAND_status()"

          * "RAND_add()"

        * Certificate handling

          * "cert_time_to_seconds()"

          * "get_server_certificate()"

          * "DER_cert_to_PEM_cert()"

          * "PEM_cert_to_DER_cert()"

          * "get_default_verify_paths()"

          * "enum_certificates()"

          * "enum_crls()"

        * Constants

          * "CERT_NONE"

          * "CERT_OPTIONAL"

          * "CERT_REQUIRED"

          * "VerifyMode"

          * "VERIFY_DEFAULT"

          * "VERIFY_CRL_CHECK_LEAF"

          * "VERIFY_CRL_CHECK_CHAIN"

          * "VERIFY_X509_STRICT"

          * "VERIFY_ALLOW_PROXY_CERTS"

          * "VERIFY_X509_TRUSTED_FIRST"

          * "VERIFY_X509_PARTIAL_CHAIN"

          * "VerifyFlags"

          * "PROTOCOL_TLS"

          * "PROTOCOL_TLS_CLIENT"

          * "PROTOCOL_TLS_SERVER"

          * "PROTOCOL_SSLv23"

          * "PROTOCOL_SSLv3"

          * "PROTOCOL_TLSv1"

          * "PROTOCOL_TLSv1_1"

          * "PROTOCOL_TLSv1_2"

          * "OP_ALL"

          * "OP_NO_SSLv2"

          * "OP_NO_SSLv3"

          * "OP_NO_TLSv1"

          * "OP_NO_TLSv1_1"

          * "OP_NO_TLSv1_2"

          * "OP_NO_TLSv1_3"

          * "OP_NO_RENEGOTIATION"

          * "OP_CIPHER_SERVER_PREFERENCE"

          * "OP_SINGLE_DH_USE"

          * "OP_SINGLE_ECDH_USE"

          * "OP_ENABLE_MIDDLEBOX_COMPAT"

          * "OP_NO_COMPRESSION"

          * "Options"

          * "OP_NO_TICKET"

          * "OP_IGNORE_UNEXPECTED_EOF"

          * "OP_ENABLE_KTLS"

          * "OP_LEGACY_SERVER_CONNECT"

          * "HAS_ALPN"

          * "HAS_NEVER_CHECK_COMMON_NAME"

          * "HAS_ECDH"

          * "HAS_SNI"

          * "HAS_NPN"

          * "HAS_SSLv2"

          * "HAS_SSLv3"

          * "HAS_TLSv1"

          * "HAS_TLSv1_1"

          * "HAS_TLSv1_2"

          * "HAS_TLSv1_3"

          * "CHANNEL_BINDING_TYPES"

          * "OPENSSL_VERSION"

          * "OPENSSL_VERSION_INFO"

          * "OPENSSL_VERSION_NUMBER"

          * "ALERT_DESCRIPTION_HANDSHAKE_FAILURE"

          * "ALERT_DESCRIPTION_INTERNAL_ERROR"

          * "AlertDescription"

          * "SERVER_AUTH"

          * "CLIENT_AUTH"

          * "SSLErrorNumber"

          * "TLSVersion"

          * "MINIMUM_SUPPORTED"

          * "MAXIMUM_SUPPORTED"

          * "SSLv3"

          * "TLSv1"

          * "TLSv1_1"

          * "TLSv1_2"

          * "TLSv1_3"

      * SSL Sockets

        * "SSLSocket"

        * "read()"

        * "write()"

        * "do_handshake()"

        * "getpeercert()"

        * "cipher()"

        * "shared_ciphers()"

        * "compression()"

        * "get_channel_binding()"

        * "selected_alpn_protocol()"

        * "selected_npn_protocol()"

        * "unwrap()"

        * "verify_client_post_handshake()"

        * "version()"

        * "pending()"

        * "context"

        * "server_side"

        * "server_hostname"

        * "session"

        * "session_reused"

      * SSL Contexts

        * "SSLContext"

        * "cert_store_stats()"

        * "load_cert_chain()"

        * "load_default_certs()"

        * "load_verify_locations()"

        * "get_ca_certs()"

        * "get_ciphers()"

        * "set_default_verify_paths()"

        * "set_ciphers()"

        * "set_alpn_protocols()"

        * "set_npn_protocols()"

        * "sni_callback"

        * "set_servername_callback"

        * "load_dh_params()"

        * "set_ecdh_curve()"

        * "wrap_socket()"

        * "sslsocket_class"

        * "wrap_bio()"

        * "sslobject_class"

        * "session_stats()"

        * "check_hostname"

        * "keylog_filename"

        * "maximum_version"

        * "minimum_version"

        * "num_tickets"

        * "options"

        * "post_handshake_auth"

        * "protocol"

        * "hostname_checks_common_name"

        * "security_level"

        * "verify_flags"

        * "verify_mode"

      * 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

        * "SSLObject"

        * "MemoryBIO"

          * "pending"

          * "eof"

          * "read()"

          * "write()"

          * "write_eof()"

      * SSL session

        * "SSLSession"

          * "id"

          * "time"

          * "timeout"

          * "ticket_lifetime_hint"

          * "has_ticket"

      * Security considerations

        * Best defaults

        * Manual settings

          * Verifying certificates

          * Protocol versions

          * Cipher selection

        * Multi-processing

      * TLS 1.3

    * "select" --- Waiting for I/O completion

      * "error"

      * "devpoll()"

      * "epoll()"

      * "poll()"

      * "kqueue()"

      * "kevent()"

      * "select()"

      * "PIPE_BUF"

      * "/dev/poll" Polling Objects

        * "close()"

        * "closed"

        * "fileno()"

        * "register()"

        * "modify()"

        * "unregister()"

        * "poll()"

      * Edge and Level Trigger Polling (epoll) Objects

        * "close()"

        * "closed"

        * "fileno()"

        * "fromfd()"

        * "register()"

        * "modify()"

        * "unregister()"

        * "poll()"

      * Polling Objects

        * "register()"

        * "modify()"

        * "unregister()"

        * "poll()"

      * Kqueue Objects

        * "close()"

        * "closed"

        * "fileno()"

        * "fromfd()"

        * "control()"

      * Kevent Objects

        * "ident"

        * "filter"

        * "flags"

        * "fflags"

        * "data"

        * "udata"

    * "selectors" --- High-level I/O multiplexing

      * Introduction

      * Classes

        * "EVENT_READ"

        * "EVENT_WRITE"

        * "SelectorKey"

          * "fileobj"

          * "fd"

          * "events"

          * "data"

        * "BaseSelector"

          * "register()"

          * "unregister()"

          * "modify()"

          * "select()"

          * "close()"

          * "get_key()"

          * "get_map()"

        * "DefaultSelector"

        * "SelectSelector"

        * "PollSelector"

        * "EpollSelector"

          * "fileno()"

        * "DevpollSelector"

          * "fileno()"

        * "KqueueSelector"

          * "fileno()"

      * Examples

    * "signal" --- Set handlers for asynchronous events

      * General rules

        * Execution of Python signal handlers

        * Signals and threads

      * Module contents

        * "Signals"

        * "Handlers"

        * "Sigmasks"

        * "SIG_DFL"

        * "SIG_IGN"

        * "SIGABRT"

        * "SIGALRM"

        * "SIGBREAK"

        * "SIGBUS"

        * "SIGCHLD"

        * "SIGCLD"

        * "SIGCONT"

        * "SIGFPE"

        * "SIGHUP"

        * "SIGILL"

        * "SIGINT"

        * "SIGKILL"

        * "SIGPIPE"

        * "SIGSEGV"

        * "SIGSTKFLT"

        * "SIGTERM"

        * "SIGUSR1"

        * "SIGUSR2"

        * "SIGWINCH"

        * "CTRL_C_EVENT"

        * "CTRL_BREAK_EVENT"

        * "NSIG"

        * "ITIMER_REAL"

        * "ITIMER_VIRTUAL"

        * "ITIMER_PROF"

        * "SIG_BLOCK"

        * "SIG_UNBLOCK"

        * "SIG_SETMASK"

        * "ItimerError"

        * "alarm()"

        * "getsignal()"

        * "strsignal()"

        * "valid_signals()"

        * "pause()"

        * "raise_signal()"

        * "pidfd_send_signal()"

        * "pthread_kill()"

        * "pthread_sigmask()"

        * "setitimer()"

        * "getitimer()"

        * "set_wakeup_fd()"

        * "siginterrupt()"

        * "signal()"

        * "sigpending()"

        * "sigwait()"

        * "sigwaitinfo()"

        * "sigtimedwait()"

      * Examples

      * Note on SIGPIPE

      * Note on Signal Handlers and Exceptions

    * "mmap" --- Memory-mapped file support

      * "mmap"

      * "close()"

      * "closed"

      * "find()"

      * "flush()"

      * "madvise()"

      * "move()"

      * "read()"

      * "read_byte()"

      * "readline()"

      * "resize()"

      * "rfind()"

      * "seek()"

      * "size()"

      * "tell()"

      * "write()"

      * "write_byte()"

      * MADV_* Constants

        * "MADV_NORMAL"

        * "MADV_RANDOM"

        * "MADV_SEQUENTIAL"

        * "MADV_WILLNEED"

        * "MADV_DONTNEED"

        * "MADV_REMOVE"

        * "MADV_DONTFORK"

        * "MADV_DOFORK"

        * "MADV_HWPOISON"

        * "MADV_MERGEABLE"

        * "MADV_UNMERGEABLE"

        * "MADV_SOFT_OFFLINE"

        * "MADV_HUGEPAGE"

        * "MADV_NOHUGEPAGE"

        * "MADV_DONTDUMP"

        * "MADV_DODUMP"

        * "MADV_FREE"

        * "MADV_NOSYNC"

        * "MADV_AUTOSYNC"

        * "MADV_NOCORE"

        * "MADV_CORE"

        * "MADV_PROTECT"

        * "MADV_FREE_REUSABLE"

        * "MADV_FREE_REUSE"

      * MAP_* Constants

        * "MAP_SHARED"

        * "MAP_PRIVATE"

        * "MAP_DENYWRITE"

        * "MAP_EXECUTABLE"

        * "MAP_ANON"

        * "MAP_ANONYMOUS"

        * "MAP_POPULATE"

        * "MAP_STACK"

        * "MAP_ALIGNED_SUPER"

        * "MAP_CONCEAL"

  * Internet Data Handling

    * "email" --- An email and MIME handling package

      * "email.message": Representing an email message

        * "EmailMessage"

          * "as_string()"

          * "__str__()"

          * "as_bytes()"

          * "__bytes__()"

          * "is_multipart()"

          * "set_unixfrom()"

          * "get_unixfrom()"

          * "__len__()"

          * "__contains__()"

          * "__getitem__()"

          * "__setitem__()"

          * "__delitem__()"

          * "keys()"

          * "values()"

          * "items()"

          * "get()"

          * "get_all()"

          * "add_header()"

          * "replace_header()"

          * "get_content_type()"

          * "get_content_maintype()"

          * "get_content_subtype()"

          * "get_default_type()"

          * "set_default_type()"

          * "set_param()"

          * "del_param()"

          * "get_filename()"

          * "get_boundary()"

          * "set_boundary()"

          * "get_content_charset()"

          * "get_charsets()"

          * "is_attachment()"

          * "get_content_disposition()"

          * "walk()"

          * "get_body()"

          * "iter_attachments()"

          * "iter_parts()"

          * "get_content()"

          * "set_content()"

          * "make_related()"

          * "make_alternative()"

          * "make_mixed()"

          * "add_related()"

          * "add_alternative()"

          * "add_attachment()"

          * "clear()"

          * "clear_content()"

          * "preamble"

          * "epilogue"

          * "defects"

        * "MIMEPart"

      * "email.parser": Parsing email messages

        * FeedParser API

          * "BytesFeedParser"

            * "feed()"

            * "close()"

          * "FeedParser"

        * Parser API

          * "BytesParser"

            * "parse()"

            * "parsebytes()"

          * "BytesHeaderParser"

          * "Parser"

            * "parse()"

            * "parsestr()"

          * "HeaderParser"

          * "message_from_bytes()"

          * "message_from_binary_file()"

          * "message_from_string()"

          * "message_from_file()"

        * Additional notes

      * "email.generator": Generating MIME documents

        * "BytesGenerator"

          * "flatten()"

          * "clone()"

          * "write()"

        * "Generator"

          * "flatten()"

          * "clone()"

          * "write()"

        * "DecodedGenerator"

      * "email.policy": Policy Objects

        * "Policy"

          * "max_line_length"

          * "linesep"

          * "cte_type"

          * "raise_on_defect"

          * "mangle_from_"

          * "message_factory"

          * "verify_generated_headers"

          * "clone()"

          * "handle_defect()"

          * "register_defect()"

          * "header_max_count()"

          * "header_source_parse()"

          * "header_store_parse()"

          * "header_fetch_parse()"

          * "fold()"

          * "fold_binary()"

        * "EmailPolicy"

          * "utf8"

          * "refold_source"

          * "header_factory"

          * "content_manager"

          * "header_max_count()"

          * "header_source_parse()"

          * "header_store_parse()"

          * "header_fetch_parse()"

          * "fold()"

          * "fold_binary()"

        * "default"

        * "SMTP"

        * "SMTPUTF8"

        * "HTTP"

        * "strict"

        * "Compat32"

          * "mangle_from_"

          * "header_source_parse()"

          * "header_store_parse()"

          * "header_fetch_parse()"

          * "fold()"

          * "fold_binary()"

        * "compat32"

      * "email.errors": Exception and Defect classes

        * "MessageError"

        * "MessageParseError"

        * "HeaderParseError"

        * "BoundaryError"

        * "MultipartConversionError"

        * "HeaderWriteError"

        * "MessageDefect"

        * "HeaderDefect"

      * "email.headerregistry": Custom Header Objects

        * "BaseHeader"

          * "name"

          * "defects"

          * "max_count"

          * "fold()"

        * "UnstructuredHeader"

        * "DateHeader"

          * "datetime"

        * "AddressHeader"

          * "groups"

          * "addresses"

        * "SingleAddressHeader"

          * "address"

        * "MIMEVersionHeader"

          * "version"

          * "major"

          * "minor"

        * "ParameterizedMIMEHeader"

          * "params"

        * "ContentTypeHeader"

          * "content_type"

          * "maintype"

          * "subtype"

        * "ContentDispositionHeader"

          * "content_disposition"

        * "ContentTransferEncoding"

          * "cte"

        * "HeaderRegistry"

          * "map_to_type()"

          * "__getitem__()"

          * "__call__()"

        * "Address"

          * "display_name"

          * "username"

          * "domain"

          * "addr_spec"

          * "__str__()"

        * "Group"

          * "display_name"

          * "addresses"

          * "__str__()"

      * "email.contentmanager": Managing MIME Content

        * "ContentManager"

          * "get_content()"

          * "set_content()"

          * "add_get_handler()"

          * "add_set_handler()"

        * Content Manager Instances

          * "raw_data_manager"

            * "get_content()"

            * "set_content()"

      * "email": Examples

      * "email.message.Message": Representing an email message using
        the "compat32" API

        * "Message"

          * "as_string()"

          * "__str__()"

          * "as_bytes()"

          * "__bytes__()"

          * "is_multipart()"

          * "set_unixfrom()"

          * "get_unixfrom()"

          * "attach()"

          * "get_payload()"

          * "set_payload()"

          * "set_charset()"

          * "get_charset()"

          * "__len__()"

          * "__contains__()"

          * "__getitem__()"

          * "__setitem__()"

          * "__delitem__()"

          * "keys()"

          * "values()"

          * "items()"

          * "get()"

          * "get_all()"

          * "add_header()"

          * "replace_header()"

          * "get_content_type()"

          * "get_content_maintype()"

          * "get_content_subtype()"

          * "get_default_type()"

          * "set_default_type()"

          * "get_params()"

          * "get_param()"

          * "set_param()"

          * "del_param()"

          * "set_type()"

          * "get_filename()"

          * "get_boundary()"

          * "set_boundary()"

          * "get_content_charset()"

          * "get_charsets()"

          * "get_content_disposition()"

          * "walk()"

          * "preamble"

          * "epilogue"

          * "defects"

      * "email.mime": Creating email and MIME objects from scratch

        * "MIMEBase"

        * "MIMENonMultipart"

        * "MIMEMultipart"

        * "MIMEApplication"

        * "MIMEAudio"

        * "MIMEImage"

        * "MIMEMessage"

        * "MIMEText"

      * "email.header": Internationalized headers

        * "Header"

          * "append()"

          * "encode()"

          * "__str__()"

          * "__eq__()"

          * "__ne__()"

        * "decode_header()"

        * "make_header()"

      * "email.charset": Representing character sets

        * "Charset"

          * "input_charset"

          * "header_encoding"

          * "body_encoding"

          * "output_charset"

          * "input_codec"

          * "output_codec"

          * "get_body_encoding()"

          * "get_output_charset()"

          * "header_encode()"

          * "header_encode_lines()"

          * "body_encode()"

          * "__str__()"

          * "__eq__()"

          * "__ne__()"

        * "add_charset()"

        * "add_alias()"

        * "add_codec()"

      * "email.encoders": Encoders

        * "encode_quopri()"

        * "encode_base64()"

        * "encode_7or8bit()"

        * "encode_noop()"

      * "email.utils": Miscellaneous utilities

        * "localtime()"

        * "make_msgid()"

        * "quote()"

        * "unquote()"

        * "parseaddr()"

        * "formataddr()"

        * "getaddresses()"

        * "parsedate()"

        * "parsedate_tz()"

        * "parsedate_to_datetime()"

        * "mktime_tz()"

        * "formatdate()"

        * "format_datetime()"

        * "decode_rfc2231()"

        * "encode_rfc2231()"

        * "collapse_rfc2231_value()"

        * "decode_params()"

      * "email.iterators": Iterators

        * "body_line_iterator()"

        * "typed_subpart_iterator()"

        * "_structure()"

    * "json" --- JSON encoder and decoder

      * Basic Usage

        * "dump()"

        * "dumps()"

        * "load()"

        * "loads()"

      * Encoders and Decoders

        * "JSONDecoder"

          * "decode()"

          * "raw_decode()"

        * "JSONEncoder"

          * "default()"

          * "encode()"

          * "iterencode()"

      * Exceptions

        * "JSONDecodeError"

          * "msg"

          * "doc"

          * "pos"

          * "lineno"

          * "colno"

      * 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

    * "mailbox" --- Manipulate mailboxes in various formats

      * "Mailbox" objects

        * "Mailbox"

          * "add()"

          * "remove()"

          * "__delitem__()"

          * "discard()"

          * "__setitem__()"

          * "iterkeys()"

          * "keys()"

          * "itervalues()"

          * "__iter__()"

          * "values()"

          * "iteritems()"

          * "items()"

          * "get()"

          * "__getitem__()"

          * "get_message()"

          * "get_bytes()"

          * "get_string()"

          * "get_file()"

          * "__contains__()"

          * "__len__()"

          * "clear()"

          * "pop()"

          * "popitem()"

          * "update()"

          * "flush()"

          * "lock()"

          * "unlock()"

          * "close()"

        * "Maildir" objects

          * "Maildir"

            * "colon"

            * "list_folders()"

            * "get_folder()"

            * "add_folder()"

            * "remove_folder()"

            * "clean()"

            * "add()"

            * "__setitem__()"

            * "update()"

            * "flush()"

            * "lock()"

            * "unlock()"

            * "close()"

            * "get_file()"

        * "mbox" objects

          * "mbox"

            * "get_file()"

            * "lock()"

            * "unlock()"

        * "MH" objects

          * "MH"

            * "list_folders()"

            * "get_folder()"

            * "add_folder()"

            * "remove_folder()"

            * "get_sequences()"

            * "set_sequences()"

            * "pack()"

            * "remove()"

            * "__delitem__()"

            * "discard()"

            * "lock()"

            * "unlock()"

            * "get_file()"

            * "flush()"

            * "close()"

        * "Babyl" objects

          * "Babyl"

            * "get_labels()"

            * "get_file()"

            * "lock()"

            * "unlock()"

        * "MMDF" objects

          * "MMDF"

            * "get_file()"

            * "lock()"

            * "unlock()"

      * "Message" objects

        * "Message"

        * "MaildirMessage" objects

          * "MaildirMessage"

            * "get_subdir()"

            * "set_subdir()"

            * "get_flags()"

            * "set_flags()"

            * "add_flag()"

            * "remove_flag()"

            * "get_date()"

            * "set_date()"

            * "get_info()"

            * "set_info()"

        * "mboxMessage" objects

          * "mboxMessage"

            * "get_from()"

            * "set_from()"

            * "get_flags()"

            * "set_flags()"

            * "add_flag()"

            * "remove_flag()"

        * "MHMessage" objects

          * "MHMessage"

            * "get_sequences()"

            * "set_sequences()"

            * "add_sequence()"

            * "remove_sequence()"

        * "BabylMessage" objects

          * "BabylMessage"

            * "get_labels()"

            * "set_labels()"

            * "add_label()"

            * "remove_label()"

            * "get_visible()"

            * "set_visible()"

            * "update_visible()"

        * "MMDFMessage" objects

          * "MMDFMessage"

            * "get_from()"

            * "set_from()"

            * "get_flags()"

            * "set_flags()"

            * "add_flag()"

            * "remove_flag()"

      * Exceptions

        * "Error"

        * "NoSuchMailboxError"

        * "NotEmptyError"

        * "ExternalClashError"

        * "FormatError"

      * Examples

    * "mimetypes" --- Map filenames to MIME types

      * "guess_type()"

      * "guess_all_extensions()"

      * "guess_extension()"

      * "init()"

      * "read_mime_types()"

      * "add_type()"

      * "inited"

      * "knownfiles"

      * "suffix_map"

      * "encodings_map"

      * "types_map"

      * "common_types"

      * MimeTypes Objects

        * "MimeTypes"

          * "suffix_map"

          * "encodings_map"

          * "types_map"

          * "types_map_inv"

          * "guess_extension()"

          * "guess_type()"

          * "guess_all_extensions()"

          * "read()"

          * "readfp()"

          * "read_windows_registry()"

          * "add_type()"

    * "base64" --- Base16, Base32, Base64, Base85 Data Encodings

      * "b64encode()"

      * "b64decode()"

      * "standard_b64encode()"

      * "standard_b64decode()"

      * "urlsafe_b64encode()"

      * "urlsafe_b64decode()"

      * "b32encode()"

      * "b32decode()"

      * "b32hexencode()"

      * "b32hexdecode()"

      * "b16encode()"

      * "b16decode()"

      * "a85encode()"

      * "a85decode()"

      * "b85encode()"

      * "b85decode()"

      * "decode()"

      * "decodebytes()"

      * "encode()"

      * "encodebytes()"

      * Security Considerations

    * "binascii" --- Convert between binary and ASCII

      * "a2b_uu()"

      * "b2a_uu()"

      * "a2b_base64()"

      * "b2a_base64()"

      * "a2b_qp()"

      * "b2a_qp()"

      * "crc_hqx()"

      * "crc32()"

      * "b2a_hex()"

      * "hexlify()"

      * "a2b_hex()"

      * "unhexlify()"

      * "Error"

      * "Incomplete"

    * "quopri" --- Encode and decode MIME quoted-printable data

      * "decode()"

      * "encode()"

      * "decodestring()"

      * "encodestring()"

  * Structured Markup Processing Tools

    * "html" --- HyperText Markup Language support

      * "escape()"

      * "unescape()"

    * "html.parser" --- Simple HTML and XHTML parser

      * "HTMLParser"

      * Example HTML Parser Application

      * "HTMLParser" Methods

        * "feed()"

        * "close()"

        * "reset()"

        * "getpos()"

        * "get_starttag_text()"

        * "handle_starttag()"

        * "handle_endtag()"

        * "handle_startendtag()"

        * "handle_data()"

        * "handle_entityref()"

        * "handle_charref()"

        * "handle_comment()"

        * "handle_decl()"

        * "handle_pi()"

        * "unknown_decl()"

      * Examples

    * "html.entities" --- Definitions of HTML general entities

      * "html5"

      * "entitydefs"

      * "name2codepoint"

      * "codepoint2name"

    * XML Processing Modules

      * XML vulnerabilities

      * The "defusedxml" Package

    * "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

      * XPath support

        * Example

        * Supported XPath syntax

      * Reference

        * Functions

          * "canonicalize()"

          * "Comment()"

          * "dump()"

          * "fromstring()"

          * "fromstringlist()"

          * "indent()"

          * "iselement()"

          * "iterparse()"

          * "parse()"

          * "ProcessingInstruction()"

          * "register_namespace()"

          * "SubElement()"

          * "tostring()"

          * "tostringlist()"

          * "XML()"

          * "XMLID()"

      * XInclude support

        * Example

      * Reference

        * Functions

          * "default_loader()"

          * "include()"

        * Element Objects

          * "Element"

            * "tag"

            * "text"

            * "tail"

            * "attrib"

            * "clear()"

            * "get()"

            * "items()"

            * "keys()"

            * "set()"

            * "append()"

            * "extend()"

            * "find()"

            * "findall()"

            * "findtext()"

            * "insert()"

            * "iter()"

            * "iterfind()"

            * "itertext()"

            * "makeelement()"

            * "remove()"

        * ElementTree Objects

          * "ElementTree"

            * "_setroot()"

            * "find()"

            * "findall()"

            * "findtext()"

            * "getroot()"

            * "iter()"

            * "iterfind()"

            * "parse()"

            * "write()"

        * QName Objects

          * "QName"

        * TreeBuilder Objects

          * "TreeBuilder"

            * "close()"

            * "data()"

            * "end()"

            * "start()"

            * "comment()"

            * "pi()"

            * "doctype()"

            * "start_ns()"

            * "end_ns()"

          * "C14NWriterTarget"

        * XMLParser Objects

          * "XMLParser"

            * "close()"

            * "feed()"

            * "flush()"

        * XMLPullParser Objects

          * "XMLPullParser"

            * "feed()"

            * "flush()"

            * "close()"

            * "read_events()"

        * Exceptions

          * "ParseError"

            * "code"

            * "position"

    * "xml.dom" --- The Document Object Model API

      * Module Contents

        * "registerDOMImplementation()"

        * "getDOMImplementation()"

        * "EMPTY_NAMESPACE"

        * "XML_NAMESPACE"

        * "XMLNS_NAMESPACE"

        * "XHTML_NAMESPACE"

      * Objects in the DOM

        * DOMImplementation Objects

          * "hasFeature()"

          * "createDocument()"

          * "createDocumentType()"

        * Node Objects

          * "nodeType"

          * "parentNode"

          * "attributes"

          * "previousSibling"

          * "nextSibling"

          * "childNodes"

          * "firstChild"

          * "lastChild"

          * "localName"

          * "prefix"

          * "namespaceURI"

          * "nodeName"

          * "nodeValue"

          * "hasAttributes()"

          * "hasChildNodes()"

          * "isSameNode()"

          * "appendChild()"

          * "insertBefore()"

          * "removeChild()"

          * "replaceChild()"

          * "normalize()"

          * "cloneNode()"

        * NodeList Objects

          * "item()"

          * "length"

        * DocumentType Objects

          * "publicId"

          * "systemId"

          * "internalSubset"

          * "name"

          * "entities"

          * "notations"

        * Document Objects

          * "documentElement"

          * "createElement()"

          * "createElementNS()"

          * "createTextNode()"

          * "createComment()"

          * "createProcessingInstruction()"

          * "createAttribute()"

          * "createAttributeNS()"

          * "getElementsByTagName()"

          * "getElementsByTagNameNS()"

        * Element Objects

          * "tagName"

          * "getElementsByTagName()"

          * "getElementsByTagNameNS()"

          * "hasAttribute()"

          * "hasAttributeNS()"

          * "getAttribute()"

          * "getAttributeNode()"

          * "getAttributeNS()"

          * "getAttributeNodeNS()"

          * "removeAttribute()"

          * "removeAttributeNode()"

          * "removeAttributeNS()"

          * "setAttribute()"

          * "setAttributeNode()"

          * "setAttributeNodeNS()"

          * "setAttributeNS()"

        * Attr Objects

          * "name"

          * "localName"

          * "prefix"

          * "value"

        * NamedNodeMap Objects

          * "length"

          * "item()"

        * Comment Objects

          * "data"

        * Text and CDATASection Objects

          * "data"

        * ProcessingInstruction Objects

          * "target"

          * "data"

        * Exceptions

          * "DOMException"

          * "DomstringSizeErr"

          * "HierarchyRequestErr"

          * "IndexSizeErr"

          * "InuseAttributeErr"

          * "InvalidAccessErr"

          * "InvalidCharacterErr"

          * "InvalidModificationErr"

          * "InvalidStateErr"

          * "NamespaceErr"

          * "NotFoundErr"

          * "NotSupportedErr"

          * "NoDataAllowedErr"

          * "NoModificationAllowedErr"

          * "SyntaxErr"

          * "WrongDocumentErr"

      * Conformance

        * Type Mapping

        * Accessor Methods

    * "xml.dom.minidom" --- Minimal DOM implementation

      * "parse()"

      * "parseString()"

      * DOM Objects

        * "unlink()"

        * "writexml()"

        * "toxml()"

        * "toprettyxml()"

      * DOM Example

      * minidom and the DOM standard

    * "xml.dom.pulldom" --- Support for building partial DOM trees

      * "PullDom"

      * "SAX2DOM"

      * "parse()"

      * "parseString()"

      * "default_bufsize"

      * DOMEventStream Objects

        * "DOMEventStream"

          * "getEvent()"

          * "expandNode()"

          * "reset()"

    * "xml.sax" --- Support for SAX2 parsers

      * "make_parser()"

      * "parse()"

      * "parseString()"

      * "SAXException"

      * "SAXParseException"

      * "SAXNotRecognizedException"

      * "SAXNotSupportedException"

      * SAXException Objects

        * "getMessage()"

        * "getException()"

    * "xml.sax.handler" --- Base classes for SAX handlers

      * "ContentHandler"

      * "DTDHandler"

      * "EntityResolver"

      * "ErrorHandler"

      * "LexicalHandler"

      * "feature_namespaces"

      * "feature_namespace_prefixes"

      * "feature_string_interning"

      * "feature_validation"

      * "feature_external_ges"

      * "feature_external_pes"

      * "all_features"

      * "property_lexical_handler"

      * "property_declaration_handler"

      * "property_dom_node"

      * "property_xml_string"

      * "all_properties"

      * ContentHandler Objects

        * "setDocumentLocator()"

        * "startDocument()"

        * "endDocument()"

        * "startPrefixMapping()"

        * "endPrefixMapping()"

        * "startElement()"

        * "endElement()"

        * "startElementNS()"

        * "endElementNS()"

        * "characters()"

        * "ignorableWhitespace()"

        * "processingInstruction()"

        * "skippedEntity()"

      * DTDHandler Objects

        * "notationDecl()"

        * "unparsedEntityDecl()"

      * EntityResolver Objects

        * "resolveEntity()"

      * ErrorHandler Objects

        * "error()"

        * "fatalError()"

        * "warning()"

      * LexicalHandler Objects

        * "comment()"

        * "startDTD()"

        * "endDTD()"

        * "startCDATA()"

        * "endCDATA()"

    * "xml.sax.saxutils" --- SAX Utilities

      * "escape()"

      * "unescape()"

      * "quoteattr()"

      * "XMLGenerator"

      * "XMLFilterBase"

      * "prepare_input_source()"

    * "xml.sax.xmlreader" --- Interface for XML parsers

      * "XMLReader"

      * "IncrementalParser"

      * "Locator"

      * "InputSource"

      * "AttributesImpl"

      * "AttributesNSImpl"

      * XMLReader Objects

        * "parse()"

        * "getContentHandler()"

        * "setContentHandler()"

        * "getDTDHandler()"

        * "setDTDHandler()"

        * "getEntityResolver()"

        * "setEntityResolver()"

        * "getErrorHandler()"

        * "setErrorHandler()"

        * "setLocale()"

        * "getFeature()"

        * "setFeature()"

        * "getProperty()"

        * "setProperty()"

      * IncrementalParser Objects

        * "feed()"

        * "close()"

        * "reset()"

      * Locator Objects

        * "getColumnNumber()"

        * "getLineNumber()"

        * "getPublicId()"

        * "getSystemId()"

      * InputSource Objects

        * "setPublicId()"

        * "getPublicId()"

        * "setSystemId()"

        * "getSystemId()"

        * "setEncoding()"

        * "getEncoding()"

        * "setByteStream()"

        * "getByteStream()"

        * "setCharacterStream()"

        * "getCharacterStream()"

      * The "Attributes" Interface

        * "getLength()"

        * "getNames()"

        * "getType()"

        * "getValue()"

      * The "AttributesNS" Interface

        * "getValueByQName()"

        * "getNameByQName()"

        * "getQNameByName()"

        * "getQNames()"

    * "xml.parsers.expat" --- Fast XML parsing using Expat

      * "ExpatError"

      * "error"

      * "XMLParserType"

      * "ErrorString()"

      * "ParserCreate()"

      * XMLParser Objects

        * "Parse()"

        * "ParseFile()"

        * "SetBase()"

        * "GetBase()"

        * "GetInputContext()"

        * "ExternalEntityParserCreate()"

        * "SetParamEntityParsing()"

        * "UseForeignDTD()"

        * "SetReparseDeferralEnabled()"

        * "GetReparseDeferralEnabled()"

        * "buffer_size"

        * "buffer_text"

        * "buffer_used"

        * "ordered_attributes"

        * "specified_attributes"

        * "ErrorByteIndex"

        * "ErrorCode"

        * "ErrorColumnNumber"

        * "ErrorLineNumber"

        * "CurrentByteIndex"

        * "CurrentColumnNumber"

        * "CurrentLineNumber"

        * "XmlDeclHandler()"

        * "StartDoctypeDeclHandler()"

        * "EndDoctypeDeclHandler()"

        * "ElementDeclHandler()"

        * "AttlistDeclHandler()"

        * "StartElementHandler()"

        * "EndElementHandler()"

        * "ProcessingInstructionHandler()"

        * "CharacterDataHandler()"

        * "UnparsedEntityDeclHandler()"

        * "EntityDeclHandler()"

        * "NotationDeclHandler()"

        * "StartNamespaceDeclHandler()"

        * "EndNamespaceDeclHandler()"

        * "CommentHandler()"

        * "StartCdataSectionHandler()"

        * "EndCdataSectionHandler()"

        * "DefaultHandler()"

        * "DefaultHandlerExpand()"

        * "NotStandaloneHandler()"

        * "ExternalEntityRefHandler()"

      * ExpatError Exceptions

        * "code"

        * "lineno"

        * "offset"

      * Example

      * Content Model Descriptions

      * Expat error constants

        * "codes"

        * "messages"

        * "XML_ERROR_ASYNC_ENTITY"

        * "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF"

        * "XML_ERROR_BAD_CHAR_REF"

        * "XML_ERROR_BINARY_ENTITY_REF"

        * "XML_ERROR_DUPLICATE_ATTRIBUTE"

        * "XML_ERROR_INCORRECT_ENCODING"

        * "XML_ERROR_INVALID_TOKEN"

        * "XML_ERROR_JUNK_AFTER_DOC_ELEMENT"

        * "XML_ERROR_MISPLACED_XML_PI"

        * "XML_ERROR_NO_ELEMENTS"

        * "XML_ERROR_NO_MEMORY"

        * "XML_ERROR_PARAM_ENTITY_REF"

        * "XML_ERROR_PARTIAL_CHAR"

        * "XML_ERROR_RECURSIVE_ENTITY_REF"

        * "XML_ERROR_SYNTAX"

        * "XML_ERROR_TAG_MISMATCH"

        * "XML_ERROR_UNCLOSED_TOKEN"

        * "XML_ERROR_UNDEFINED_ENTITY"

        * "XML_ERROR_UNKNOWN_ENCODING"

        * "XML_ERROR_UNCLOSED_CDATA_SECTION"

        * "XML_ERROR_EXTERNAL_ENTITY_HANDLING"

        * "XML_ERROR_NOT_STANDALONE"

        * "XML_ERROR_UNEXPECTED_STATE"

        * "XML_ERROR_ENTITY_DECLARED_IN_PE"

        * "XML_ERROR_FEATURE_REQUIRES_XML_DTD"

        * "XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING"

        * "XML_ERROR_UNBOUND_PREFIX"

        * "XML_ERROR_UNDECLARING_PREFIX"

        * "XML_ERROR_INCOMPLETE_PE"

        * "XML_ERROR_XML_DECL"

        * "XML_ERROR_TEXT_DECL"

        * "XML_ERROR_PUBLICID"

        * "XML_ERROR_SUSPENDED"

        * "XML_ERROR_NOT_SUSPENDED"

        * "XML_ERROR_ABORTED"

        * "XML_ERROR_FINISHED"

        * "XML_ERROR_SUSPEND_PE"

        * "XML_ERROR_RESERVED_PREFIX_XML"

        * "XML_ERROR_RESERVED_PREFIX_XMLNS"

        * "XML_ERROR_RESERVED_NAMESPACE_URI"

        * "XML_ERROR_INVALID_ARGUMENT"

        * "XML_ERROR_NO_BUFFER"

        * "XML_ERROR_AMPLIFICATION_LIMIT_BREACH"

  * Internet Protocols and Support

    * "webbrowser" --- Convenient web-browser controller

      * "Error"

      * "open()"

      * "open_new()"

      * "open_new_tab()"

      * "get()"

      * "register()"

      * Browser Controller Objects

        * "name"

        * "open()"

        * "open_new()"

        * "open_new_tab()"

    * "wsgiref" --- WSGI Utilities and Reference Implementation

      * "wsgiref.util" -- WSGI environment utilities

        * "guess_scheme()"

        * "request_uri()"

        * "application_uri()"

        * "shift_path_info()"

        * "setup_testing_defaults()"

        * "is_hop_by_hop()"

        * "FileWrapper"

      * "wsgiref.headers" -- WSGI response header tools

        * "Headers"

          * "get_all()"

          * "add_header()"

      * "wsgiref.simple_server" -- a simple WSGI HTTP server

        * "make_server()"

        * "demo_app()"

        * "WSGIServer"

          * "set_app()"

          * "get_app()"

        * "WSGIRequestHandler"

          * "get_environ()"

          * "get_stderr()"

          * "handle()"

      * "wsgiref.validate" --- WSGI conformance checker

        * "validator()"

      * "wsgiref.handlers" -- server/gateway base classes

        * "CGIHandler"

        * "IISCGIHandler"

        * "BaseCGIHandler"

        * "SimpleHandler"

        * "BaseHandler"

          * "run()"

          * "_write()"

          * "_flush()"

          * "get_stdin()"

          * "get_stderr()"

          * "add_cgi_vars()"

          * "wsgi_multithread"

          * "wsgi_multiprocess"

          * "wsgi_run_once"

          * "os_environ"

          * "server_software"

          * "get_scheme()"

          * "setup_environ()"

          * "log_exception()"

          * "traceback_limit"

          * "error_output()"

          * "error_status"

          * "error_headers"

          * "error_body"

          * "wsgi_file_wrapper"

          * "sendfile()"

          * "origin_server"

          * "http_version"

        * "read_environ()"

      * "wsgiref.types" -- WSGI types for static type checking

        * "StartResponse"

        * "WSGIEnvironment"

        * "WSGIApplication"

        * "InputStream"

        * "ErrorStream"

        * "FileWrapper"

      * Examples

    * "urllib" --- URL handling modules

    * "urllib.request" --- Extensible library for opening URLs

      * "urlopen()"

      * "install_opener()"

      * "build_opener()"

      * "pathname2url()"

      * "url2pathname()"

      * "getproxies()"

      * "Request"

      * "OpenerDirector"

      * "BaseHandler"

      * "HTTPDefaultErrorHandler"

      * "HTTPRedirectHandler"

      * "HTTPCookieProcessor"

      * "ProxyHandler"

      * "HTTPPasswordMgr"

      * "HTTPPasswordMgrWithDefaultRealm"

      * "HTTPPasswordMgrWithPriorAuth"

      * "AbstractBasicAuthHandler"

      * "HTTPBasicAuthHandler"

      * "ProxyBasicAuthHandler"

      * "AbstractDigestAuthHandler"

      * "HTTPDigestAuthHandler"

      * "ProxyDigestAuthHandler"

      * "HTTPHandler"

      * "HTTPSHandler"

      * "FileHandler"

      * "DataHandler"

      * "FTPHandler"

      * "CacheFTPHandler"

      * "UnknownHandler"

      * "HTTPErrorProcessor"

      * Request Objects

        * "full_url"

        * "type"

        * "host"

        * "origin_req_host"

        * "selector"

        * "data"

        * "unverifiable"

        * "method"

        * "get_method()"

        * "add_header()"

        * "add_unredirected_header()"

        * "has_header()"

        * "remove_header()"

        * "get_full_url()"

        * "set_proxy()"

        * "get_header()"

        * "header_items()"

      * OpenerDirector Objects

        * "add_handler()"

        * "open()"

        * "error()"

      * BaseHandler Objects

        * "add_parent()"

        * "close()"

        * "parent"

        * "default_open()"

        * "unknown_open()"

        * "http_error_default()"

      * HTTPRedirectHandler Objects

        * "redirect_request()"

        * "http_error_301()"

        * "http_error_302()"

        * "http_error_303()"

        * "http_error_307()"

        * "http_error_308()"

      * HTTPCookieProcessor Objects

        * "cookiejar"

      * ProxyHandler Objects

      * HTTPPasswordMgr Objects

        * "add_password()"

        * "find_user_password()"

      * HTTPPasswordMgrWithPriorAuth Objects

        * "add_password()"

        * "find_user_password()"

        * "update_authenticated()"

        * "is_authenticated()"

      * AbstractBasicAuthHandler Objects

        * "http_error_auth_reqed()"

      * HTTPBasicAuthHandler Objects

        * "http_error_401()"

      * ProxyBasicAuthHandler Objects

        * "http_error_407()"

      * AbstractDigestAuthHandler Objects

        * "http_error_auth_reqed()"

      * HTTPDigestAuthHandler Objects

        * "http_error_401()"

      * ProxyDigestAuthHandler Objects

        * "http_error_407()"

      * HTTPHandler Objects

        * "http_open()"

      * HTTPSHandler Objects

        * "https_open()"

      * FileHandler Objects

        * "file_open()"

      * DataHandler Objects

        * "data_open()"

      * FTPHandler Objects

        * "ftp_open()"

      * CacheFTPHandler Objects

        * "setTimeout()"

        * "setMaxConns()"

      * UnknownHandler Objects

        * "unknown_open()"

      * HTTPErrorProcessor Objects

        * "http_response()"

        * "https_response()"

      * Examples

      * Legacy interface

        * "urlretrieve()"

        * "urlcleanup()"

        * "URLopener"

          * "open()"

          * "open_unknown()"

          * "retrieve()"

          * "version"

        * "FancyURLopener"

          * "prompt_user_passwd()"

      * "urllib.request" Restrictions

    * "urllib.response" --- Response classes used by urllib

      * "addinfourl"

        * "url"

        * "headers"

        * "status"

        * "geturl()"

        * "info()"

        * "code"

        * "getcode()"

    * "urllib.parse" --- Parse URLs into components

      * URL Parsing

        * "urlparse()"

        * "parse_qs()"

        * "parse_qsl()"

        * "urlunparse()"

        * "urlsplit()"

        * "urlunsplit()"

        * "urljoin()"

        * "urldefrag()"

        * "unwrap()"

      * URL parsing security

      * Parsing ASCII Encoded Bytes

      * Structured Parse Results

        * "geturl()"

        * "DefragResult"

        * "ParseResult"

        * "SplitResult"

        * "DefragResultBytes"

        * "ParseResultBytes"

        * "SplitResultBytes"

      * URL Quoting

        * "quote()"

        * "quote_plus()"

        * "quote_from_bytes()"

        * "unquote()"

        * "unquote_plus()"

        * "unquote_to_bytes()"

        * "urlencode()"

    * "urllib.error" --- Exception classes raised by urllib.request

      * "URLError"

        * "reason"

      * "HTTPError"

        * "url"

        * "code"

        * "reason"

        * "headers"

        * "fp"

      * "ContentTooShortError"

        * "content"

    * "urllib.robotparser" ---  Parser for robots.txt

      * "RobotFileParser"

        * "set_url()"

        * "read()"

        * "parse()"

        * "can_fetch()"

        * "mtime()"

        * "modified()"

        * "crawl_delay()"

        * "request_rate()"

        * "site_maps()"

    * "http" --- HTTP modules

      * "HTTPStatus"

      * HTTP status codes

      * HTTP status category

        * "HTTPMethod"

      * HTTP methods

    * "http.client" --- HTTP protocol client

      * "HTTPConnection"

      * "HTTPSConnection"

      * "HTTPResponse"

      * "parse_headers()"

      * "HTTPException"

      * "NotConnected"

      * "InvalidURL"

      * "UnknownProtocol"

      * "UnknownTransferEncoding"

      * "UnimplementedFileMode"

      * "IncompleteRead"

      * "ImproperConnectionState"

      * "CannotSendRequest"

      * "CannotSendHeader"

      * "ResponseNotReady"

      * "BadStatusLine"

      * "LineTooLong"

      * "RemoteDisconnected"

      * "HTTP_PORT"

      * "HTTPS_PORT"

      * "responses"

      * HTTPConnection Objects

        * "request()"

        * "getresponse()"

        * "set_debuglevel()"

        * "set_tunnel()"

        * "get_proxy_response_headers()"

        * "connect()"

        * "close()"

        * "blocksize"

        * "putrequest()"

        * "putheader()"

        * "endheaders()"

        * "send()"

      * HTTPResponse Objects

        * "read()"

        * "readinto()"

        * "getheader()"

        * "getheaders()"

        * "fileno()"

        * "msg"

        * "version"

        * "url"

        * "headers"

        * "status"

        * "reason"

        * "debuglevel"

        * "closed"

        * "geturl()"

        * "info()"

        * "getcode()"

      * Examples

      * HTTPMessage Objects

        * "HTTPMessage"

    * "ftplib" --- FTP protocol client

      * Reference

        * FTP objects

          * "FTP"

            * "set_debuglevel()"

            * "connect()"

            * "getwelcome()"

            * "login()"

            * "abort()"

            * "sendcmd()"

            * "voidcmd()"

            * "retrbinary()"

            * "retrlines()"

            * "set_pasv()"

            * "storbinary()"

            * "storlines()"

            * "transfercmd()"

            * "ntransfercmd()"

            * "mlsd()"

            * "nlst()"

            * "dir()"

            * "rename()"

            * "delete()"

            * "cwd()"

            * "mkd()"

            * "pwd()"

            * "rmd()"

            * "size()"

            * "quit()"

            * "close()"

        * FTP_TLS objects

          * "FTP_TLS"

            * "ssl_version"

            * "auth()"

            * "ccc()"

            * "prot_p()"

            * "prot_c()"

        * Module variables

          * "error_reply"

          * "error_temp"

          * "error_perm"

          * "error_proto"

          * "all_errors"

    * "poplib" --- POP3 protocol client

      * "POP3"

      * "POP3_SSL"

      * "error_proto"

      * POP3 Objects

        * "set_debuglevel()"

        * "getwelcome()"

        * "capa()"

        * "user()"

        * "pass_()"

        * "apop()"

        * "rpop()"

        * "stat()"

        * "list()"

        * "retr()"

        * "dele()"

        * "rset()"

        * "noop()"

        * "quit()"

        * "top()"

        * "uidl()"

        * "utf8()"

        * "stls()"

      * POP3 Example

    * "imaplib" --- IMAP4 protocol client

      * "IMAP4"

      * "error"

      * "abort"

      * "readonly"

      * "IMAP4_SSL"

      * "IMAP4_stream"

      * "Internaldate2tuple()"

      * "Int2AP()"

      * "ParseFlags()"

      * "Time2Internaldate()"

      * IMAP4 Objects

        * "append()"

        * "authenticate()"

        * "check()"

        * "close()"

        * "copy()"

        * "create()"

        * "delete()"

        * "deleteacl()"

        * "enable()"

        * "expunge()"

        * "fetch()"

        * "getacl()"

        * "getannotation()"

        * "getquota()"

        * "getquotaroot()"

        * "list()"

        * "login()"

        * "login_cram_md5()"

        * "logout()"

        * "lsub()"

        * "myrights()"

        * "namespace()"

        * "noop()"

        * "open()"

        * "partial()"

        * "proxyauth()"

        * "read()"

        * "readline()"

        * "recent()"

        * "rename()"

        * "response()"

        * "search()"

        * "select()"

        * "send()"

        * "setacl()"

        * "setannotation()"

        * "setquota()"

        * "shutdown()"

        * "socket()"

        * "sort()"

        * "starttls()"

        * "status()"

        * "store()"

        * "subscribe()"

        * "thread()"

        * "uid()"

        * "unsubscribe()"

        * "unselect()"

        * "xatom()"

        * "PROTOCOL_VERSION"

        * "debug"

        * "utf8_enabled"

      * IMAP4 Example

    * "smtplib" --- SMTP protocol client

      * "SMTP"

      * "SMTP_SSL"

      * "LMTP"

      * "SMTPException"

      * "SMTPServerDisconnected"

      * "SMTPResponseException"

      * "SMTPSenderRefused"

      * "SMTPRecipientsRefused"

      * "SMTPDataError"

      * "SMTPConnectError"

      * "SMTPHeloError"

      * "SMTPNotSupportedError"

      * "SMTPAuthenticationError"

      * SMTP Objects

        * "set_debuglevel()"

        * "docmd()"

        * "connect()"

        * "helo()"

        * "ehlo()"

        * "ehlo_or_helo_if_needed()"

        * "has_extn()"

        * "verify()"

        * "login()"

        * "auth()"

        * "starttls()"

        * "sendmail()"

        * "send_message()"

        * "quit()"

      * SMTP Example

    * "uuid" --- UUID objects according to **RFC 4122**

      * "SafeUUID"

        * "safe"

        * "unsafe"

        * "unknown"

      * "UUID"

      * "bytes"

      * "bytes_le"

      * "fields"

      * "time_low"

      * "time_mid"

      * "time_hi_version"

      * "clock_seq_hi_variant"

      * "clock_seq_low"

      * "node"

      * "time"

      * "clock_seq"

      * "hex"

      * "int"

      * "urn"

      * "variant"

      * "version"

      * "is_safe"

      * "getnode()"

      * "uuid1()"

      * "uuid3()"

      * "uuid4()"

      * "uuid5()"

      * "NAMESPACE_DNS"

      * "NAMESPACE_URL"

      * "NAMESPACE_OID"

      * "NAMESPACE_X500"

      * "RESERVED_NCS"

      * "RFC_4122"

      * "RESERVED_MICROSOFT"

      * "RESERVED_FUTURE"

      * Command-Line Usage

      * Example

      * Command-Line Example

    * "socketserver" --- A framework for network servers

      * "TCPServer"

      * "UDPServer"

      * "UnixStreamServer"

      * "UnixDatagramServer"

      * Server Creation Notes

        * "ForkingMixIn"

        * "ThreadingMixIn"

          * "block_on_close"

          * "daemon_threads"

        * "ForkingTCPServer"

        * "ForkingUDPServer"

        * "ThreadingTCPServer"

        * "ThreadingUDPServer"

        * "ForkingUnixStreamServer"

        * "ForkingUnixDatagramServer"

        * "ThreadingUnixStreamServer"

        * "ThreadingUnixDatagramServer"

      * Server Objects

        * "BaseServer"

          * "fileno()"

          * "handle_request()"

          * "serve_forever()"

          * "service_actions()"

          * "shutdown()"

          * "server_close()"

          * "address_family"

          * "RequestHandlerClass"

          * "server_address"

          * "socket"

          * "allow_reuse_address"

          * "request_queue_size"

          * "socket_type"

          * "timeout"

          * "finish_request()"

          * "get_request()"

          * "handle_error()"

          * "handle_timeout()"

          * "process_request()"

          * "server_activate()"

          * "server_bind()"

          * "verify_request()"

      * Request Handler Objects

        * "BaseRequestHandler"

          * "setup()"

          * "handle()"

          * "finish()"

          * "request"

          * "client_address"

          * "server"

        * "StreamRequestHandler"

        * "DatagramRequestHandler"

          * "rfile"

          * "wfile"

      * Examples

        * "socketserver.TCPServer" Example

        * "socketserver.UDPServer" Example

        * Asynchronous Mixins

    * "http.server" --- HTTP servers

      * "HTTPServer"

      * "ThreadingHTTPServer"

      * "BaseHTTPRequestHandler"

        * "client_address"

        * "server"

        * "close_connection"

        * "requestline"

        * "command"

        * "path"

        * "request_version"

        * "headers"

        * "rfile"

        * "wfile"

        * "server_version"

        * "sys_version"

        * "error_message_format"

        * "error_content_type"

        * "protocol_version"

        * "MessageClass"

        * "responses"

        * "handle()"

        * "handle_one_request()"

        * "handle_expect_100()"

        * "send_error()"

        * "send_response()"

        * "send_header()"

        * "send_response_only()"

        * "end_headers()"

        * "flush_headers()"

        * "log_request()"

        * "log_error()"

        * "log_message()"

        * "version_string()"

        * "date_time_string()"

        * "log_date_time_string()"

        * "address_string()"

      * "SimpleHTTPRequestHandler"

        * "server_version"

        * "extensions_map"

        * "do_HEAD()"

        * "do_GET()"

      * "CGIHTTPRequestHandler"

        * "cgi_directories"

        * "do_POST()"

      * Security Considerations

    * "http.cookies" --- HTTP state management

      * "CookieError"

      * "BaseCookie"

      * "SimpleCookie"

      * Cookie Objects

        * "value_decode()"

        * "value_encode()"

        * "output()"

        * "js_output()"

        * "load()"

      * Morsel Objects

        * "Morsel"

          * "expires"

          * "path"

          * "comment"

          * "domain"

          * "secure"

          * "version"

          * "httponly"

          * "samesite"

        * "value"

        * "coded_value"

        * "key"

        * "set()"

        * "isReservedKey()"

        * "output()"

        * "js_output()"

        * "OutputString()"

        * "update()"

        * "copy()"

        * "setdefault()"

      * Example

    * "http.cookiejar" --- Cookie handling for HTTP clients

      * "LoadError"

      * "CookieJar"

      * "FileCookieJar"

      * "CookiePolicy"

      * "DefaultCookiePolicy"

      * "Cookie"

      * CookieJar and FileCookieJar Objects

        * "add_cookie_header()"

        * "extract_cookies()"

        * "set_policy()"

        * "make_cookies()"

        * "set_cookie_if_ok()"

        * "set_cookie()"

        * "clear()"

        * "clear_session_cookies()"

        * "save()"

        * "load()"

        * "revert()"

        * "filename"

        * "delayload"

      * FileCookieJar subclasses and co-operation with web browsers

        * "MozillaCookieJar"

        * "LWPCookieJar"

      * CookiePolicy Objects

        * "set_ok()"

        * "return_ok()"

        * "domain_return_ok()"

        * "path_return_ok()"

        * "netscape"

        * "rfc2965"

        * "hide_cookie2"

      * DefaultCookiePolicy Objects

        * "blocked_domains()"

        * "set_blocked_domains()"

        * "is_blocked()"

        * "allowed_domains()"

        * "set_allowed_domains()"

        * "is_not_allowed()"

        * "rfc2109_as_netscape"

        * "strict_domain"

        * "strict_rfc2965_unverifiable"

        * "strict_ns_unverifiable"

        * "strict_ns_domain"

        * "strict_ns_set_initial_dollar"

        * "strict_ns_set_path"

        * "DomainStrictNoDots"

        * "DomainStrictNonDomain"

        * "DomainRFC2965Match"

        * "DomainLiberal"

        * "DomainStrict"

      * Cookie Objects

        * "version"

        * "name"

        * "value"

        * "port"

        * "domain"

        * "path"

        * "secure"

        * "expires"

        * "discard"

        * "comment"

        * "comment_url"

        * "rfc2109"

        * "port_specified"

        * "domain_specified"

        * "domain_initial_dot"

        * "has_nonstandard_attr()"

        * "get_nonstandard_attr()"

        * "set_nonstandard_attr()"

        * "is_expired()"

      * Examples

    * "xmlrpc" --- XMLRPC server and client modules

    * "xmlrpc.client" --- XML-RPC client access

      * "ServerProxy"

      * ServerProxy Objects

        * "listMethods()"

        * "methodSignature()"

        * "methodHelp()"

      * DateTime Objects

        * "DateTime"

          * "decode()"

          * "encode()"

      * Binary Objects

        * "Binary"

          * "data"

          * "decode()"

          * "encode()"

      * Fault Objects

        * "Fault"

          * "faultCode"

          * "faultString"

      * ProtocolError Objects

        * "ProtocolError"

          * "url"

          * "errcode"

          * "errmsg"

          * "headers"

      * MultiCall Objects

        * "MultiCall"

      * Convenience Functions

        * "dumps()"

        * "loads()"

      * Example of Client Usage

      * Example of Client and Server Usage

    * "xmlrpc.server" --- Basic XML-RPC servers

      * "SimpleXMLRPCServer"

      * "CGIXMLRPCRequestHandler"

      * "SimpleXMLRPCRequestHandler"

      * SimpleXMLRPCServer Objects

        * "register_function()"

        * "register_instance()"

        * "register_introspection_functions()"

        * "register_multicall_functions()"

        * "rpc_paths"

        * SimpleXMLRPCServer Example

      * CGIXMLRPCRequestHandler

        * "register_function()"

        * "register_instance()"

        * "register_introspection_functions()"

        * "register_multicall_functions()"

        * "handle_request()"

      * Documenting XMLRPC server

        * "DocXMLRPCServer"

        * "DocCGIXMLRPCRequestHandler"

        * "DocXMLRPCRequestHandler"

      * DocXMLRPCServer Objects

        * "set_server_title()"

        * "set_server_name()"

        * "set_server_documentation()"

      * DocCGIXMLRPCRequestHandler

        * "set_server_title()"

        * "set_server_name()"

        * "set_server_documentation()"

    * "ipaddress" --- IPv4/IPv6 manipulation library

      * Convenience factory functions

        * "ip_address()"

        * "ip_network()"

        * "ip_interface()"

      * IP Addresses

        * Address objects

          * "IPv4Address"

            * "version"

            * "max_prefixlen"

            * "compressed"

            * "exploded"

            * "packed"

            * "reverse_pointer"

            * "is_multicast"

            * "is_private"

            * "is_global"

            * "is_unspecified"

            * "is_reserved"

            * "is_loopback"

            * "is_link_local"

          * "__format__()"

          * "IPv6Address"

            * "compressed"

            * "exploded"

            * "packed"

            * "reverse_pointer"

            * "version"

            * "max_prefixlen"

            * "is_multicast"

            * "is_private"

            * "is_global"

            * "is_unspecified"

            * "is_reserved"

            * "is_loopback"

            * "is_link_local"

            * "is_site_local"

            * "ipv4_mapped"

            * "scope_id"

            * "sixtofour"

            * "teredo"

          * "__format__()"

        * Conversion to Strings and Integers

        * Operators

          * Comparison operators

          * Arithmetic operators

      * IP Network definitions

        * Prefix, net mask and host mask

        * Network objects

          * "IPv4Network"

            * "version"

            * "max_prefixlen"

            * "is_multicast"

            * "is_private"

            * "is_unspecified"

            * "is_reserved"

            * "is_loopback"

            * "is_link_local"

            * "network_address"

            * "broadcast_address"

            * "hostmask"

            * "netmask"

            * "with_prefixlen"

            * "compressed"

            * "exploded"

            * "with_netmask"

            * "with_hostmask"

            * "num_addresses"

            * "prefixlen"

            * "hosts()"

            * "overlaps()"

            * "address_exclude()"

            * "subnets()"

            * "supernet()"

            * "subnet_of()"

            * "supernet_of()"

            * "compare_networks()"

          * "IPv6Network"

            * "version"

            * "max_prefixlen"

            * "is_multicast"

            * "is_private"

            * "is_unspecified"

            * "is_reserved"

            * "is_loopback"

            * "is_link_local"

            * "network_address"

            * "broadcast_address"

            * "hostmask"

            * "netmask"

            * "with_prefixlen"

            * "compressed"

            * "exploded"

            * "with_netmask"

            * "with_hostmask"

            * "num_addresses"

            * "prefixlen"

            * "hosts()"

            * "overlaps()"

            * "address_exclude()"

            * "subnets()"

            * "supernet()"

            * "subnet_of()"

            * "supernet_of()"

            * "compare_networks()"

            * "is_site_local"

        * Operators

          * Logical operators

          * Iteration

          * Networks as containers of addresses

      * Interface objects

        * "IPv4Interface"

          * "ip"

          * "network"

          * "with_prefixlen"

          * "with_netmask"

          * "with_hostmask"

        * "IPv6Interface"

          * "ip"

          * "network"

          * "with_prefixlen"

          * "with_netmask"

          * "with_hostmask"

        * Operators

          * Logical operators

      * Other Module Level Functions

        * "v4_int_to_packed()"

        * "v6_int_to_packed()"

        * "summarize_address_range()"

        * "collapse_addresses()"

        * "get_mixed_type_key()"

      * Custom Exceptions

        * "AddressValueError"

        * "NetmaskValueError"

  * Multimedia Services

    * "wave" --- Read and write WAV files

      * "open()"

      * "Error"

      * Wave_read Objects

        * "Wave_read"

          * "close()"

          * "getnchannels()"

          * "getsampwidth()"

          * "getframerate()"

          * "getnframes()"

          * "getcomptype()"

          * "getcompname()"

          * "getparams()"

          * "readframes()"

          * "rewind()"

          * "getmarkers()"

          * "getmark()"

          * "setpos()"

          * "tell()"

      * Wave_write Objects

        * "Wave_write"

          * "close()"

          * "setnchannels()"

          * "setsampwidth()"

          * "setframerate()"

          * "setnframes()"

          * "setcomptype()"

          * "setparams()"

          * "tell()"

          * "writeframesraw()"

          * "writeframes()"

    * "colorsys" --- Conversions between color systems

      * "rgb_to_yiq()"

      * "yiq_to_rgb()"

      * "rgb_to_hls()"

      * "hls_to_rgb()"

      * "rgb_to_hsv()"

      * "hsv_to_rgb()"

  * Internationalization

    * "gettext" --- Multilingual internationalization services

      * GNU **gettext** API

        * "bindtextdomain()"

        * "textdomain()"

        * "gettext()"

        * "dgettext()"

        * "ngettext()"

        * "dngettext()"

        * "pgettext()"

        * "dpgettext()"

        * "npgettext()"

        * "dnpgettext()"

      * Class-based API

        * "find()"

        * "translation()"

        * "install()"

        * The "NullTranslations" class

          * "NullTranslations"

            * "_parse()"

            * "add_fallback()"

            * "gettext()"

            * "ngettext()"

            * "pgettext()"

            * "npgettext()"

            * "info()"

            * "charset()"

            * "install()"

        * The "GNUTranslations" class

          * "GNUTranslations"

            * "gettext()"

            * "ngettext()"

            * "pgettext()"

            * "npgettext()"

        * 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

      * "Error"

      * "setlocale()"

      * "localeconv()"

      * "nl_langinfo()"

        * "CODESET"

        * "D_T_FMT"

        * "D_FMT"

        * "T_FMT"

        * "T_FMT_AMPM"

        * "DAY_1"

        * "DAY_2"

        * "DAY_3"

        * "DAY_4"

        * "DAY_5"

        * "DAY_6"

        * "DAY_7"

        * "ABDAY_1"

        * "ABDAY_2"

        * "ABDAY_3"

        * "ABDAY_4"

        * "ABDAY_5"

        * "ABDAY_6"

        * "ABDAY_7"

        * "MON_1"

        * "MON_2"

        * "MON_3"

        * "MON_4"

        * "MON_5"

        * "MON_6"

        * "MON_7"

        * "MON_8"

        * "MON_9"

        * "MON_10"

        * "MON_11"

        * "MON_12"

        * "ABMON_1"

        * "ABMON_2"

        * "ABMON_3"

        * "ABMON_4"

        * "ABMON_5"

        * "ABMON_6"

        * "ABMON_7"

        * "ABMON_8"

        * "ABMON_9"

        * "ABMON_10"

        * "ABMON_11"

        * "ABMON_12"

        * "RADIXCHAR"

        * "THOUSEP"

        * "YESEXPR"

        * "NOEXPR"

        * "CRNCYSTR"

        * "ERA"

        * "ERA_D_T_FMT"

        * "ERA_D_FMT"

        * "ERA_T_FMT"

        * "ALT_DIGITS"

      * "getdefaultlocale()"

      * "getlocale()"

      * "getpreferredencoding()"

      * "getencoding()"

      * "normalize()"

      * "resetlocale()"

      * "strcoll()"

      * "strxfrm()"

      * "format_string()"

      * "currency()"

      * "str()"

      * "delocalize()"

      * "localize()"

      * "atof()"

      * "atoi()"

      * "LC_CTYPE"

      * "LC_COLLATE"

      * "LC_TIME"

      * "LC_MONETARY"

      * "LC_MESSAGES"

      * "LC_NUMERIC"

      * "LC_ALL"

      * "CHAR_MAX"

      * Background, details, hints, tips and caveats

      * For extension writers and programs that embed Python

      * Access to message catalogs

        * "gettext()"

        * "dgettext()"

        * "dcgettext()"

        * "textdomain()"

        * "bindtextdomain()"

        * "bind_textdomain_codeset()"

  * Program Frameworks

    * "turtle" --- Turtle graphics

      * Introduction

      * Tutorial

        * Starting a turtle environment

        * Basic drawing

          * Pen control

          * The turtle's position

        * Making algorithmic patterns

      * How to...

        * Get started as quickly as possible

        * Use the "turtle" module namespace

        * Use turtle graphics in a script

        * Use object-oriented turtle graphics

      * Turtle graphics reference

        * Turtle methods

        * Methods of TurtleScreen/Screen

      * Methods of RawTurtle/Turtle and corresponding functions

        * Turtle motion

          * "forward()"

          * "fd()"

          * "back()"

          * "bk()"

          * "backward()"

          * "right()"

          * "rt()"

          * "left()"

          * "lt()"

          * "goto()"

          * "setpos()"

          * "setposition()"

          * "teleport()"

          * "setx()"

          * "sety()"

          * "setheading()"

          * "seth()"

          * "home()"

          * "circle()"

          * "dot()"

          * "stamp()"

          * "clearstamp()"

          * "clearstamps()"

          * "undo()"

          * "speed()"

        * Tell Turtle's state

          * "position()"

          * "pos()"

          * "towards()"

          * "xcor()"

          * "ycor()"

          * "heading()"

          * "distance()"

        * Settings for measurement

          * "degrees()"

          * "radians()"

        * Pen control

          * Drawing state

            * "pendown()"

            * "pd()"

            * "down()"

            * "penup()"

            * "pu()"

            * "up()"

            * "pensize()"

            * "width()"

            * "pen()"

            * "isdown()"

          * Color control

            * "pencolor()"

            * "fillcolor()"

            * "color()"

          * Filling

            * "filling()"

            * "begin_fill()"

            * "end_fill()"

          * More drawing control

            * "reset()"

            * "clear()"

            * "write()"

        * Turtle state

          * Visibility

            * "hideturtle()"

            * "ht()"

            * "showturtle()"

            * "st()"

            * "isvisible()"

          * Appearance

            * "shape()"

            * "resizemode()"

            * "shapesize()"

            * "turtlesize()"

            * "shearfactor()"

            * "tilt()"

            * "settiltangle()"

            * "tiltangle()"

            * "shapetransform()"

            * "get_shapepoly()"

        * Using events

          * "onrelease()"

          * "ondrag()"

        * Special Turtle methods

          * "begin_poly()"

          * "end_poly()"

          * "get_poly()"

          * "clone()"

          * "getturtle()"

          * "getpen()"

          * "getscreen()"

          * "setundobuffer()"

          * "undobufferentries()"

        * Compound shapes

      * Methods of TurtleScreen/Screen and corresponding functions

        * Window control

          * "bgcolor()"

          * "bgpic()"

          * "clearscreen()"

          * "resetscreen()"

          * "screensize()"

          * "setworldcoordinates()"

        * Animation control

          * "delay()"

          * "tracer()"

          * "update()"

        * Using screen events

          * "listen()"

          * "onkey()"

          * "onkeyrelease()"

          * "onkeypress()"

          * "onclick()"

          * "onscreenclick()"

          * "ontimer()"

          * "mainloop()"

          * "done()"

        * Input methods

          * "textinput()"

          * "numinput()"

        * Settings and special methods

          * "mode()"

          * "colormode()"

          * "getcanvas()"

          * "getshapes()"

          * "register_shape()"

          * "addshape()"

          * "turtles()"

          * "window_height()"

          * "window_width()"

        * Methods specific to Screen, not inherited from TurtleScreen

          * "bye()"

          * "exitonclick()"

          * "setup()"

          * "title()"

      * Public classes

        * "RawTurtle"

        * "RawPen"

        * "Turtle"

        * "TurtleScreen"

        * "Screen"

        * "ScrolledCanvas"

        * "Shape"

          * "addcomponent()"

        * "Vec2D"

      * Explanation

      * Help and configuration

        * How to use help

        * Translation of docstrings into different languages

          * "write_docstringdict()"

        * 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"

      * Cmd Objects

        * "cmdloop()"

        * "do_help()"

        * "onecmd()"

        * "emptyline()"

        * "default()"

        * "completedefault()"

        * "columnize()"

        * "precmd()"

        * "postcmd()"

        * "preloop()"

        * "postloop()"

        * "prompt"

        * "identchars"

        * "lastcmd"

        * "cmdqueue"

        * "intro"

        * "doc_header"

        * "misc_header"

        * "undoc_header"

        * "ruler"

        * "use_rawinput"

      * Cmd Example

    * "shlex" --- Simple lexical analysis

      * "split()"

      * "join()"

      * "quote()"

      * "shlex"

      * shlex Objects

        * "get_token()"

        * "push_token()"

        * "read_token()"

        * "sourcehook()"

        * "push_source()"

        * "pop_source()"

        * "error_leader()"

        * "commenters"

        * "wordchars"

        * "whitespace"

        * "escape"

        * "quotes"

        * "escapedquotes"

        * "whitespace_split"

        * "infile"

        * "instream"

        * "source"

        * "debug"

        * "lineno"

        * "token"

        * "eof"

        * "punctuation_chars"

      * Parsing Rules

      * Improved Compatibility with Shells

  * Graphical User Interfaces with Tk

    * "tkinter" --- Python interface to Tcl/Tk

      * Architecture

      * Tkinter Modules

        * "Tk"

          * "tk"

          * "master"

          * "children"

        * "Tcl()"

      * Tkinter Life Preserver

        * A Hello World Program

        * Important Tk Concepts

        * Understanding How Tkinter Wraps Tcl/Tk

        * How do I...? What option does...?

        * Navigating the Tcl/Tk Reference Manual

      * Threading model

      * 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

        * "createfilehandler()"

        * "deletefilehandler()"

        * "READABLE"

        * "WRITABLE"

        * "EXCEPTION"

    * "tkinter.colorchooser" --- Color choosing dialog

      * "Chooser"

      * "askcolor()"

    * "tkinter.font" --- Tkinter font wrapper

      * "NORMAL"

      * "BOLD"

      * "ITALIC"

      * "ROMAN"

      * "Font"

        * "actual()"

        * "cget()"

        * "config()"

        * "copy()"

        * "measure()"

        * "metrics()"

      * "families()"

      * "names()"

      * "nametofont()"

    * Tkinter Dialogs

      * "tkinter.simpledialog" --- Standard Tkinter input dialogs

        * "askfloat()"

        * "askinteger()"

        * "askstring()"

        * "Dialog"

          * "body()"

          * "buttonbox()"

      * "tkinter.filedialog" --- File selection dialogs

        * Native Load/Save Dialogs

          * "askopenfile()"

          * "askopenfiles()"

          * "asksaveasfile()"

          * "askopenfilename()"

          * "askopenfilenames()"

          * "asksaveasfilename()"

          * "askdirectory()"

          * "Open"

          * "SaveAs"

          * "Directory"

          * "FileDialog"

            * "cancel_command()"

            * "dirs_double_event()"

            * "dirs_select_event()"

            * "files_double_event()"

            * "files_select_event()"

            * "filter_command()"

            * "get_filter()"

            * "get_selection()"

            * "go()"

            * "ok_event()"

            * "quit()"

            * "set_filter()"

            * "set_selection()"

          * "LoadFileDialog"

            * "ok_command()"

          * "SaveFileDialog"

            * "ok_command()"

      * "tkinter.commondialog" --- Dialog window templates

        * "Dialog"

          * "show()"

    * "tkinter.messagebox" --- Tkinter message prompts

      * "Message"

        * "show()"

      * "showinfo()"

      * "showwarning()"

      * "showerror()"

      * "askquestion()"

      * "askokcancel()"

      * "askretrycancel()"

      * "askyesno()"

      * "askyesnocancel()"

      * "ABORT"

      * "RETRY"

      * "IGNORE"

      * "OK"

      * "CANCEL"

      * "YES"

      * "NO"

      * "ABORTRETRYIGNORE"

      * "OKCANCEL"

      * "RETRYCANCEL"

      * "YESNO"

      * "YESNOCANCEL"

      * "ERROR"

      * "INFO"

      * "QUESTION"

      * "WARNING"

    * "tkinter.scrolledtext" --- Scrolled Text Widget

      * "ScrolledText"

        * "frame"

        * "vbar"

    * "tkinter.dnd" --- Drag and drop support

      * "DndHandler"

        * "cancel()"

        * "finish()"

        * "on_motion()"

        * "on_release()"

      * "dnd_start()"

    * "tkinter.ttk" --- Tk themed widgets

      * Using Ttk

      * Ttk Widgets

      * Widget

        * Standard Options

        * Scrollable Widget Options

        * Label Options

        * Compatibility Options

        * Widget States

        * ttk.Widget

          * "Widget"

            * "identify()"

            * "instate()"

            * "state()"

      * Combobox

        * Options

        * Virtual events

        * ttk.Combobox

          * "Combobox"

            * "current()"

            * "get()"

            * "set()"

      * Spinbox

        * Options

        * Virtual events

        * ttk.Spinbox

          * "Spinbox"

            * "get()"

            * "set()"

      * Notebook

        * Options

        * Tab Options

        * Tab Identifiers

        * Virtual Events

        * ttk.Notebook

          * "Notebook"

            * "add()"

            * "forget()"

            * "hide()"

            * "identify()"

            * "index()"

            * "insert()"

            * "select()"

            * "tab()"

            * "tabs()"

            * "enable_traversal()"

      * Progressbar

        * Options

        * ttk.Progressbar

          * "Progressbar"

            * "start()"

            * "step()"

            * "stop()"

      * Separator

        * Options

      * Sizegrip

        * Platform-specific notes

        * Bugs

      * Treeview

        * Options

        * Item Options

        * Tag Options

        * Column Identifiers

        * Virtual Events

        * ttk.Treeview

          * "Treeview"

            * "bbox()"

            * "get_children()"

            * "set_children()"

            * "column()"

            * "delete()"

            * "detach()"

            * "exists()"

            * "focus()"

            * "heading()"

            * "identify()"

            * "identify_row()"

            * "identify_column()"

            * "identify_region()"

            * "identify_element()"

            * "index()"

            * "insert()"

            * "item()"

            * "move()"

            * "next()"

            * "parent()"

            * "prev()"

            * "reattach()"

            * "see()"

            * "selection()"

            * "selection_set()"

            * "selection_add()"

            * "selection_remove()"

            * "selection_toggle()"

            * "set()"

            * "tag_bind()"

            * "tag_configure()"

            * "tag_has()"

            * "xview()"

            * "yview()"

      * Ttk Styling

        * "Style"

          * "configure()"

          * "map()"

          * "lookup()"

          * "layout()"

          * "element_create()"

          * "element_names()"

          * "element_options()"

          * "theme_create()"

          * "theme_settings()"

          * "theme_names()"

          * "theme_use()"

        * Layouts

    * "tkinter.tix" --- Extension widgets for Tk

      * Using Tix

        * "Tk"

      * Tix Widgets

        * Basic Widgets

          * "Balloon"

          * "ButtonBox"

          * "ComboBox"

          * "Control"

          * "LabelEntry"

          * "LabelFrame"

          * "Meter"

          * "OptionMenu"

          * "PopupMenu"

          * "Select"

          * "StdButtonBox"

        * File Selectors

          * "DirList"

          * "DirTree"

          * "DirSelectDialog"

          * "DirSelectBox"

          * "ExFileSelectBox"

          * "FileSelectBox"

          * "FileEntry"

        * Hierarchical ListBox

          * "HList"

          * "CheckList"

          * "Tree"

        * Tabular ListBox

          * "TList"

        * Manager Widgets

          * "PanedWindow"

          * "ListNoteBook"

          * "NoteBook"

        * Image Types

        * Miscellaneous Widgets

          * "InputOnly"

        * Form Geometry Manager

          * "Form"

      * Tix Commands

        * "tixCommand"

        * "tix_configure()"

        * "tix_cget()"

        * "tix_getbitmap()"

        * "tix_addbitmapdir()"

        * "tix_filedialog()"

        * "tix_getimage()"

        * "tix_option_get()"

        * "tix_resetoptions()"

    * 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

        * Search and Replace

        * Completions

        * Calltips

        * Code Context

        * 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

      * idlelib

  * Development Tools

    * "typing" --- Support for type hints

      * Specification for the Python Type System

      * Type aliases

      * NewType

      * Annotating callable objects

      * Generics

      * Annotating tuples

      * The type of class objects

      * Annotating generators and coroutines

      * User-defined generic types

      * The "Any" type

      * Nominal vs structural subtyping

      * Module contents

        * Special typing primitives

          * Special types

            * "Any"

            * "AnyStr"

            * "LiteralString"

            * "Never"

            * "NoReturn"

            * "Self"

            * "TypeAlias"

          * Special forms

            * "Union"

            * "Optional"

            * "Concatenate"

            * "Literal"

            * "ClassVar"

            * "Final"

            * "Required"

            * "NotRequired"

            * "Annotated"

            * "TypeGuard"

            * "Unpack"

          * Building generic types and type aliases

            * "Generic"

            * "TypeVar"

              * "__name__"

              * "__covariant__"

              * "__contravariant__"

              * "__infer_variance__"

              * "__bound__"

              * "__constraints__"

            * "TypeVarTuple"

              * "__name__"

            * "ParamSpec"

              * "args"

              * "kwargs"

              * "__name__"

            * "ParamSpecArgs"

            * "ParamSpecKwargs"

            * "TypeAliasType"

              * "__name__"

              * "__module__"

              * "__type_params__"

              * "__value__"

          * Other special directives

            * "NamedTuple"

            * "NewType"

              * "__module__"

              * "__name__"

              * "__supertype__"

            * "Protocol"

            * "runtime_checkable()"

            * "TypedDict"

              * "__total__"

              * "__required_keys__"

              * "__optional_keys__"

        * Protocols

          * "SupportsAbs"

          * "SupportsBytes"

          * "SupportsComplex"

          * "SupportsFloat"

          * "SupportsIndex"

          * "SupportsInt"

          * "SupportsRound"

        * ABCs for working with IO

          * "IO"

          * "TextIO"

          * "BinaryIO"

        * Functions and decorators

          * "cast()"

          * "assert_type()"

          * "assert_never()"

          * "reveal_type()"

          * "dataclass_transform()"

          * "overload()"

          * "get_overloads()"

          * "clear_overloads()"

          * "final()"

          * "no_type_check()"

          * "no_type_check_decorator()"

          * "override()"

          * "type_check_only()"

        * Introspection helpers

          * "get_type_hints()"

          * "get_origin()"

          * "get_args()"

          * "is_typeddict()"

          * "ForwardRef"

        * Constant

          * "TYPE_CHECKING"

        * Deprecated aliases

          * Aliases to built-in types

            * "Dict"

            * "List"

            * "Set"

            * "FrozenSet"

            * "Tuple"

            * "Type"

          * Aliases to types in "collections"

            * "DefaultDict"

            * "OrderedDict"

            * "ChainMap"

            * "Counter"

            * "Deque"

          * Aliases to other concrete types

            * "Pattern"

            * "Match"

            * "Text"

          * Aliases to container ABCs in "collections.abc"

            * "AbstractSet"

            * "ByteString"

            * "Collection"

            * "Container"

            * "ItemsView"

            * "KeysView"

            * "Mapping"

            * "MappingView"

            * "MutableMapping"

            * "MutableSequence"

            * "MutableSet"

            * "Sequence"

            * "ValuesView"

          * Aliases to asynchronous ABCs in "collections.abc"

            * "Coroutine"

            * "AsyncGenerator"

            * "AsyncIterable"

            * "AsyncIterator"

            * "Awaitable"

          * Aliases to other ABCs in "collections.abc"

            * "Iterable"

            * "Iterator"

            * "Callable"

            * "Generator"

            * "Hashable"

            * "Reversible"

            * "Sized"

          * Aliases to "contextlib" ABCs

            * "ContextManager"

            * "AsyncContextManager"

      * Deprecation Timeline of Major Features

    * "pydoc" --- Documentation generator and online help system

    * Python Development Mode

      * Effects of the Python Development Mode

      * ResourceWarning Example

      * Bad file descriptor error example

    * "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

          * "DONT_ACCEPT_TRUE_FOR_1"

          * "DONT_ACCEPT_BLANKLINE"

          * "NORMALIZE_WHITESPACE"

          * "ELLIPSIS"

          * "IGNORE_EXCEPTION_DETAIL"

          * "SKIP"

          * "COMPARISON_FLAGS"

          * "REPORT_UDIFF"

          * "REPORT_CDIFF"

          * "REPORT_NDIFF"

          * "REPORT_ONLY_FIRST_FAILURE"

          * "FAIL_FAST"

          * "REPORTING_FLAGS"

          * "register_optionflag()"

        * Directives

        * Warnings

      * Basic API

        * "testfile()"

        * "testmod()"

        * "run_docstring_examples()"

      * Unittest API

        * "DocFileSuite()"

        * "DocTestSuite()"

        * "failureException"

        * "set_unittest_reportflags()"

      * Advanced API

        * DocTest Objects

          * "DocTest"

            * "examples"

            * "globs"

            * "name"

            * "filename"

            * "lineno"

            * "docstring"

        * Example Objects

          * "Example"

            * "source"

            * "want"

            * "exc_msg"

            * "lineno"

            * "indent"

            * "options"

        * DocTestFinder objects

          * "DocTestFinder"

            * "find()"

        * DocTestParser objects

          * "DocTestParser"

            * "get_doctest()"

            * "get_examples()"

            * "parse()"

        * DocTestRunner objects

          * "DocTestRunner"

            * "report_start()"

            * "report_success()"

            * "report_failure()"

            * "report_unexpected_exception()"

            * "run()"

            * "summarize()"

        * OutputChecker objects

          * "OutputChecker"

            * "check_output()"

            * "output_difference()"

      * Debugging

        * "script_from_examples()"

        * "testsource()"

        * "debug()"

        * "debug_src()"

        * "DebugRunner"

        * "DocTestFailure"

        * "test"

        * "example"

        * "got"

        * "UnexpectedException"

        * "test"

        * "example"

        * "exc_info"

      * 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

        * "skip()"

        * "skipIf()"

        * "skipUnless()"

        * "expectedFailure()"

        * "SkipTest"

      * Distinguishing test iterations using subtests

      * Classes and functions

        * Test cases

          * "TestCase"

            * "setUp()"

            * "tearDown()"

            * "setUpClass()"

            * "tearDownClass()"

            * "run()"

            * "skipTest()"

            * "subTest()"

            * "debug()"

            * "assertEqual()"

            * "assertNotEqual()"

            * "assertTrue()"

            * "assertFalse()"

            * "assertIs()"

            * "assertIsNot()"

            * "assertIsNone()"

            * "assertIsNotNone()"

            * "assertIn()"

            * "assertNotIn()"

            * "assertIsInstance()"

            * "assertNotIsInstance()"

            * "assertRaises()"

            * "assertRaisesRegex()"

            * "assertWarns()"

            * "assertWarnsRegex()"

            * "assertLogs()"

              * "records"

              * "output"

            * "assertNoLogs()"

            * "assertAlmostEqual()"

            * "assertNotAlmostEqual()"

            * "assertGreater()"

            * "assertGreaterEqual()"

            * "assertLess()"

            * "assertLessEqual()"

            * "assertRegex()"

            * "assertNotRegex()"

            * "assertCountEqual()"

            * "addTypeEqualityFunc()"

            * "assertMultiLineEqual()"

            * "assertSequenceEqual()"

            * "assertListEqual()"

            * "assertTupleEqual()"

            * "assertSetEqual()"

            * "assertDictEqual()"

            * "fail()"

            * "failureException"

            * "longMessage"

            * "maxDiff"

            * "countTestCases()"

            * "defaultTestResult()"

            * "id()"

            * "shortDescription()"

            * "addCleanup()"

            * "enterContext()"

            * "doCleanups()"

            * "addClassCleanup()"

            * "enterClassContext()"

            * "doClassCleanups()"

          * "IsolatedAsyncioTestCase"

            * "asyncSetUp()"

            * "asyncTearDown()"

            * "addAsyncCleanup()"

            * "enterAsyncContext()"

            * "run()"

          * "FunctionTestCase"

        * Grouping tests

          * "TestSuite"

            * "addTest()"

            * "addTests()"

            * "run()"

            * "debug()"

            * "countTestCases()"

            * "__iter__()"

        * Loading and running tests

          * "TestLoader"

            * "errors"

            * "loadTestsFromTestCase()"

            * "loadTestsFromModule()"

            * "loadTestsFromName()"

            * "loadTestsFromNames()"

            * "getTestCaseNames()"

            * "discover()"

            * "testMethodPrefix"

            * "sortTestMethodsUsing"

            * "suiteClass"

            * "testNamePatterns"

          * "TestResult"

            * "errors"

            * "failures"

            * "skipped"

            * "expectedFailures"

            * "unexpectedSuccesses"

            * "collectedDurations"

            * "shouldStop"

            * "testsRun"

            * "buffer"

            * "failfast"

            * "tb_locals"

            * "wasSuccessful()"

            * "stop()"

            * "startTest()"

            * "stopTest()"

            * "startTestRun()"

            * "stopTestRun()"

            * "addError()"

            * "addFailure()"

            * "addSuccess()"

            * "addSkip()"

            * "addExpectedFailure()"

            * "addUnexpectedSuccess()"

            * "addSubTest()"

            * "addDuration()"

          * "TextTestResult"

          * "defaultTestLoader"

          * "TextTestRunner"

            * "_makeResult()"

            * "run()"

          * "main()"

          * load_tests Protocol

      * Class and Module Fixtures

        * setUpClass and tearDownClass

        * setUpModule and tearDownModule

          * "addModuleCleanup()"

          * "enterModuleContext()"

          * "doModuleCleanups()"

      * Signal Handling

        * "installHandler()"

        * "registerResult()"

        * "removeResult()"

        * "removeHandler()"

    * "unittest.mock" --- mock object library

      * Quick Guide

      * The Mock Class

        * "Mock"

          * "assert_called()"

          * "assert_called_once()"

          * "assert_called_with()"

          * "assert_called_once_with()"

          * "assert_any_call()"

          * "assert_has_calls()"

          * "assert_not_called()"

          * "reset_mock()"

          * "mock_add_spec()"

          * "attach_mock()"

          * "configure_mock()"

          * "__dir__()"

          * "_get_child_mock()"

          * "called"

          * "call_count"

          * "return_value"

          * "side_effect"

          * "call_args"

          * "call_args_list"

          * "method_calls"

          * "mock_calls"

          * "__class__"

        * "NonCallableMock"

        * "PropertyMock"

        * "AsyncMock"

          * "assert_awaited()"

          * "assert_awaited_once()"

          * "assert_awaited_with()"

          * "assert_awaited_once_with()"

          * "assert_any_await()"

          * "assert_has_awaits()"

          * "assert_not_awaited()"

          * "reset_mock()"

          * "await_count"

          * "await_args"

          * "await_args_list"

        * Calling

        * Deleting Attributes

        * Mock names and the name attribute

        * Attaching Mocks as Attributes

      * The patchers

        * patch

          * "patch()"

        * patch.object

          * "object()"

        * patch.dict

          * "dict()"

        * patch.multiple

          * "multiple()"

        * patch methods: start and stop

          * "stopall()"

        * 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

          * "MagicMock"

          * "NonCallableMagicMock"

      * Helpers

        * sentinel

          * "sentinel"

        * DEFAULT

          * "DEFAULT"

        * call

          * "call()"

          * "call_list()"

        * create_autospec

          * "create_autospec()"

        * ANY

          * "ANY"

        * FILTER_DIR

          * "FILTER_DIR"

        * mock_open

          * "mock_open()"

        * Autospeccing

        * Sealing mocks

          * "seal()"

      * Order of precedence of "side_effect", "return_value" and
        *wraps*

    * "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

        * Mocking asynchronous iterators

        * Mocking asynchronous context manager

        * Creating a Mock from an Existing Object

        * Using side_effect to return per file content

      * 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

      * "TestFailed"

      * "ResourceDenied"

      * "verbose"

      * "is_jython"

      * "is_android"

      * "unix_shell"

      * "LOOPBACK_TIMEOUT"

      * "INTERNET_TIMEOUT"

      * "SHORT_TIMEOUT"

      * "LONG_TIMEOUT"

      * "PGO"

      * "PIPE_MAX_SIZE"

      * "Py_DEBUG"

      * "SOCK_MAX_SIZE"

      * "TEST_SUPPORT_DIR"

      * "TEST_HOME_DIR"

      * "TEST_DATA_DIR"

      * "MAX_Py_ssize_t"

      * "max_memuse"

      * "real_max_memuse"

      * "MISSING_C_DOCSTRINGS"

      * "HAVE_DOCSTRINGS"

      * "TEST_HTTP_URL"

      * "ALWAYS_EQ"

      * "NEVER_EQ"

      * "LARGEST"

      * "SMALLEST"

      * "busy_retry()"

      * "sleeping_retry()"

      * "is_resource_enabled()"

      * "python_is_optimized()"

      * "with_pymalloc()"

      * "requires()"

      * "sortdict()"

      * "findfile()"

      * "get_pagesize()"

      * "setswitchinterval()"

      * "check_impl_detail()"

      * "set_memlimit()"

      * "record_original_stdout()"

      * "get_original_stdout()"

      * "args_from_interpreter_flags()"

      * "optim_args_from_interpreter_flags()"

      * "captured_stdin()"

      * "captured_stdout()"

      * "captured_stderr()"

      * "disable_faulthandler()"

      * "gc_collect()"

      * "disable_gc()"

      * "swap_attr()"

      * "swap_item()"

      * "flush_std_streams()"

      * "print_warning()"

      * "wait_process()"

      * "calcobjsize()"

      * "calcvobjsize()"

      * "checksizeof()"

      * "anticipate_failure()"

      * "system_must_validate_cert()"

      * "run_with_locale()"

      * "run_with_tz()"

      * "requires_freebsd_version()"

      * "requires_linux_version()"

      * "requires_mac_version()"

      * "requires_IEEE_754()"

      * "requires_zlib()"

      * "requires_gzip()"

      * "requires_bz2()"

      * "requires_lzma()"

      * "requires_resource()"

      * "requires_docstrings()"

      * "requires_limited_api()"

      * "cpython_only()"

      * "impl_detail()"

      * "no_tracing()"

      * "refcount_test()"

      * "bigmemtest()"

      * "bigaddrspacetest()"

      * "check_syntax_error()"

      * "open_urlresource()"

      * "reap_children()"

      * "get_attribute()"

      * "catch_unraisable_exception()"

      * "load_package_tests()"

      * "detect_api_mismatch()"

      * "patch()"

      * "run_in_subinterp()"

      * "check_free_after_iterating()"

      * "missing_compiler_executable()"

      * "check__all__()"

      * "skip_if_broken_multiprocessing_synchronize()"

      * "check_disallow_instantiation()"

      * "adjust_int_max_str_digits()"

      * "SuppressCrashReport"

      * "SaveSignals"

        * "save()"

        * "restore()"

      * "Matcher"

        * "matches()"

        * "match_value()"

    * "test.support.socket_helper" --- Utilities for socket tests

      * "IPV6_ENABLED"

      * "find_unused_port()"

      * "bind_port()"

      * "bind_unix_socket()"

      * "skip_unless_bind_unix_socket()"

      * "transient_internet()"

    * "test.support.script_helper" --- Utilities for the Python
      execution tests

      * "interpreter_requires_environment()"

      * "run_python_until_end()"

      * "assert_python_ok()"

      * "assert_python_failure()"

      * "spawn_python()"

      * "kill_python()"

      * "make_script()"

      * "make_zip_script()"

      * "make_pkg()"

      * "make_zip_pkg()"

    * "test.support.bytecode_helper" --- Support tools for testing
      correct bytecode generation

      * "BytecodeTestCase"

      * "get_disassembly_as_string()"

      * "assertInBytecode()"

      * "assertNotInBytecode()"

    * "test.support.threading_helper" --- Utilities for threading
      tests

      * "join_thread()"

      * "reap_threads()"

      * "start_threads()"

      * "threading_cleanup()"

      * "threading_setup()"

      * "wait_threads_exit()"

      * "catch_threading_exception()"

    * "test.support.os_helper" --- Utilities for os tests

      * "FS_NONASCII"

      * "SAVEDCWD"

      * "TESTFN"

      * "TESTFN_NONASCII"

      * "TESTFN_UNENCODABLE"

      * "TESTFN_UNDECODABLE"

      * "TESTFN_UNICODE"

      * "EnvironmentVarGuard"

      * "FakePath"

      * "set()"

      * "unset()"

      * "can_symlink()"

      * "can_xattr()"

      * "change_cwd()"

      * "create_empty_file()"

      * "fd_count()"

      * "fs_is_case_insensitive()"

      * "make_bad_fd()"

      * "rmdir()"

      * "rmtree()"

      * "skip_unless_symlink()"

      * "skip_unless_xattr()"

      * "temp_cwd()"

      * "temp_dir()"

      * "temp_umask()"

      * "unlink()"

    * "test.support.import_helper" --- Utilities for import tests

      * "forget()"

      * "import_fresh_module()"

      * "import_module()"

      * "modules_setup()"

      * "modules_cleanup()"

      * "unload()"

      * "make_legacy_pyc()"

      * "CleanImport"

      * "DirsOnSysPath"

    * "test.support.warnings_helper" --- Utilities for warnings tests

      * "ignore_warnings()"

      * "check_no_resource_warning()"

      * "check_syntax_warning()"

      * "check_warnings()"

      * "WarningsRecorder"

  * Debugging and Profiling

    * Audit events table

    * "bdb" --- Debugger framework

      * "BdbQuit"

      * "Breakpoint"

        * "deleteMe()"

        * "enable()"

        * "disable()"

        * "bpformat()"

        * "bpprint()"

        * "file"

        * "line"

        * "temporary"

        * "cond"

        * "funcname"

        * "enabled"

        * "bpbynumber"

        * "bplist"

        * "ignore"

        * "hits"

      * "Bdb"

        * "canonic()"

        * "reset()"

        * "trace_dispatch()"

        * "dispatch_line()"

        * "dispatch_call()"

        * "dispatch_return()"

        * "dispatch_exception()"

        * "is_skipped_line()"

        * "stop_here()"

        * "break_here()"

        * "break_anywhere()"

        * "user_call()"

        * "user_line()"

        * "user_return()"

        * "user_exception()"

        * "do_clear()"

        * "set_step()"

        * "set_next()"

        * "set_return()"

        * "set_until()"

        * "set_trace()"

        * "set_continue()"

        * "set_quit()"

        * "set_break()"

        * "clear_break()"

        * "clear_bpbynumber()"

        * "clear_all_file_breaks()"

        * "clear_all_breaks()"

        * "get_bpbynumber()"

        * "get_break()"

        * "get_breaks()"

        * "get_file_breaks()"

        * "get_all_breaks()"

        * "get_stack()"

        * "format_stack_entry()"

        * "run()"

        * "runeval()"

        * "runctx()"

        * "runcall()"

      * "checkfuncname()"

      * "effective()"

      * "set_trace()"

    * "faulthandler" --- Dump the Python traceback

      * Dumping the traceback

        * "dump_traceback()"

      * Fault handler state

        * "enable()"

        * "disable()"

        * "is_enabled()"

      * Dumping the tracebacks after a timeout

        * "dump_traceback_later()"

        * "cancel_dump_traceback_later()"

      * Dumping the traceback on a user signal

        * "register()"

        * "unregister()"

      * Issue with file descriptors

      * Example

    * "pdb" --- The Python Debugger

      * "run()"

      * "runeval()"

      * "runcall()"

      * "set_trace()"

      * "post_mortem()"

      * "pm()"

      * "Pdb"

        * "run()"

        * "runeval()"

        * "runcall()"

        * "set_trace()"

      * Debugger Commands

    * The Python Profilers

      * Introduction to the profilers

      * Instant User's Manual

      * "profile" and "cProfile" Module Reference

        * "run()"

        * "runctx()"

        * "Profile"

          * "enable()"

          * "disable()"

          * "create_stats()"

          * "print_stats()"

          * "dump_stats()"

          * "run()"

          * "runctx()"

          * "runcall()"

      * The "Stats" Class

        * "Stats"

          * "strip_dirs()"

          * "add()"

          * "dump_stats()"

          * "sort_stats()"

          * "reverse_order()"

          * "print_stats()"

          * "print_callers()"

          * "print_callees()"

          * "get_stats_profile()"

      * What Is Deterministic Profiling?

      * Limitations

      * Calibration

      * Using a custom timer

    * "timeit" --- Measure execution time of small code snippets

      * Basic Examples

      * Python Interface

        * "timeit()"

        * "repeat()"

        * "default_timer()"

        * "Timer"

          * "timeit()"

          * "autorange()"

          * "repeat()"

          * "print_exc()"

      * Command-Line Interface

      * Examples

    * "trace" --- Trace or track Python statement execution

      * Command-Line Usage

        * Main options

        * Modifiers

        * Filters

      * Programmatic Interface

        * "Trace"

          * "run()"

          * "runctx()"

          * "runfunc()"

          * "results()"

        * "CoverageResults"

          * "update()"

          * "write_results()"

    * "tracemalloc" --- Trace memory allocations

      * Examples

        * Display the top 10

        * Compute differences

        * Get the traceback of a memory block

        * Pretty top

          * Record the current and peak size of all traced memory
            blocks

      * API

        * Functions

          * "clear_traces()"

          * "get_object_traceback()"

          * "get_traceback_limit()"

          * "get_traced_memory()"

          * "reset_peak()"

          * "get_tracemalloc_memory()"

          * "is_tracing()"

          * "start()"

          * "stop()"

          * "take_snapshot()"

        * DomainFilter

          * "DomainFilter"

            * "inclusive"

            * "domain"

        * Filter

          * "Filter"

            * "domain"

            * "inclusive"

            * "lineno"

            * "filename_pattern"

            * "all_frames"

        * Frame

          * "Frame"

            * "filename"

            * "lineno"

        * Snapshot

          * "Snapshot"

            * "compare_to()"

            * "dump()"

            * "filter_traces()"

            * "load()"

            * "statistics()"

            * "traceback_limit"

            * "traces"

        * Statistic

          * "Statistic"

            * "count"

            * "size"

            * "traceback"

        * StatisticDiff

          * "StatisticDiff"

            * "count"

            * "count_diff"

            * "size"

            * "size_diff"

            * "traceback"

        * Trace

          * "Trace"

            * "domain"

            * "size"

            * "traceback"

        * Traceback

          * "Traceback"

            * "total_nframe"

            * "format()"

  * Software Packaging and Distribution

    * "ensurepip" --- Bootstrapping the "pip" installer

      * Command line interface

      * Module API

        * "version()"

        * "bootstrap()"

    * "venv" --- Creation of virtual environments

      * Creating virtual environments

      * How venvs work

      * API

        * "EnvBuilder"

          * "create()"

          * "ensure_directories()"

          * "create_configuration()"

          * "setup_python()"

          * "setup_scripts()"

          * "upgrade_dependencies()"

          * "post_setup()"

          * "install_scripts()"

        * "create()"

      * An example of extending "EnvBuilder"

    * "zipapp" --- Manage executable Python zip archives

      * Basic Example

      * Command-Line Interface

      * Python API

        * "create_archive()"

        * "get_interpreter()"

      * Examples

      * Specifying the Interpreter

      * Creating Standalone Applications with zipapp

        * Caveats

      * The Python Zip Application Archive Format

  * Python Runtime Services

    * "sys" --- System-specific parameters and functions

      * "abiflags"

      * "addaudithook()"

      * "argv"

      * "audit()"

      * "base_exec_prefix"

      * "base_prefix"

      * "byteorder"

      * "builtin_module_names"

      * "call_tracing()"

      * "copyright"

      * "_clear_type_cache()"

      * "_current_frames()"

      * "_current_exceptions()"

      * "breakpointhook()"

      * "_debugmallocstats()"

      * "dllhandle"

      * "displayhook()"

      * "dont_write_bytecode"

      * "_emscripten_info"

        * "emscripten_version"

        * "runtime"

        * "pthreads"

        * "shared_memory"

      * "pycache_prefix"

      * "excepthook()"

      * "__breakpointhook__"

      * "__displayhook__"

      * "__excepthook__"

      * "__unraisablehook__"

      * "exception()"

      * "exc_info()"

      * "exec_prefix"

      * "executable"

      * "exit()"

      * "flags"

        * "debug"

        * "inspect"

        * "interactive"

        * "isolated"

        * "optimize"

        * "dont_write_bytecode"

        * "no_user_site"

        * "no_site"

        * "ignore_environment"

        * "verbose"

        * "bytes_warning"

        * "quiet"

        * "hash_randomization"

        * "dev_mode"

        * "utf8_mode"

        * "safe_path"

        * "int_max_str_digits"

        * "warn_default_encoding"

      * "float_info"

        * "epsilon"

        * "dig"

        * "mant_dig"

        * "max"

        * "max_exp"

        * "max_10_exp"

        * "min"

        * "min_exp"

        * "min_10_exp"

        * "radix"

        * "rounds"

      * "float_repr_style"

      * "getallocatedblocks()"

      * "getunicodeinternedsize()"

      * "getandroidapilevel()"

      * "getdefaultencoding()"

      * "getdlopenflags()"

      * "getfilesystemencoding()"

      * "getfilesystemencodeerrors()"

      * "get_int_max_str_digits()"

      * "getrefcount()"

      * "getrecursionlimit()"

      * "getsizeof()"

      * "getswitchinterval()"

      * "_getframe()"

      * "_getframemodulename()"

      * "getprofile()"

      * "gettrace()"

      * "getwindowsversion()"

      * "get_asyncgen_hooks()"

      * "get_coroutine_origin_tracking_depth()"

      * "hash_info"

        * "width"

        * "modulus"

        * "inf"

        * "nan"

        * "imag"

        * "algorithm"

        * "hash_bits"

        * "seed_bits"

      * "hexversion"

      * "implementation"

      * "int_info"

        * "bits_per_digit"

        * "sizeof_digit"

        * "default_max_str_digits"

        * "str_digits_check_threshold"

      * "__interactivehook__"

      * "intern()"

      * "is_finalizing()"

      * "last_exc"

      * "last_type"

      * "last_value"

      * "last_traceback"

      * "maxsize"

      * "maxunicode"

      * "meta_path"

      * "modules"

      * "orig_argv"

      * "path"

      * "path_hooks"

      * "path_importer_cache"

      * "platform"

      * "platlibdir"

      * "prefix"

      * "ps1"

      * "ps2"

      * "setdlopenflags()"

      * "set_int_max_str_digits()"

      * "setprofile()"

      * "setrecursionlimit()"

      * "setswitchinterval()"

      * "settrace()"

      * "set_asyncgen_hooks()"

      * "set_coroutine_origin_tracking_depth()"

      * "activate_stack_trampoline()"

      * "deactivate_stack_trampoline()"

      * "is_stack_trampoline_active()"

      * "_enablelegacywindowsfsencoding()"

      * "stdin"

      * "stdout"

      * "stderr"

      * "__stdin__"

      * "__stdout__"

      * "__stderr__"

      * "stdlib_module_names"

      * "thread_info"

        * "name"

        * "lock"

        * "version"

      * "tracebacklimit"

      * "unraisablehook()"

      * "version"

      * "api_version"

      * "version_info"

      * "warnoptions"

      * "winver"

      * "_xoptions"

    * "sys.monitoring" --- Execution event monitoring

      * Tool identifiers

        * Registering and using tools

          * "use_tool_id()"

          * "free_tool_id()"

          * "get_tool()"

      * Events

        * Local events

        * Ancillary events

        * Other events

        * The STOP_ITERATION event

      * Turning events on and off

        * Setting events globally

          * "get_events()"

          * "set_events()"

        * Per code object events

          * "get_local_events()"

          * "set_local_events()"

        * Disabling events

          * "DISABLE"

          * "restart_events()"

      * Registering callback functions

        * "register_callback()"

        * Callback function arguments

          * "MISSING"

    * "sysconfig" --- Provide access to Python's configuration
      information

      * Configuration variables

        * "get_config_vars()"

        * "get_config_var()"

      * Installation paths

      * User scheme

        * "posix_user"

        * "nt_user"

        * "osx_framework_user"

      * Home scheme

        * "posix_home"

      * Prefix scheme

        * "posix_prefix"

        * "nt"

      * Installation path functions

        * "get_scheme_names()"

        * "get_default_scheme()"

        * "get_preferred_scheme()"

        * "_get_preferred_schemes()"

        * "get_path_names()"

        * "get_path()"

        * "get_paths()"

      * Other functions

        * "get_python_version()"

        * "get_platform()"

        * "is_python_build()"

        * "parse_config_h()"

        * "get_config_h_filename()"

        * "get_makefile_filename()"

      * Using "sysconfig" as a script

    * "builtins" --- Built-in objects

    * "__main__" --- Top-level code environment

      * "__name__ == '__main__'"

        * What is the "top-level code environment"?

        * Idiomatic Usage

        * Packaging Considerations

      * "__main__.py" in Python Packages

        * Idiomatic Usage

      * "import __main__"

    * "warnings" --- Warning control

      * Warning Categories

      * The Warnings Filter

        * Repeated Warning Suppression Criteria

        * Describing Warning Filters

        * Default Warning Filter

        * Overriding the default filter

      * Temporarily Suppressing Warnings

      * Testing Warnings

      * Updating Code For New Versions of Dependencies

      * Available Functions

        * "warn()"

        * "warn_explicit()"

        * "showwarning()"

        * "formatwarning()"

        * "filterwarnings()"

        * "simplefilter()"

        * "resetwarnings()"

      * Available Context Managers

        * "catch_warnings"

    * "dataclasses" --- Data Classes

      * Module contents

        * "dataclass()"

        * "field()"

        * "Field"

        * "fields()"

        * "asdict()"

        * "astuple()"

        * "make_dataclass()"

        * "replace()"

        * "is_dataclass()"

        * "MISSING"

        * "KW_ONLY"

        * "FrozenInstanceError"

      * Post-init processing

        * "__post_init__()"

      * Class variables

      * Init-only variables

      * Frozen instances

      * Inheritance

      * Re-ordering of keyword-only parameters in "__init__()"

      * Default factory functions

      * Mutable default values

      * Descriptor-typed fields

    * "contextlib" --- Utilities for "with"-statement contexts

      * Utilities

        * "AbstractContextManager"

        * "AbstractAsyncContextManager"

        * "contextmanager()"

        * "asynccontextmanager()"

        * "closing()"

        * "aclosing()"

        * "nullcontext()"

        * "suppress()"

        * "redirect_stdout()"

        * "redirect_stderr()"

        * "chdir()"

        * "ContextDecorator"

        * "AsyncContextDecorator"

        * "ExitStack"

          * "enter_context()"

          * "push()"

          * "callback()"

          * "pop_all()"

          * "close()"

        * "AsyncExitStack"

          * "enter_async_context()"

          * "push_async_exit()"

          * "push_async_callback()"

          * "aclose()"

      * 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

      * "ABC"

      * "ABCMeta"

        * "register()"

        * "__subclasshook__()"

      * "abstractmethod()"

      * "abstractclassmethod()"

      * "abstractstaticmethod()"

      * "abstractproperty()"

      * "get_cache_token()"

      * "update_abstractmethods()"

    * "atexit" --- Exit handlers

      * "register()"

      * "unregister()"

      * "atexit" Example

    * "traceback" --- Print or retrieve a stack traceback

      * Module-Level Functions

        * "print_tb()"

        * "print_exception()"

        * "print_exc()"

        * "print_last()"

        * "print_stack()"

        * "extract_tb()"

        * "extract_stack()"

        * "format_list()"

        * "format_exception_only()"

        * "format_exception()"

        * "format_exc()"

        * "format_tb()"

        * "format_stack()"

        * "clear_frames()"

        * "walk_stack()"

        * "walk_tb()"

      * "TracebackException" Objects

        * "TracebackException"

          * "__cause__"

          * "__context__"

          * "exceptions"

          * "__suppress_context__"

          * "__notes__"

          * "stack"

          * "exc_type"

          * "filename"

          * "lineno"

          * "end_lineno"

          * "text"

          * "offset"

          * "end_offset"

          * "msg"

          * "from_exception()"

          * "print()"

          * "format()"

          * "format_exception_only()"

      * "StackSummary" Objects

        * "StackSummary"

          * "extract()"

          * "from_list()"

          * "format()"

          * "format_frame_summary()"

      * "FrameSummary" Objects

        * "FrameSummary"

          * "filename"

          * "lineno"

          * "name"

          * "line"

      * Examples of Using the Module-Level Functions

      * Examples of Using "TracebackException"

    * "__future__" --- Future statement definitions

      * Module Contents

        * "_Feature"

        * "getOptionalRelease()"

        * "getMandatoryRelease()"

        * "compiler_flag"

    * "gc" --- Garbage Collector interface

      * "enable()"

      * "disable()"

      * "isenabled()"

      * "collect()"

      * "set_debug()"

      * "get_debug()"

      * "get_objects()"

      * "get_stats()"

      * "set_threshold()"

      * "get_count()"

      * "get_threshold()"

      * "get_referrers()"

      * "get_referents()"

      * "is_tracked()"

      * "is_finalized()"

      * "freeze()"

      * "unfreeze()"

      * "get_freeze_count()"

      * "garbage"

      * "callbacks"

      * "DEBUG_STATS"

      * "DEBUG_COLLECTABLE"

      * "DEBUG_UNCOLLECTABLE"

      * "DEBUG_SAVEALL"

      * "DEBUG_LEAK"

    * "inspect" --- Inspect live objects

      * Types and members

        * "getmembers()"

        * "getmembers_static()"

        * "getmodulename()"

        * "ismodule()"

        * "isclass()"

        * "ismethod()"

        * "isfunction()"

        * "isgeneratorfunction()"

        * "isgenerator()"

        * "iscoroutinefunction()"

        * "markcoroutinefunction()"

        * "iscoroutine()"

        * "isawaitable()"

        * "isasyncgenfunction()"

        * "isasyncgen()"

        * "istraceback()"

        * "isframe()"

        * "iscode()"

        * "isbuiltin()"

        * "ismethodwrapper()"

        * "isroutine()"

        * "isabstract()"

        * "ismethoddescriptor()"

        * "isdatadescriptor()"

        * "isgetsetdescriptor()"

        * "ismemberdescriptor()"

      * Retrieving source code

        * "getdoc()"

        * "getcomments()"

        * "getfile()"

        * "getmodule()"

        * "getsourcefile()"

        * "getsourcelines()"

        * "getsource()"

        * "cleandoc()"

      * Introspecting callables with the Signature object

        * "signature()"

        * "Signature"

          * "empty"

          * "parameters"

          * "return_annotation"

          * "bind()"

          * "bind_partial()"

          * "replace()"

          * "from_callable()"

        * "Parameter"

          * "empty"

          * "name"

          * "default"

          * "annotation"

          * "kind"

          * "description"

          * "replace()"

        * "BoundArguments"

          * "arguments"

          * "args"

          * "kwargs"

          * "signature"

          * "apply_defaults()"

      * Classes and functions

        * "getclasstree()"

        * "getfullargspec()"

        * "getargvalues()"

        * "formatargvalues()"

        * "getmro()"

        * "getcallargs()"

        * "getclosurevars()"

        * "unwrap()"

        * "get_annotations()"

      * The interpreter stack

        * "FrameInfo"

          * "frame"

          * "filename"

          * "lineno"

          * "function"

          * "code_context"

          * "index"

          * "positions"

        * "Traceback"

          * "filename"

          * "lineno"

          * "function"

          * "code_context"

          * "index"

          * "positions"

        * "getframeinfo()"

        * "getouterframes()"

        * "getinnerframes()"

        * "currentframe()"

        * "stack()"

        * "trace()"

      * Fetching attributes statically

        * "getattr_static()"

      * Current State of Generators, Coroutines, and Asynchronous
        Generators

        * "getgeneratorstate()"

        * "getcoroutinestate()"

        * "getasyncgenstate()"

        * "getgeneratorlocals()"

        * "getcoroutinelocals()"

        * "getasyncgenlocals()"

      * Code Objects Bit Flags

        * "CO_OPTIMIZED"

        * "CO_NEWLOCALS"

        * "CO_VARARGS"

        * "CO_VARKEYWORDS"

        * "CO_NESTED"

        * "CO_GENERATOR"

        * "CO_COROUTINE"

        * "CO_ITERABLE_COROUTINE"

        * "CO_ASYNC_GENERATOR"

      * Buffer flags

        * "BufferFlags"

          * "SIMPLE"

          * "WRITABLE"

          * "FORMAT"

          * "ND"

          * "STRIDES"

          * "C_CONTIGUOUS"

          * "F_CONTIGUOUS"

          * "ANY_CONTIGUOUS"

          * "INDIRECT"

          * "CONTIG"

          * "CONTIG_RO"

          * "STRIDED"

          * "STRIDED_RO"

          * "RECORDS"

          * "RECORDS_RO"

          * "FULL"

          * "FULL_RO"

          * "READ"

          * "WRITE"

      * Command Line Interface

    * "site" --- Site-specific configuration hook

      * "sitecustomize"

      * "usercustomize"

      * Readline configuration

      * Module contents

        * "PREFIXES"

        * "ENABLE_USER_SITE"

        * "USER_SITE"

        * "USER_BASE"

        * "main()"

        * "addsitedir()"

        * "getsitepackages()"

        * "getuserbase()"

        * "getusersitepackages()"

      * Command Line Interface

  * Custom Python Interpreters

    * "code" --- Interpreter base classes

      * "InteractiveInterpreter"

      * "InteractiveConsole"

      * "interact()"

      * "compile_command()"

      * Interactive Interpreter Objects

        * "runsource()"

        * "runcode()"

        * "showsyntaxerror()"

        * "showtraceback()"

        * "write()"

      * Interactive Console Objects

        * "interact()"

        * "push()"

        * "resetbuffer()"

        * "raw_input()"

    * "codeop" --- Compile Python code

      * "compile_command()"

      * "Compile"

      * "CommandCompiler"

  * Importing Modules

    * "zipimport" --- Import modules from Zip archives

      * "ZipImportError"

      * zipimporter Objects

        * "zipimporter"

          * "create_module()"

          * "exec_module()"

          * "find_spec()"

          * "get_code()"

          * "get_data()"

          * "get_filename()"

          * "get_source()"

          * "is_package()"

          * "load_module()"

          * "invalidate_caches()"

          * "archive"

          * "prefix"

      * Examples

    * "pkgutil" --- Package extension utility

      * "ModuleInfo"

      * "extend_path()"

      * "find_loader()"

      * "get_importer()"

      * "get_loader()"

      * "iter_importers()"

      * "iter_modules()"

      * "walk_packages()"

      * "get_data()"

      * "resolve_name()"

    * "modulefinder" --- Find modules used by a script

      * "AddPackagePath()"

      * "ReplacePackage()"

      * "ModuleFinder"

        * "report()"

        * "run_script()"

        * "modules"

      * Example usage of "ModuleFinder"

    * "runpy" --- Locating and executing Python modules

      * "run_module()"

      * "run_path()"

    * "importlib" --- The implementation of "import"

      * Introduction

      * Functions

        * "__import__()"

        * "import_module()"

        * "invalidate_caches()"

        * "reload()"

      * "importlib.abc" -- Abstract base classes related to import

        * "MetaPathFinder"

          * "find_spec()"

          * "invalidate_caches()"

        * "PathEntryFinder"

          * "find_spec()"

          * "invalidate_caches()"

        * "Loader"

          * "create_module()"

          * "exec_module()"

          * "load_module()"

        * "ResourceLoader"

          * "get_data()"

        * "InspectLoader"

          * "get_code()"

          * "get_source()"

          * "is_package()"

          * "source_to_code()"

          * "exec_module()"

          * "load_module()"

        * "ExecutionLoader"

          * "get_filename()"

        * "FileLoader"

          * "name"

          * "path"

          * "load_module()"

          * "get_filename()"

          * "get_data()"

        * "SourceLoader"

          * "path_stats()"

          * "path_mtime()"

          * "set_data()"

          * "get_code()"

          * "exec_module()"

          * "load_module()"

          * "get_source()"

          * "is_package()"

        * "ResourceReader"

          * "open_resource()"

          * "resource_path()"

          * "is_resource()"

          * "contents()"

        * "Traversable"

          * "name"

          * "iterdir()"

          * "is_dir()"

          * "is_file()"

          * "joinpath()"

          * "__truediv__()"

          * "open()"

          * "read_bytes()"

          * "read_text()"

        * "TraversableResources"

          * "files()"

      * "importlib.machinery" -- Importers and path hooks

        * "SOURCE_SUFFIXES"

        * "DEBUG_BYTECODE_SUFFIXES"

        * "OPTIMIZED_BYTECODE_SUFFIXES"

        * "BYTECODE_SUFFIXES"

        * "EXTENSION_SUFFIXES"

        * "all_suffixes()"

        * "BuiltinImporter"

        * "FrozenImporter"

        * "WindowsRegistryFinder"

        * "PathFinder"

          * "find_spec()"

          * "invalidate_caches()"

        * "FileFinder"

          * "path"

          * "find_spec()"

          * "invalidate_caches()"

          * "path_hook()"

        * "SourceFileLoader"

          * "name"

          * "path"

          * "is_package()"

          * "path_stats()"

          * "set_data()"

          * "load_module()"

        * "SourcelessFileLoader"

          * "name"

          * "path"

          * "is_package()"

          * "get_code()"

          * "get_source()"

          * "load_module()"

        * "ExtensionFileLoader"

          * "name"

          * "path"

          * "create_module()"

          * "exec_module()"

          * "is_package()"

          * "get_code()"

          * "get_source()"

          * "get_filename()"

        * "NamespaceLoader"

        * "ModuleSpec"

          * "name"

          * "loader"

          * "origin"

          * "submodule_search_locations"

          * "loader_state"

          * "cached"

          * "parent"

          * "has_location"

      * "importlib.util" -- Utility code for importers

        * "MAGIC_NUMBER"

        * "cache_from_source()"

        * "source_from_cache()"

        * "decode_source()"

        * "resolve_name()"

        * "find_spec()"

        * "module_from_spec()"

        * "spec_from_loader()"

        * "spec_from_file_location()"

        * "source_hash()"

        * "_incompatible_extension_module_restrictions()"

        * "LazyLoader"

          * "factory()"

      * Examples

        * Importing programmatically

        * Checking if a module can be imported

        * Importing a source file directly

        * Implementing lazy imports

        * Setting up an importer

        * Approximating "importlib.import_module()"

    * "importlib.resources" -- Package resource reading, opening and
      access

      * "Anchor"

      * "files()"

      * "as_file()"

      * Deprecated functions

        * "Package"

        * "Resource"

        * "open_binary()"

        * "open_text()"

        * "read_binary()"

        * "read_text()"

        * "path()"

        * "is_resource()"

        * "contents()"

    * "importlib.resources.abc" -- Abstract base classes for resources

      * "ResourceReader"

        * "open_resource()"

        * "resource_path()"

        * "is_resource()"

        * "contents()"

      * "Traversable"

        * "name"

        * "iterdir()"

        * "is_dir()"

        * "is_file()"

        * "joinpath()"

        * "__truediv__()"

        * "open()"

        * "read_bytes()"

        * "read_text()"

      * "TraversableResources"

        * "files()"

    * "importlib.metadata" -- Accessing package metadata

      * Overview

        * "PackageNotFoundError"

      * Functional API

        * Entry points

          * "entry_points()"

          * "EntryPoints"

          * "EntryPoint"

        * Distribution metadata

          * "metadata()"

          * "PackageMetadata"

        * Distribution versions

          * "version()"

        * Distribution files

          * "files()"

          * "PackagePath"

        * Distribution requirements

          * "requires()"

        * Mapping import to distribution packages

          * "packages_distributions()"

      * Distributions

        * "distribution()"

        * "Distribution"

      * Distribution Discovery

      * Extending the search algorithm

    * The initialization of the "sys.path" module search path

      * Virtual environments

      * _pth files

      * Embedded Python

  * Python Language Services

    * "ast" --- Abstract Syntax Trees

      * Abstract Grammar

      * Node classes

        * "AST"

          * "_fields"

          * "lineno"

          * "col_offset"

          * "end_lineno"

          * "end_col_offset"

        * Root nodes

          * "Module"

          * "Expression"

          * "Interactive"

          * "FunctionType"

        * Literals

          * "Constant"

          * "FormattedValue"

          * "JoinedStr"

          * "List"

          * "Tuple"

          * "Set"

          * "Dict"

        * Variables

          * "Name"

          * "Load"

          * "Store"

          * "Del"

          * "Starred"

        * Expressions

          * "Expr"

          * "UnaryOp"

          * "UAdd"

          * "USub"

          * "Not"

          * "Invert"

          * "BinOp"

          * "Add"

          * "Sub"

          * "Mult"

          * "Div"

          * "FloorDiv"

          * "Mod"

          * "Pow"

          * "LShift"

          * "RShift"

          * "BitOr"

          * "BitXor"

          * "BitAnd"

          * "MatMult"

          * "BoolOp"

          * "And"

          * "Or"

          * "Compare"

          * "Eq"

          * "NotEq"

          * "Lt"

          * "LtE"

          * "Gt"

          * "GtE"

          * "Is"

          * "IsNot"

          * "In"

          * "NotIn"

          * "Call"

          * "keyword"

          * "IfExp"

          * "Attribute"

          * "NamedExpr"

          * Subscripting

            * "Subscript"

            * "Slice"

          * Comprehensions

            * "ListComp"

            * "SetComp"

            * "GeneratorExp"

            * "DictComp"

            * "comprehension"

        * Statements

          * "Assign"

            * "type_comment"

          * "AnnAssign"

          * "AugAssign"

          * "Raise"

          * "Assert"

          * "Delete"

          * "Pass"

          * "TypeAlias"

          * Imports

            * "Import"

            * "ImportFrom"

            * "alias"

        * Control flow

          * "If"

          * "For"

            * "type_comment"

          * "While"

          * "Break"

          * "Continue"

          * "Try"

          * "TryStar"

          * "ExceptHandler"

          * "With"

            * "type_comment"

          * "withitem"

        * Pattern matching

          * "Match"

          * "match_case"

          * "MatchValue"

          * "MatchSingleton"

          * "MatchSequence"

          * "MatchStar"

          * "MatchMapping"

          * "MatchClass"

          * "MatchAs"

          * "MatchOr"

        * Type parameters

          * "TypeVar"

          * "ParamSpec"

          * "TypeVarTuple"

        * Function and class definitions

          * "FunctionDef"

            * "type_comment"

          * "Lambda"

          * "arguments"

          * "arg"

            * "type_comment"

          * "Return"

          * "Yield"

          * "YieldFrom"

          * "Global"

          * "Nonlocal"

          * "ClassDef"

        * Async and await

          * "AsyncFunctionDef"

          * "Await"

          * "AsyncFor"

          * "AsyncWith"

      * "ast" Helpers

        * "parse()"

        * "unparse()"

        * "literal_eval()"

        * "get_docstring()"

        * "get_source_segment()"

        * "fix_missing_locations()"

        * "increment_lineno()"

        * "copy_location()"

        * "iter_fields()"

        * "iter_child_nodes()"

        * "walk()"

        * "NodeVisitor"

          * "visit()"

          * "generic_visit()"

          * "visit_Constant()"

        * "NodeTransformer"

        * "dump()"

      * Compiler Flags

        * "PyCF_ALLOW_TOP_LEVEL_AWAIT"

        * "PyCF_ONLY_AST"

        * "PyCF_TYPE_COMMENTS"

      * Command-Line Usage

    * "symtable" --- Access to the compiler's symbol tables

      * Generating Symbol Tables

        * "symtable()"

      * Examining Symbol Tables

        * "SymbolTable"

          * "get_type()"

          * "get_id()"

          * "get_name()"

          * "get_lineno()"

          * "is_optimized()"

          * "is_nested()"

          * "has_children()"

          * "get_identifiers()"

          * "lookup()"

          * "get_symbols()"

          * "get_children()"

        * "Function"

          * "get_parameters()"

          * "get_locals()"

          * "get_globals()"

          * "get_nonlocals()"

          * "get_frees()"

        * "Class"

          * "get_methods()"

        * "Symbol"

          * "get_name()"

          * "is_referenced()"

          * "is_imported()"

          * "is_parameter()"

          * "is_global()"

          * "is_nonlocal()"

          * "is_declared_global()"

          * "is_local()"

          * "is_annotated()"

          * "is_free()"

          * "is_assigned()"

          * "is_namespace()"

          * "get_namespaces()"

          * "get_namespace()"

    * "token" --- Constants used with Python parse trees

      * "tok_name"

      * "ISTERMINAL()"

      * "ISNONTERMINAL()"

      * "ISEOF()"

      * "ENDMARKER"

      * "NAME"

      * "NUMBER"

      * "STRING"

      * "NEWLINE"

      * "INDENT"

      * "DEDENT"

      * "LPAR"

      * "RPAR"

      * "LSQB"

      * "RSQB"

      * "COLON"

      * "COMMA"

      * "SEMI"

      * "PLUS"

      * "MINUS"

      * "STAR"

      * "SLASH"

      * "VBAR"

      * "AMPER"

      * "LESS"

      * "GREATER"

      * "EQUAL"

      * "DOT"

      * "PERCENT"

      * "LBRACE"

      * "RBRACE"

      * "EQEQUAL"

      * "NOTEQUAL"

      * "LESSEQUAL"

      * "GREATEREQUAL"

      * "TILDE"

      * "CIRCUMFLEX"

      * "LEFTSHIFT"

      * "RIGHTSHIFT"

      * "DOUBLESTAR"

      * "PLUSEQUAL"

      * "MINEQUAL"

      * "STAREQUAL"

      * "SLASHEQUAL"

      * "PERCENTEQUAL"

      * "AMPEREQUAL"

      * "VBAREQUAL"

      * "CIRCUMFLEXEQUAL"

      * "LEFTSHIFTEQUAL"

      * "RIGHTSHIFTEQUAL"

      * "DOUBLESTAREQUAL"

      * "DOUBLESLASH"

      * "DOUBLESLASHEQUAL"

      * "AT"

      * "ATEQUAL"

      * "RARROW"

      * "ELLIPSIS"

      * "COLONEQUAL"

      * "EXCLAMATION"

      * "OP"

      * "AWAIT"

      * "ASYNC"

      * "TYPE_IGNORE"

      * "TYPE_COMMENT"

      * "SOFT_KEYWORD"

      * "FSTRING_START"

      * "FSTRING_MIDDLE"

      * "FSTRING_END"

      * "COMMENT"

      * "NL"

      * "ERRORTOKEN"

      * "N_TOKENS"

      * "NT_OFFSET"

      * "ENCODING"

    * "keyword" --- Testing for Python keywords

      * "iskeyword()"

      * "kwlist"

      * "issoftkeyword()"

      * "softkwlist"

    * "tokenize" --- Tokenizer for Python source

      * Tokenizing Input

        * "tokenize()"

        * "generate_tokens()"

        * "untokenize()"

        * "detect_encoding()"

        * "open()"

        * "TokenError"

      * Command-Line Usage

      * Examples

    * "tabnanny" --- Detection of ambiguous indentation

      * "check()"

      * "verbose"

      * "filename_only"

      * "NannyNag"

      * "process_tokens()"

    * "pyclbr" --- Python module browser support

      * "readmodule()"

      * "readmodule_ex()"

      * Function Objects

        * "Function"

          * "file"

          * "module"

          * "name"

          * "lineno"

          * "parent"

          * "children"

          * "is_async"

      * Class Objects

        * "Class"

          * "file"

          * "module"

          * "name"

          * "lineno"

          * "parent"

          * "children"

          * "super"

          * "methods"

    * "py_compile" --- Compile Python source files

      * "PyCompileError"

      * "compile()"

      * "PycInvalidationMode"

        * "TIMESTAMP"

        * "CHECKED_HASH"

        * "UNCHECKED_HASH"

      * Command-Line Interface

    * "compileall" --- Byte-compile Python libraries

      * Command-line use

      * Public functions

        * "compile_dir()"

        * "compile_file()"

        * "compile_path()"

    * "dis" --- Disassembler for Python bytecode

      * Command-line interface

      * Bytecode analysis

        * "Bytecode"

          * "from_traceback()"

          * "codeobj"

          * "first_line"

          * "dis()"

          * "info()"

      * Analysis functions

        * "code_info()"

        * "show_code()"

        * "dis()"

        * "distb()"

        * "disassemble()"

        * "disco()"

        * "get_instructions()"

        * "findlinestarts()"

        * "findlabels()"

        * "stack_effect()"

      * Python Bytecode Instructions

        * "Instruction"

          * "opcode"

          * "opname"

          * "arg"

          * "argval"

          * "argrepr"

          * "offset"

          * "starts_line"

          * "is_jump_target"

          * "positions"

        * "Positions"

          * "lineno"

          * "end_lineno"

          * "col_offset"

          * "end_col_offset"

      * Opcode collections

        * "opname"

        * "opmap"

        * "cmp_op"

        * "hasarg"

        * "hasconst"

        * "hasfree"

        * "hasname"

        * "hasjrel"

        * "hasjabs"

        * "haslocal"

        * "hascompare"

        * "hasexc"

    * "pickletools" --- Tools for pickle developers

      * Command line usage

        * Command line options

      * Programmatic Interface

        * "dis()"

        * "genops()"

        * "optimize()"

  * MS Windows Specific Services

    * "msvcrt" --- Useful routines from the MS VC++ runtime

      * File Operations

        * "locking()"

        * "LK_LOCK"

        * "LK_RLCK"

        * "LK_NBLCK"

        * "LK_NBRLCK"

        * "LK_UNLCK"

        * "setmode()"

        * "open_osfhandle()"

        * "get_osfhandle()"

      * Console I/O

        * "kbhit()"

        * "getch()"

        * "getwch()"

        * "getche()"

        * "getwche()"

        * "putch()"

        * "putwch()"

        * "ungetch()"

        * "ungetwch()"

      * Other Functions

        * "heapmin()"

        * "CRT_ASSEMBLY_VERSION"

        * "VC_ASSEMBLY_PUBLICKEYTOKEN"

        * "LIBRARIES_ASSEMBLY_NAME_PREFIX"

    * "winreg" --- Windows registry access

      * Functions

        * "CloseKey()"

        * "ConnectRegistry()"

        * "CreateKey()"

        * "CreateKeyEx()"

        * "DeleteKey()"

        * "DeleteKeyEx()"

        * "DeleteValue()"

        * "EnumKey()"

        * "EnumValue()"

        * "ExpandEnvironmentStrings()"

        * "FlushKey()"

        * "LoadKey()"

        * "OpenKey()"

        * "OpenKeyEx()"

        * "QueryInfoKey()"

        * "QueryValue()"

        * "QueryValueEx()"

        * "SaveKey()"

        * "SetValue()"

        * "SetValueEx()"

        * "DisableReflectionKey()"

        * "EnableReflectionKey()"

        * "QueryReflectionKey()"

      * Constants

        * HKEY_* Constants

          * "HKEY_CLASSES_ROOT"

          * "HKEY_CURRENT_USER"

          * "HKEY_LOCAL_MACHINE"

          * "HKEY_USERS"

          * "HKEY_PERFORMANCE_DATA"

          * "HKEY_CURRENT_CONFIG"

          * "HKEY_DYN_DATA"

        * Access Rights

          * "KEY_ALL_ACCESS"

          * "KEY_WRITE"

          * "KEY_READ"

          * "KEY_EXECUTE"

          * "KEY_QUERY_VALUE"

          * "KEY_SET_VALUE"

          * "KEY_CREATE_SUB_KEY"

          * "KEY_ENUMERATE_SUB_KEYS"

          * "KEY_NOTIFY"

          * "KEY_CREATE_LINK"

          * 64-bit Specific

            * "KEY_WOW64_64KEY"

            * "KEY_WOW64_32KEY"

        * Value Types

          * "REG_BINARY"

          * "REG_DWORD"

          * "REG_DWORD_LITTLE_ENDIAN"

          * "REG_DWORD_BIG_ENDIAN"

          * "REG_EXPAND_SZ"

          * "REG_LINK"

          * "REG_MULTI_SZ"

          * "REG_NONE"

          * "REG_QWORD"

          * "REG_QWORD_LITTLE_ENDIAN"

          * "REG_RESOURCE_LIST"

          * "REG_FULL_RESOURCE_DESCRIPTOR"

          * "REG_RESOURCE_REQUIREMENTS_LIST"

          * "REG_SZ"

      * Registry Handle Objects

        * "Close()"

        * "Detach()"

        * "__enter__()"

        * "__exit__()"

    * "winsound" --- Sound-playing interface for Windows

      * "Beep()"

      * "PlaySound()"

      * "MessageBeep()"

      * "SND_FILENAME"

      * "SND_ALIAS"

      * "SND_LOOP"

      * "SND_MEMORY"

      * "SND_PURGE"

      * "SND_ASYNC"

      * "SND_NODEFAULT"

      * "SND_NOSTOP"

      * "SND_NOWAIT"

      * "MB_ICONASTERISK"

      * "MB_ICONEXCLAMATION"

      * "MB_ICONHAND"

      * "MB_ICONQUESTION"

      * "MB_OK"

  * Unix Specific Services

    * "posix" --- The most common POSIX system calls

      * Large File Support

      * Notable Module Contents

        * "environ"

    * "pwd" --- The password database

      * "getpwuid()"

      * "getpwnam()"

      * "getpwall()"

    * "grp" --- The group database

      * "getgrgid()"

      * "getgrnam()"

      * "getgrall()"

    * "termios" --- POSIX style tty control

      * "tcgetattr()"

      * "tcsetattr()"

        * "TCSANOW"

        * "TCSADRAIN"

        * "TCSAFLUSH"

      * "tcsendbreak()"

      * "tcdrain()"

      * "tcflush()"

      * "tcflow()"

      * "tcgetwinsize()"

      * "tcsetwinsize()"

      * Example

    * "tty" --- Terminal control functions

      * "cfmakeraw()"

      * "cfmakecbreak()"

      * "setraw()"

      * "setcbreak()"

    * "pty" --- Pseudo-terminal utilities

      * "fork()"

      * "openpty()"

      * "spawn()"

      * Example

    * "fcntl" --- The "fcntl" and "ioctl" system calls

      * "fcntl()"

      * "ioctl()"

      * "flock()"

      * "lockf()"

        * "LOCK_UN"

        * "LOCK_SH"

        * "LOCK_EX"

        * "LOCK_NB"

    * "resource" --- Resource usage information

      * "error"

      * Resource Limits

        * "RLIM_INFINITY"

        * "getrlimit()"

        * "setrlimit()"

        * "prlimit()"

        * "RLIMIT_CORE"

        * "RLIMIT_CPU"

        * "RLIMIT_FSIZE"

        * "RLIMIT_DATA"

        * "RLIMIT_STACK"

        * "RLIMIT_RSS"

        * "RLIMIT_NPROC"

        * "RLIMIT_NOFILE"

        * "RLIMIT_OFILE"

        * "RLIMIT_MEMLOCK"

        * "RLIMIT_VMEM"

        * "RLIMIT_AS"

        * "RLIMIT_MSGQUEUE"

        * "RLIMIT_NICE"

        * "RLIMIT_RTPRIO"

        * "RLIMIT_RTTIME"

        * "RLIMIT_SIGPENDING"

        * "RLIMIT_SBSIZE"

        * "RLIMIT_SWAP"

        * "RLIMIT_NPTS"

        * "RLIMIT_KQUEUES"

      * Resource Usage

        * "getrusage()"

        * "getpagesize()"

        * "RUSAGE_SELF"

        * "RUSAGE_CHILDREN"

        * "RUSAGE_BOTH"

        * "RUSAGE_THREAD"

    * "syslog" --- Unix syslog library routines

      * "syslog()"

      * "openlog()"

      * "closelog()"

      * "setlogmask()"

      * Examples

        * Simple example

  * Modules command-line interface (CLI)

  * Superseded Modules

    * "aifc" --- Read and write AIFF and AIFC files

      * "open()"

      * "getnchannels()"

      * "getsampwidth()"

      * "getframerate()"

      * "getnframes()"

      * "getcomptype()"

      * "getcompname()"

      * "getparams()"

      * "getmarkers()"

      * "getmark()"

      * "readframes()"

      * "rewind()"

      * "setpos()"

      * "tell()"

      * "close()"

      * "aiff()"

      * "aifc()"

      * "setnchannels()"

      * "setsampwidth()"

      * "setframerate()"

      * "setnframes()"

      * "setcomptype()"

      * "setparams()"

      * "setmark()"

      * "writeframes()"

      * "writeframesraw()"

    * "audioop" --- Manipulate raw audio data

      * "error"

      * "add()"

      * "adpcm2lin()"

      * "alaw2lin()"

      * "avg()"

      * "avgpp()"

      * "bias()"

      * "byteswap()"

      * "cross()"

      * "findfactor()"

      * "findfit()"

      * "findmax()"

      * "getsample()"

      * "lin2adpcm()"

      * "lin2alaw()"

      * "lin2lin()"

      * "lin2ulaw()"

      * "max()"

      * "maxpp()"

      * "minmax()"

      * "mul()"

      * "ratecv()"

      * "reverse()"

      * "rms()"

      * "tomono()"

      * "tostereo()"

      * "ulaw2lin()"

    * "cgi" --- Common Gateway Interface support

      * Introduction

      * Using the cgi module

      * Higher Level Interface

        * "getfirst()"

        * "getlist()"

      * Functions

        * "parse()"

        * "parse_multipart()"

        * "parse_header()"

        * "test()"

        * "print_environ()"

        * "print_form()"

        * "print_directory()"

        * "print_environ_usage()"

      * 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

      * "enable()"

      * "text()"

      * "html()"

      * "handler()"

    * "chunk" --- Read IFF chunked data

      * "Chunk"

        * "getname()"

        * "getsize()"

        * "close()"

        * "isatty()"

        * "seek()"

        * "tell()"

        * "read()"

        * "skip()"

    * "crypt" --- Function to check Unix passwords

      * Hashing Methods

        * "METHOD_SHA512"

        * "METHOD_SHA256"

        * "METHOD_BLOWFISH"

        * "METHOD_MD5"

        * "METHOD_CRYPT"

      * Module Attributes

        * "methods"

      * Module Functions

        * "crypt()"

        * "mksalt()"

      * Examples

    * "imghdr" --- Determine the type of an image

      * "what()"

      * "tests"

    * "mailcap" --- Mailcap file handling

      * "findmatch()"

      * "getcaps()"

    * "msilib" --- Read and write Microsoft Installer files

      * "FCICreate()"

      * "UuidCreate()"

      * "OpenDatabase()"

      * "CreateRecord()"

      * "init_database()"

      * "add_data()"

      * "Binary"

      * "add_tables()"

      * "add_stream()"

      * "gen_uuid()"

      * Database Objects

        * "OpenView()"

        * "Commit()"

        * "GetSummaryInformation()"

        * "Close()"

      * View Objects

        * "Execute()"

        * "GetColumnInfo()"

        * "Fetch()"

        * "Modify()"

        * "Close()"

      * Summary Information Objects

        * "GetProperty()"

        * "GetPropertyCount()"

        * "SetProperty()"

        * "Persist()"

      * Record Objects

        * "GetFieldCount()"

        * "GetInteger()"

        * "GetString()"

        * "SetString()"

        * "SetStream()"

        * "SetInteger()"

        * "ClearData()"

      * Errors

      * CAB Objects

        * "CAB"

          * "append()"

          * "commit()"

      * Directory Objects

        * "Directory"

          * "start_component()"

          * "add_file()"

          * "glob()"

          * "remove_pyc()"

      * Features

        * "Feature"

          * "set_current()"

      * GUI classes

        * "Control"

          * "event()"

          * "mapping()"

          * "condition()"

        * "RadioButtonGroup"

          * "add()"

        * "Dialog"

          * "control()"

          * "text()"

          * "bitmap()"

          * "line()"

          * "pushbutton()"

          * "radiogroup()"

          * "checkbox()"

      * Precomputed tables

        * "schema"

        * "sequence"

        * "text"

    * "nis" --- Interface to Sun's NIS (Yellow Pages)

      * "match()"

      * "cat()"

      * "maps()"

      * "get_default_domain()"

      * "error"

    * "nntplib" --- NNTP protocol client

      * "NNTP"

      * "NNTP_SSL"

      * "NNTPError"

        * "response"

      * "NNTPReplyError"

      * "NNTPTemporaryError"

      * "NNTPPermanentError"

      * "NNTPProtocolError"

      * "NNTPDataError"

      * NNTP Objects

        * Attributes

          * "nntp_version"

          * "nntp_implementation"

        * Methods

          * "quit()"

          * "getwelcome()"

          * "getcapabilities()"

          * "login()"

          * "starttls()"

          * "newgroups()"

          * "newnews()"

          * "list()"

          * "descriptions()"

          * "description()"

          * "group()"

          * "over()"

          * "help()"

          * "stat()"

          * "next()"

          * "last()"

          * "article()"

          * "head()"

          * "body()"

          * "post()"

          * "ihave()"

          * "date()"

          * "slave()"

          * "set_debuglevel()"

          * "xhdr()"

          * "xover()"

      * Utility functions

        * "decode_header()"

    * "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

            * "OptionGroup"

            * "get_option_group()"

        * Printing a version string

          * "print_version()"

          * "get_version()"

        * How "optparse" handles errors

        * Putting it all together

      * Reference Guide

        * Creating the parser

          * "OptionParser"

        * Populating the parser

        * Defining options

          * "add_option()"

          * "Values"

        * Option attributes

          * "Option"

          * "action"

          * "type"

          * "dest"

          * "default"

          * "nargs"

          * "const"

          * "choices"

          * "callback"

          * "callback_args"

          * "callback_kwargs"

          * "help"

          * "metavar"

        * Standard option actions

        * Standard option types

        * Parsing arguments

          * "parse_args()"

        * Querying and manipulating your option parser

          * "disable_interspersed_args()"

          * "enable_interspersed_args()"

          * "get_option()"

          * "has_option()"

          * "remove_option()"

        * Conflicts between options

        * Cleanup

        * Other methods

          * "set_usage()"

          * "print_usage()"

          * "get_usage()"

          * "set_defaults()"

      * 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

          * "TYPES"

          * "TYPE_CHECKER"

        * Adding new actions

          * "ACTIONS"

          * "STORE_ACTIONS"

          * "TYPED_ACTIONS"

          * "ALWAYS_TYPED_ACTIONS"

      * Exceptions

        * "OptionError"

        * "OptionConflictError"

        * "OptionValueError"

        * "BadOptionError"

        * "AmbiguousOptionError"

    * "ossaudiodev" --- Access to OSS-compatible audio devices

      * "OSSAudioError"

      * "open()"

      * "openmixer()"

      * Audio Device Objects

        * "close()"

        * "fileno()"

        * "read()"

        * "write()"

        * "writeall()"

        * "nonblock()"

        * "getfmts()"

        * "setfmt()"

        * "channels()"

        * "speed()"

        * "sync()"

        * "reset()"

        * "post()"

        * "setparameters()"

        * "bufsize()"

        * "obufcount()"

        * "obuffree()"

        * "closed"

        * "name"

        * "mode"

      * Mixer Device Objects

        * "close()"

        * "fileno()"

        * "controls()"

        * "stereocontrols()"

        * "reccontrols()"

        * "get()"

        * "set()"

        * "get_recsrc()"

        * "set_recsrc()"

    * "pipes" --- Interface to shell pipelines

      * "Template"

      * Template Objects

        * "reset()"

        * "clone()"

        * "debug()"

        * "append()"

        * "prepend()"

        * "open()"

        * "copy()"

    * "sndhdr" --- Determine type of sound file

      * "what()"

      * "whathdr()"

      * "tests"

    * "spwd" --- The shadow password database

      * "getspnam()"

      * "getspall()"

    * "sunau" --- Read and write Sun AU files

      * "open()"

      * "Error"

      * "AUDIO_FILE_MAGIC"

      * "AUDIO_FILE_ENCODING_MULAW_8"

      * "AUDIO_FILE_ENCODING_LINEAR_8"

      * "AUDIO_FILE_ENCODING_LINEAR_16"

      * "AUDIO_FILE_ENCODING_LINEAR_24"

      * "AUDIO_FILE_ENCODING_LINEAR_32"

      * "AUDIO_FILE_ENCODING_ALAW_8"

      * "AUDIO_FILE_ENCODING_FLOAT"

      * "AUDIO_FILE_ENCODING_DOUBLE"

      * "AUDIO_FILE_ENCODING_ADPCM_G721"

      * "AUDIO_FILE_ENCODING_ADPCM_G722"

      * "AUDIO_FILE_ENCODING_ADPCM_G723_3"

      * "AUDIO_FILE_ENCODING_ADPCM_G723_5"

      * AU_read Objects

        * "close()"

        * "getnchannels()"

        * "getsampwidth()"

        * "getframerate()"

        * "getnframes()"

        * "getcomptype()"

        * "getcompname()"

        * "getparams()"

        * "readframes()"

        * "rewind()"

        * "setpos()"

        * "tell()"

        * "getmarkers()"

        * "getmark()"

      * AU_write Objects

        * "setnchannels()"

        * "setsampwidth()"

        * "setframerate()"

        * "setnframes()"

        * "setcomptype()"

        * "setparams()"

        * "tell()"

        * "writeframesraw()"

        * "writeframes()"

        * "close()"

    * "telnetlib" --- Telnet client

      * "Telnet"

      * Telnet Objects

        * "read_until()"

        * "read_all()"

        * "read_some()"

        * "read_very_eager()"

        * "read_eager()"

        * "read_lazy()"

        * "read_very_lazy()"

        * "read_sb_data()"

        * "open()"

        * "msg()"

        * "set_debuglevel()"

        * "close()"

        * "get_socket()"

        * "fileno()"

        * "write()"

        * "interact()"

        * "mt_interact()"

        * "expect()"

        * "set_option_negotiation_callback()"

      * Telnet Example

    * "uu" --- Encode and decode uuencode files

      * "encode()"

      * "decode()"

      * "Error"

    * "xdrlib" --- Encode and decode XDR data

      * "Packer"

      * "Unpacker"

      * Packer Objects

        * "get_buffer()"

        * "reset()"

        * "pack_float()"

        * "pack_double()"

        * "pack_fstring()"

        * "pack_fopaque()"

        * "pack_string()"

        * "pack_opaque()"

        * "pack_bytes()"

        * "pack_list()"

        * "pack_farray()"

        * "pack_array()"

      * Unpacker Objects

        * "reset()"

        * "get_position()"

        * "set_position()"

        * "get_buffer()"

        * "done()"

        * "unpack_float()"

        * "unpack_double()"

        * "unpack_fstring()"

        * "unpack_fopaque()"

        * "unpack_string()"

        * "unpack_opaque()"

        * "unpack_bytes()"

        * "unpack_list()"

        * "unpack_farray()"

        * "unpack_array()"

      * Exceptions

        * "Error"

        * "ConversionError"

  * Removed Modules

  * Security Considerations

* Extending and Embedding the Python Interpreter

  * Recommended third party tools

  * Creating extensions without third party tools

    * 1. Extending Python with C or C++

      * 1.1. A Simple Example

      * 1.2. Intermezzo: Errors and Exceptions

      * 1.3. Back to the Example

      * 1.4. The Module's Method Table and Initialization Function

      * 1.5. Compilation and Linkage

      * 1.6. Calling Python Functions from C

      * 1.7. Extracting Parameters in Extension Functions

      * 1.8. Keyword Parameters for Extension Functions

      * 1.9. Building Arbitrary Values

      * 1.10. Reference Counts

        * 1.10.1. Reference Counting in Python

        * 1.10.2. Ownership Rules

        * 1.10.3. Thin Ice

        * 1.10.4. NULL Pointers

      * 1.11. Writing Extensions in C++

      * 1.12. Providing a C API for an Extension Module

    * 2. Defining Extension Types: Tutorial

      * 2.1. The Basics

      * 2.2. Adding data and methods to the Basic example

      * 2.3. Providing finer control over data attributes

      * 2.4. Supporting cyclic garbage collection

      * 2.5. Subclassing other types

    * 3. Defining Extension Types: Assorted Topics

      * 3.1. Finalization and De-allocation

      * 3.2. Object Presentation

      * 3.3. Attribute Management

        * 3.3.1. Generic Attribute Management

        * 3.3.2. Type-specific Attribute Management

      * 3.4. Object Comparison

      * 3.5. Abstract Protocol Support

      * 3.6. Weak Reference Support

      * 3.7. More Suggestions

    * 4. Building C and C++ Extensions

      * 4.1. Building C and C++ Extensions with setuptools

    * 5. Building C and C++ Extensions on Windows

      * 5.1. A Cookbook Approach

      * 5.2. Differences Between Unix and Windows

      * 5.3. Using DLLs in Practice

  * Embedding the CPython runtime in a larger application

    * 1. Embedding Python in Another Application

      * 1.1. Very High Level Embedding

      * 1.2. Beyond Very High Level Embedding: An overview

      * 1.3. Pure Embedding

      * 1.4. Extending Embedded Python

      * 1.5. Embedding Python in C++

      * 1.6. 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

  * C API Stability

    * Unstable C API

    * Stable Application Binary Interface

      * Limited C API

      * Stable ABI

      * Limited API Scope and Performance

      * Limited API Caveats

    * Platform Considerations

    * Contents of Limited API

  * 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

    * PyHash API

    * Reflection

    * Codec registry and support functions

      * Codec lookup API

      * Registry API for Unicode encoding error handlers

    * Support for Perf Maps

  * Abstract Objects Layer

    * Object Protocol

    * Call Protocol

      * The *tp_call* Protocol

      * The Vectorcall Protocol

        * Recursion Control

        * Vectorcall Support API

      * Object Calling API

      * Call Support API

    * 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

        * Creating Heap-Allocated Types

      * The "None" Object

    * Numeric Objects

      * Integer Objects

      * Boolean Objects

      * Floating-Point Objects

        * Pack and Unpack functions

          * Pack functions

          * Unpack functions

      * 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

          * 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

      * Extra information

    * 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

      * Frame Objects

        * Internal Frames

      * Generator Objects

      * Coroutine Objects

      * Context Variables Objects

      * DateTime Objects

      * Objects for Type Hinting

  * 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

      * Cautions about fork()

      * High-level API

      * Low-level API

    * Sub-interpreter support

      * A Per-Interpreter GIL

      * 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

  * Python Initialization Configuration

    * Example

    * PyWideStringList

    * PyStatus

    * PyPreConfig

    * Preinitialize Python with PyPreConfig

    * PyConfig

    * Initialization with PyConfig

    * Isolated Configuration

    * Python Configuration

    * Python Path Configuration

    * Py_RunMain()

    * Py_GetArgcArgv()

    * Multi-Phase Initialization Private Provisional API

  * Memory Management

    * Overview

    * Allocator Domains

    * Raw Memory Interface

    * Memory Interface

    * Object allocators

    * Default Memory Allocators

    * Customize Memory Allocators

    * Debug hooks on the Python memory allocators

    * The pymalloc allocator

      * Customize pymalloc Arena Allocator

    * tracemalloc C API

    * Examples

  * Object Implementation Support

    * Allocating Objects on the Heap

    * Common Object Structures

      * Base object types and macros

      * Implementing functions and methods

      * Accessing attributes of extension types

        * Member flags

        * Member types

        * Defining Getters and Setters

    * Type Objects

      * Quick Reference

        * "tp slots"

        * sub-slots

        * slot typedefs

      * PyTypeObject Definition

      * PyObject Slots

      * PyVarObject Slots

      * PyTypeObject Slots

      * Static Types

      * Heap Types

      * Number Object Structures

      * Mapping Object Structures

      * Sequence Object Structures

      * Buffer Object Structures

      * Async Object Structures

      * Slot Type typedefs

      * Examples

    * Supporting Cyclic Garbage Collection

      * Controlling the Garbage Collector State

      * Querying Garbage Collector State

  * API and ABI Versioning

* 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 Extension Modules to Python 3

  * 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 Guide

    * Primer

      * Simple example: A descriptor that returns a constant

      * Dynamic lookups

      * Managed attributes

      * Customized names

      * Closing thoughts

    * Complete Practical Example

      * Validator class

      * Custom validators

      * Practical application

    * Technical Tutorial

      * Abstract

      * Definition and introduction

      * Descriptor protocol

      * Overview of descriptor invocation

      * Invocation from an instance

      * Invocation from a class

      * Invocation from super

      * Summary of invocation logic

      * Automatic name notification

      * ORM example

    * Pure Python Equivalents

      * Properties

      * Functions and methods

      * Kinds of methods

      * Static methods

      * Class methods

      * Member objects and __slots__

  * Debugging C API extensions and CPython Internals with GDB

    * Prerequisites

      * Setup with Python built from source

      * Setup for Python from a Linux distro

    * Using the Debug build and Development mode

    * Using the "python-gdb" extension

      * Pretty-printers

      * "py-list"

      * "py-up" and "py-down"

      * "py-bt"

      * "py-print"

      * "py-locals"

    * Use with GDB commands

  * Enum HOWTO

    * 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

    * Dataclass support

    * Pickling

    * Functional API

    * Derived Enumerations

      * IntEnum

      * StrEnum

      * IntFlag

      * Flag

      * Others

    * When to use "__new__()" vs. "__init__()"

      * Finer Points

        * Supported "__dunder__" names

        * Supported "_sunder_" names

        * _Private__names

        * "Enum" member type

        * Creating members that are mixed with other data types

        * Boolean value of "Enum" classes and members

        * "Enum" classes with methods

        * Combining members of "Flag"

        * "Flag" and "IntFlag" minutia

    * How are Enums and Flags different?

      * Enum Classes

      * Flag Classes

      * Enum Members (aka instances)

      * Flag Members

    * Enum Cookbook

      * Omitting values

        * Using "auto"

        * Using "object"

        * Using a descriptive string

        * Using a custom "__new__()"

      * OrderedEnum

      * DuplicateFreeEnum

      * Planet

      * TimePeriod

    * Subclassing EnumType

  * 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 variable data

      * Changing the format of displayed messages

      * Displaying the date/time in messages

      * Next Steps

    * Advanced Logging Tutorial

      * Logging Flow

      * Loggers

      * Handlers

      * Formatters

        * "__init__()"

      * 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

    * Other resources

  * Logging Cookbook

    * Using logging in multiple modules

    * Logging from multiple threads

    * Multiple handlers and formatters

    * Logging to multiple destinations

    * Custom handling of levels

    * Configuration server example

    * Dealing with handlers that block

    * Sending and receiving logging events across a network

      * Running a logging socket listener in production

    * 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

    * Use of "contextvars"

    * Imparting contextual information in handlers

    * Logging to a single file from multiple processes

      * Using concurrent.futures.ProcessPoolExecutor

      * Deploying Web applications using Gunicorn and uWSGI

    * Using file rotation

    * Use of alternative formatting styles

    * Customizing "LogRecord"

    * Subclassing QueueHandler and QueueListener- a ZeroMQ example

      * Subclass "QueueHandler"

      * Subclass "QueueListener"

    * Subclassing QueueHandler and QueueListener- a "pynng" example

      * Subclass "QueueListener"

      * Subclass "QueueHandler"

    * 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

    * Sending logging messages to email, with buffering

    * Formatting times using UTC (GMT) via configuration

    * Using a context manager for selective logging

    * A CLI application starter template

    * A Qt GUI for logging

    * Logging to syslog with RFC5424 support

    * How to treat a logger like an output stream

    * Patterns to avoid

      * Opening the same log file multiple times

      * Using loggers as attributes in a class or passing them as
        parameters

      * Adding handlers other than "NullHandler" to a logger in a
        library

      * Creating a lot of loggers

    * Other resources

  * 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 Techniques

    * Sorting Basics

    * Key Functions

    * Operator Module Functions and Partial Function Evaluation

    * Ascending and Descending

    * Sort Stability and Complex Sorts

    * Decorate-Sort-Undecorate

    * Comparison Functions

    * Odds and Ends

    * Partial Sorts

  * Unicode HOWTO

    * Introduction to Unicode

      * Definitions

      * Encodings

      * References

    * Python's 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

      * Specifying ambiguous arguments

      * Conflicting options

    * How to translate the argparse output

    * Custom type converters

    * 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

  * Instrumenting CPython with DTrace and SystemTap

    * Enabling the static markers

    * Static DTrace probes

    * Static SystemTap markers

    * Available static markers

    * SystemTap Tapsets

    * Examples

  * Python support for the Linux "perf" profiler

    * How to enable "perf" profiling support

    * How to obtain the best results

  * Annotations Best Practices

    * Accessing The Annotations Dict Of An Object In Python 3.10 And
      Newer

    * Accessing The Annotations Dict Of An Object In Python 3.9 And
      Older

    * Manually Un-Stringizing Stringized Annotations

    * Best Practices For "__annotations__" In Any Python Version

    * "__annotations__" Quirks

  * Isolating Extension Modules

    * Who should read this

    * Background

      * Enter Per-Module State

      * Isolated Module Objects

      * Surprising Edge Cases

    * Making Modules Safe with Multiple Interpreters

      * Managing Global State

      * Managing Per-Module State

      * Opt-Out: Limiting to One Module Object per Process

      * Module State Access from Functions

    * Heap Types

      * Changing Static Types to Heap Types

      * Defining Heap Types

      * Garbage-Collection Protocol

        * "tp_traverse" in Python 3.8 and lower

        * Delegating "tp_traverse"

        * Defining "tp_dealloc"

        * Not overriding "tp_free"

        * Avoiding "PyObject_New"

      * Module State Access from Classes

      * Module State Access from Regular Methods

      * Module State Access from Slot Methods, Getters and Setters

      * Lifetime of the Module State

    * Open Issues

      * Per-Class Scope

      * Lossless Conversion to Heap Types

  * The Python 2.3 Method Resolution Order

    * The beginning

    * The C3 Method Resolution Order

    * Examples

    * Bad Method Resolution Orders

    * The end

    * Resources

* 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 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 in CPython?

    * How are dictionaries implemented in CPython?

    * Why must dictionary keys be immutable?

    * Why doesn't list.sort() return the sorted list?

    * How do you specify and enforce an interface spec in Python?

    * Why is there no goto?

    * Why can't raw strings (r-strings) end with a backslash?

    * Why doesn't Python have a "with" statement for attribute
      assignments?

    * Why don't generators support the with statement?

    * 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 solve the missing api-ms-win-crt-runtime-l1-1-0.dll
      error?

  * Graphic User Interface FAQ

    * General GUI Questions

    * What 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?

* Deprecations

  * Pending Removal in Python 3.13

  * Pending Removal in Python 3.14

  * Pending Removal in Python 3.15

  * Pending Removal in Python 3.16

  * Pending Removal in Future Versions

  * C API Deprecations

    * Pending Removal in Python 3.14

    * Pending Removal in Python 3.15

    * Pending Removal in Future Versions

* 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.12.7

    * 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

    * ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON 3.12.7
      DOCUMENTATION

  * 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

    * W3C C14N test suite

    * Audioop

    * asyncio
