What’s New in Python
********************

The “What’s New in Python” series of essays takes tours through the
most important changes between major Python versions.  They are a
“must read” for anyone wishing to stay up-to-date after a new release.

* What’s New In Python 3.10

  * Summary – Release highlights

  * New Features

  * New Features Related to Type Hints

  * Other Language Changes

  * New Modules

  * Improved Modules

  * Optimizations

  * Deprecated

  * Removed

  * Porting to Python 3.10

  * CPython bytecode changes

  * Build Changes

  * C API Changes

  * Notable security feature in 3.10.7

  * Notable security feature in 3.10.8

  * Notable Changes in 3.10.12

  * Notable changes in 3.10.15

* What’s New In Python 3.9

  * Summary – Release highlights

  * You should check for DeprecationWarning in your code

  * New Features

  * Other Language Changes

  * New Modules

  * Improved Modules

  * Optimizations

  * Deprecated

  * Removed

  * Porting to Python 3.9

  * Build Changes

  * C API Changes

  * Notable changes in Python 3.9.1

  * Notable changes in Python 3.9.2

* What’s New In Python 3.8

  * Summary – Release highlights

  * New Features

  * Other Language Changes

  * New Modules

  * Improved Modules

  * Optimizations

  * Build and C API Changes

  * Deprecated

  * API and Feature Removals

  * Porting to Python 3.8

  * Notable changes in Python 3.8.1

  * Notable changes in Python 3.8.8

  * Notable changes in Python 3.8.12

* What’s New In Python 3.7

  * Summary – Release Highlights

  * New Features

  * Other Language Changes

  * New Modules

  * Improved Modules

  * C API Changes

  * Build Changes

  * Optimizations

  * Other CPython Implementation Changes

  * Deprecated Python Behavior

  * Deprecated Python modules, functions and methods

  * 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

  * 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

* What’s New In Python 3.6

  * Summary – Release highlights

  * New Features

  * Other Language Changes

  * New Modules

  * Improved Modules

  * Optimizations

  * Build and C API Changes

  * Other Improvements

  * Deprecated

  * Removed

  * Porting to Python 3.6

  * Notable changes in Python 3.6.2

  * 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

* What’s New In Python 3.5

  * Summary – Release highlights

  * New Features

  * Other Language Changes

  * New Modules

  * Improved Modules

  * Other module-level changes

  * Optimizations

  * Build and C API Changes

  * Deprecated

  * Removed

  * Porting to Python 3.5

  * Notable changes in Python 3.5.4

* What’s New In Python 3.4

  * Summary – Release Highlights

  * New Features

  * New Modules

  * Improved Modules

  * CPython Implementation Changes

  * Deprecated

  * Removed

  * Porting to Python 3.4

  * Changed in 3.4.3

* 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

  * PEP 393: Flexible String Representation

  * 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

  * Using importlib as the Implementation of Import

  * Other Language Changes

  * A Finer-Grained Import Lock

  * Builtin functions and types

  * New Modules

  * Improved Modules

  * Optimizations

  * Build and C API Changes

  * Deprecated

  * Porting to Python 3.3

* 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

  * 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

  * Overview Of Syntax Changes

  * Changes Already Present In Python 2.6

  * Library Changes

  * **PEP 3101**: A New Approach To String Formatting

  * Changes To Exceptions

  * Miscellaneous Other Changes

  * 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

  * New and Improved Modules

  * Build and C API Changes

  * Other Changes and Fixes

  * Porting to Python 2.7

  * New Features Added to Python 2.7 Maintenance Releases

  * Acknowledgements

* What’s New in Python 2.6

  * Python 3.0

  * Changes to the Development Process

  * PEP 343: The ‘with’ statement

  * PEP 366: Explicit Relative Imports From a Main Module

  * PEP 370: Per-user "site-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

  * Other Language Changes

  * New and Improved Modules

  * Deprecations and Removals

  * Build and C API Changes

  * Porting to Python 2.6

  * Acknowledgements

