@@ -50,6 +50,8 @@ This article explains the new features in Python 3.11, compared to 3.10.
5050For full details, see the :ref: `changelog <changelog >`.
5151
5252
53+ .. _whatsnew311-summary :
54+
5355Summary -- Release highlights
5456=============================
5557
@@ -96,16 +98,18 @@ Important deprecations, removals or restrictions:
9698* :pep: `670 `: Convert macros to functions in the Python C API.
9799
98100
101+ .. _whatsnew311-features :
102+
99103New Features
100104============
101105
102106.. _whatsnew311-pep657 :
103107
104- Enhanced error locations in tracebacks
105- --------------------------------------
108+ PEP 657: Enhanced error locations in tracebacks
109+ -----------------------------------------------
106110
107111When printing tracebacks, the interpreter will now point to the exact expression
108- that caused the error instead of just the line. For example:
112+ that caused the error, instead of just the line. For example:
109113
110114.. code-block :: python
111115
@@ -118,9 +122,9 @@ that caused the error instead of just the line. For example:
118122 ^^^^^^^^^
119123 AttributeError : ' NoneType' object has no attribute ' x'
120124
121- Previous versions of the interpreter would point to just the line making it
125+ Previous versions of the interpreter would point to just the line, making it
122126ambiguous which object was ``None ``. These enhanced errors can also be helpful
123- when dealing with deeply nested dictionary objects and multiple function calls,
127+ when dealing with deeply nested :class: ` dict ` objects and multiple function calls:
124128
125129.. code-block :: python
126130
@@ -138,7 +142,7 @@ when dealing with deeply nested dictionary objects and multiple function calls,
138142 ~~~~~~~~~~~~~~~~~~^^^^^
139143 TypeError : ' NoneType' object is not subscriptable
140144
141- as well as complex arithmetic expressions:
145+ As well as complex arithmetic expressions:
142146
143147.. code-block :: python
144148
@@ -148,33 +152,28 @@ as well as complex arithmetic expressions:
148152 ~~~~~~^~~
149153 ZeroDivisionError : division by zero
150154
151- See :pep: `657 ` for more details. (Contributed by Pablo Galindo, Batuhan Taskaya
152- and Ammar Askar in :issue: `43950 `.)
153-
154- .. note ::
155- This feature requires storing column positions in code objects which may
156- result in a small increase of disk usage of compiled Python files or
157- interpreter memory usage. To avoid storing the extra information and/or
158- deactivate printing the extra traceback information, the
159- :option: `-X ` ``no_debug_ranges `` command line flag or the :envvar: `PYTHONNODEBUGRANGES `
160- environment variable can be used.
161-
162- Column information for code objects
163- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
164-
165- The information used by the enhanced traceback feature is made available as a
166- general API that can be used to correlate bytecode instructions with source
167- code. This information can be retrieved using:
155+ Additionally, the information used by the enhanced traceback feature
156+ is made available via a general API, that can be used to correlate
157+ :term: `bytecode ` :ref: `instructions <bytecodes >` with source code location.
158+ This information can be retrieved using:
168159
169160- The :meth: `codeobject.co_positions ` method in Python.
170- - The :c:func: `PyCode_Addr2Location ` function in the C-API.
171-
172- The :option: `-X ` ``no_debug_ranges `` option and the environment variable
173- :envvar: `PYTHONNODEBUGRANGES ` can be used to disable this feature.
161+ - The :c:func: `PyCode_Addr2Location ` function in the C API.
174162
175163See :pep: `657 ` for more details. (Contributed by Pablo Galindo, Batuhan Taskaya
176164and Ammar Askar in :issue: `43950 `.)
177165
166+ .. note ::
167+ This feature requires storing column positions in :ref: `codeobjects `,
168+ which may result in a small increase in interpreter memory usage
169+ and disk usage for compiled Python files.
170+ To avoid storing the extra information
171+ and deactivate printing the extra traceback information,
172+ use the :option: `-X no_debug_ranges <-X> ` command line option
173+ or the :envvar: `PYTHONNODEBUGRANGES ` environment variable.
174+
175+
176+ .. _whatsnew311-pep654 :
178177
179178PEP 654: Exception Groups and ``except* ``
180179-----------------------------------------
@@ -192,16 +191,20 @@ See :pep:`654` for more details.
192191Irit Katriel, Yury Selivanov and Guido van Rossum.)
193192
194193
195- .. _whatsnew311-pep678 :
194+ .. _whatsnew311-pep670 :
196195
197196PEP 678: Exceptions can be enriched with notes
198- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197+ ----------------------------------------------
198+
199+ The :meth: `~BaseException.add_note ` method is added to :exc: `BaseException `.
200+ It can be used to enrich exceptions with context information
201+ that is not available at the time when the exception is raised.
202+ The added notes appear in the default traceback.
203+
204+ See :pep: `678 ` for more details.
199205
200- The :meth: `add_note ` method was added to :exc: `BaseException `. It can be
201- used to enrich exceptions with context information which is not available
202- at the time when the exception is raised. The notes added appear in the
203- default traceback. See :pep: `678 ` for more details. (Contributed by
204- Irit Katriel in :issue: `45607 `.)
206+ (Contributed by Irit Katriel in :issue: `45607 `.
207+ PEP written by Zac Hatfield-Dodds.)
205208
206209
207210.. _whatsnew311-windows-launcher :
0 commit comments