* What’s New in Python 2.5

  * PEP 308: Conditional Expressions

  * PEP 309: Partial Function Application

  * PEP 314: Metadata for Python Software Packages v1.1

  * PEP 328: Absolute and Relative Imports

  * PEP 338: Executing Modules as Scripts

  * PEP 341: Unified try/except/finally

  * PEP 342: New Generator Features

  * PEP 343: The ‘with’ statement

  * PEP 352: Exceptions as New-Style Classes

  * PEP 353: Using ssize_t as the index type

  * PEP 357: The ‘__index__’ method

  * Other Language Changes

  * New, Improved, and Removed Modules

  * Build and C API Changes

  * Porting to Python 2.5

  * Acknowledgements

* What’s New in Python 2.4

  * PEP 218: Built-In Set Objects

  * PEP 237: Unifying Long Integers and Integers

  * PEP 289: Generator Expressions

  * PEP 292: Simpler String Substitutions

  * PEP 318: Decorators for Functions and Methods

  * PEP 322: Reverse Iteration

  * PEP 324: New subprocess Module

  * PEP 327: Decimal Data Type

  * PEP 328: Multi-line Imports

  * PEP 331: Locale-Independent Float/String Conversions

  * Other Language Changes

  * New, Improved, and Deprecated Modules

  * Build and C API Changes

  * Porting to Python 2.4

  * Acknowledgements

* What’s New in Python 2.3

  * PEP 218: A Standard Set Datatype

  * PEP 255: Simple Generators

  * PEP 263: Source Code Encodings

  * PEP 273: Importing Modules from ZIP Archives

  * PEP 277: Unicode file name support for Windows NT

  * PEP 278: Universal Newline Support

  * PEP 279: enumerate()

  * PEP 282: The logging Package

  * PEP 285: A Boolean Type

  * PEP 293: Codec Error Handling Callbacks

  * PEP 301: Package Index and Metadata for Distutils

  * PEP 302: New Import Hooks

  * PEP 305: Comma-separated Files

  * PEP 307: Pickle Enhancements

  * Extended Slices

  * Other Language Changes

  * New, Improved, and Deprecated Modules

  * Pymalloc: A Specialized Object Allocator

  * Build and C API Changes

  * Other Changes and Fixes

  * Porting to Python 2.3

  * Acknowledgements

* What’s New in Python 2.2

  * Introduction

  * PEPs 252 and 253: Type and Class Changes

  * PEP 234: Iterators

  * PEP 255: Simple Generators

  * PEP 237: Unifying Long Integers and Integers

  * PEP 238: Changing the Division Operator

  * Unicode Changes

  * PEP 227: Nested Scopes

  * New and Improved Modules

  * Interpreter Changes and Fixes

  * Other Changes and Fixes

  * Acknowledgements

* What’s New in Python 2.1

  * Introduction

  * PEP 227: Nested Scopes

  * PEP 236: __future__ Directives

  * PEP 207: Rich Comparisons

  * PEP 230: Warning Framework

  * PEP 229: New Build System

  * PEP 205: Weak References

  * PEP 232: Function Attributes

  * PEP 235: Importing Modules on Case-Insensitive Platforms

  * PEP 217: Interactive Display Hook

  * PEP 208: New Coercion Model

  * PEP 241: Metadata in Python Packages

  * New and Improved Modules

  * Other Changes and Fixes

  * Acknowledgements

* What’s New in Python 2.0

  * Introduction

  * What About Python 1.6?

  * New Development Process

  * Unicode

  * List Comprehensions

  * Augmented Assignment

  * String Methods

  * Garbage Collection of Cycles

  * Other Core Changes

  * Porting to 2.0

  * Extending/Embedding Changes

  * Distutils: Making Modules Easy to Install

  * XML Modules

  * Module changes

  * New modules

  * IDLE Improvements

  * Deleted and Deprecated Modules

  * Acknowledgements

The “Changelog” is an HTML version of the file built from the contents
of the Misc/NEWS.d directory tree, which contains *all* nontrivial
changes to Python for the current version.

* Changelog

  * Python 3.10.17 final

  * Python 3.10.16 final

  * Python 3.10.15 final

  * Python 3.10.14 final

  * Python 3.10.13 final

  * Python 3.10.12 final

  * Python 3.10.11 final

  * Python 3.10.10 final

  * Python 3.10.9 final

  * Python 3.10.8 final

  * Python 3.10.7 final

  * Python 3.10.6 final

  * Python 3.10.5 final

  * Python 3.10.4 final

  * Python 3.10.3 final

  * Python 3.10.2 final

  * Python 3.10.1 final

  * Python 3.10.0 final

  * Python 3.10.0 release candidate 2

  * Python 3.10.0 release candidate 1

  * Python 3.10.0 beta 4

  * Python 3.10.0 beta 3

  * Python 3.10.0 beta 2

  * Python 3.10.0 beta 1

  * Python 3.10.0 alpha 7

  * Python 3.10.0 alpha 6

  * Python 3.10.0 alpha 5

  * Python 3.10.0 alpha 4

  * Python 3.10.0 alpha 3

  * Python 3.10.0 alpha 2

  * Python 3.10.0 alpha 1

  * Python 3.9.0 beta 1

  * Python 3.9.0 alpha 6

  * Python 3.9.0 alpha 5

  * Python 3.9.0 alpha 4

  * Python 3.9.0 alpha 3

  * Python 3.9.0 alpha 2

  * Python 3.9.0 alpha 1

  * Python 3.8.0 beta 1

  * Python 3.8.0 alpha 4

  * Python 3.8.0 alpha 3

  * Python 3.8.0 alpha 2

  * Python 3.8.0 alpha 1

  * Python 3.7.0 final

  * Python 3.7.0 release candidate 1

  * Python 3.7.0 beta 5

  * Python 3.7.0 beta 4

  * Python 3.7.0 beta 3

  * Python 3.7.0 beta 2

  * Python 3.7.0 beta 1

  * Python 3.7.0 alpha 4

  * Python 3.7.0 alpha 3

  * Python 3.7.0 alpha 2

  * Python 3.7.0 alpha 1

  * Python 3.6.6 final

  * Python 3.6.6 release candidate 1

  * Python 3.6.5 final

  * Python 3.6.5 release candidate 1

  * Python 3.6.4 final

  * Python 3.6.4 release candidate 1

  * Python 3.6.3 final

  * Python 3.6.3 release candidate 1

  * Python 3.6.2 final

  * Python 3.6.2 release candidate 2

  * Python 3.6.2 release candidate 1

  * Python 3.6.1 final

  * Python 3.6.1 release candidate 1

  * Python 3.6.0 final

  * Python 3.6.0 release candidate 2

  * Python 3.6.0 release candidate 1

  * Python 3.6.0 beta 4

  * Python 3.6.0 beta 3

  * Python 3.6.0 beta 2

  * Python 3.6.0 beta 1

  * Python 3.6.0 alpha 4

  * Python 3.6.0 alpha 3

  * Python 3.6.0 alpha 2

  * Python 3.6.0 alpha 1

  * Python 3.5.5 final

  * Python 3.5.5 release candidate 1

  * Python 3.5.4 final

  * Python 3.5.4 release candidate 1

  * Python 3.5.3 final

  * Python 3.5.3 release candidate 1

  * Python 3.5.2 final

  * Python 3.5.2 release candidate 1

  * Python 3.5.1 final

  * Python 3.5.1 release candidate 1

  * Python 3.5.0 final

  * Python 3.5.0 release candidate 4

  * Python 3.5.0 release candidate 3

  * Python 3.5.0 release candidate 2

  * Python 3.5.0 release candidate 1

  * Python 3.5.0 beta 4

  * Python 3.5.0 beta 3

  * Python 3.5.0 beta 2

  * Python 3.5.0 beta 1

  * Python 3.5.0 alpha 4

  * Python 3.5.0 alpha 3

  * Python 3.5.0 alpha 2

  * Python 3.5.0 alpha 1
