Skip to content

Commit 19ac51f

Browse files
authored
Merge branch 'main' into fix-gh-154002-pickle-instantiate-chaining
2 parents dbe238e + 20b50f8 commit 19ac51f

47 files changed

Lines changed: 2072 additions & 471 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Doc/c-api/exceptions.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,12 +499,12 @@ Querying the error indicator
499499
.. c:function:: void PyErr_SetRaisedException(PyObject *exc)
500500
501501
Set *exc* as the exception currently being raised,
502-
clearing the existing exception if one is set.
502+
clearing the existing exception if one is set. If *exc* is ``NULL``,
503+
just clear the existing exception.
503504
504-
.. warning::
505+
*exc* must be a valid exception or ``NULL``.
505506
506-
This call ":term:`steals <steal>`" a reference to *exc*,
507-
which must be a valid exception.
507+
This call ":term:`steals <steal>`" a reference to *exc*.
508508
509509
.. versionadded:: 3.12
510510

Doc/howto/abi3t-migration.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ Migrating to Stable ABI for free threading (``abi3t``)
88

99
Starting with the 3.15 release, CPython supports a variant of the Stable ABI
1010
that supports :term:`free-threaded <free threading>` Python:
11-
Stable ABI for Free-Threaded Builds, or ``abi3t`` for short.
11+
the Stable ABI for Free-Threaded Builds, or ``abi3t`` for short.
1212
This document describes how to adapt C API extensions to support free threading.
1313

1414
Why do this
1515
===========
1616

17-
The typical reason to use Stable ABI is to reduce the number of artifacts that
18-
you need to build and distribute for each version of your library.
17+
The typical reason to use the Stable ABI is to reduce the number of artifacts
18+
that you need to build and distribute for each version of your library.
1919

2020
Without the Stable ABI, you must build a separate shared library, and typically
2121
a *wheel* distribution, for each feature version of CPython you wish
@@ -87,16 +87,16 @@ builds; even the 3.15+ ones that this table "attributes" to ``abi3t``.)
8787
Why *not* do this
8888
-----------------
8989

90-
There are two main downsides to Stable ABI.
90+
There are two main downsides to the Stable ABI.
9191

92-
First, you extension may become slower, since Stable ABI prioritizes
92+
First, your extension may become slower, since the Stable ABI prioritizes
9393
compatibility over performance.
9494
The difference is usually not noticeable, and often can be mitigated by
9595
using the same source to build both a Stable ABI build and a few
9696
version-specific ones for "tier 1" CPython versions.
9797

9898
Second, not all of the C API is available.
99-
Extensions need to be ported to build for Stable ABI, which may be difficult
99+
Extensions need to be ported to build for the Stable ABI, which may be difficult
100100
or, in rare cases, impossible.
101101

102102
Specifically, ``abi3t`` requires APIs added in CPython 3.15.
@@ -127,15 +127,15 @@ Prerequisites
127127
This guide assumes that you have an extension written directly in C (or C++),
128128
which you want to port to ``abi3t``.
129129

130-
If your extenstion uses a code generator (like Cython) or language binding
130+
If your extension uses a code generator (like Cython) or language binding
131131
(like PyO3), it's best to wait until that tool has support for ``abi3t``.
132132
If you maintain such a tool, you might be able to adapt the instructions
133133
here for your tool.
134134

135135
Non-free-threaded Stable ABI
136136
----------------------------
137137

138-
Your extension should support the Stable ABI (``abi3t``).
138+
Your extension should support the non-free-threaded Stable ABI (``abi3``).
139139
If not, either port it first, or follow this guide but be prepared to fix
140140
issues it does not mention.
141141

@@ -183,7 +183,7 @@ following just after ``#include <Python.h>``::
183183
#error "abi3t define is not set!"
184184
#endif
185185

186-
This should result in a different error than "``abt3t`` define is not set".
186+
This should result in a different error than "``abi3t`` define is not set".
187187

188188
.. note::
189189

@@ -705,7 +705,7 @@ Testing
705705
Note that when you build an extension compatible with multiple versions of
706706
CPython, you should always *test* it with each version it supports (for
707707
example, 3.15, 3.16, and so on).
708-
Stable ABI only guarantees *ABI* compatibility; there may also be behavior
708+
The Stable ABI only guarantees *ABI* compatibility; there may also be behavior
709709
changes -- both intentional ones (covered by :pep:`387`) and bugs.
710710

711711
Be sure to run tests on both free-threaded and non-free-threaded builds

Doc/howto/logging-cookbook.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1955,7 +1955,7 @@ Subclass ``QueueListener``
19551955
class NNGSocketListener(logging.handlers.QueueListener):
19561956
19571957
def __init__(self, uri, /, *handlers, **kwargs):
1958-
# Have a timeout for interruptability, and open a
1958+
# Have a timeout for interruptibility, and open a
19591959
# subscriber socket
19601960
socket = pynng.Sub0(listen=uri, recv_timeout=500)
19611961
# The b'' subscription matches all topics

Doc/library/curses.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1321,6 +1321,8 @@ Reading window contents
13211321
The bottom 8 bits are the character proper and the upper bits are the attributes;
13221322
extract them with the :data:`A_CHARTEXT` and :data:`A_ATTRIBUTES` bit-masks,
13231323
and the color pair with :func:`pair_number`.
1324+
The character byte is the locale-encoded byte of the cell's character,
1325+
consistent with :meth:`instr`.
13241326
It cannot represent a cell holding combining characters, a character that does
13251327
not fit in a single byte, or a color pair outside the :func:`color_pair`
13261328
range; use :meth:`in_wch` for those, which returns it as a :class:`complexchar`.

Doc/library/datatypes.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ The modules described in this chapter provide a variety of specialized data
88
types such as dates and times, fixed-type arrays, heap queues, double-ended
99
queues, and enumerations.
1010

11-
Python also provides some built-in data types, in particular,
12-
:class:`dict`, :class:`list`, :class:`set` and :class:`frozenset`, and
13-
:class:`tuple`. The :class:`str` class is used to hold
11+
Python also provides :ref:`some built-in data types <bltin-types>`, in particular,
12+
:class:`list`, :class:`tuple`, :class:`dict`, :class:`frozendict`,
13+
:class:`set`, and :class:`frozenset`.
14+
The :class:`str` class is used to hold
1415
Unicode strings, and the :class:`bytes` and :class:`bytearray` classes are used
1516
to hold binary data.
1617

Doc/library/getopt.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ exception:
6262
option ``--fo`` will match as ``--foo``, but ``--f`` will
6363
not match uniquely, so :exc:`GetoptError` will be raised.
6464

65+
If *longopts* is a string it gets treated as a list of a single element.
66+
6567
The return value consists of two elements: the first is a list of ``(option,
6668
value)`` pairs; the second is the list of program arguments left after the
6769
option list was stripped (this is a trailing slice of *args*). Each

Doc/library/os.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1642,6 +1642,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo
16421642
- :data:`RWF_APPEND`
16431643
- :data:`RWF_DONTCACHE`
16441644
- :data:`RWF_ATOMIC`
1645+
- :data:`RWF_NOSIGNAL`
16451646

16461647
Return the total number of bytes actually written.
16471648

@@ -1691,6 +1692,16 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo
16911692
.. versionadded:: 3.10
16921693

16931694

1695+
.. data:: RWF_NOSIGNAL
1696+
1697+
Prevent pipe and socket writes from raising :const:`~signal.SIGPIPE`.
1698+
This flag is meaningful only for :func:`os.pwritev`.
1699+
1700+
.. availability:: Linux >= 6.18.
1701+
1702+
.. versionadded:: 3.16
1703+
1704+
16941705
.. function:: read(fd, n, /)
16951706

16961707
Read at most *n* bytes from file descriptor *fd*.

Doc/library/uu.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@ This module is no longer part of the Python standard library.
1111
It was :ref:`removed in Python 3.13 <whatsnew313-pep594>` after
1212
being deprecated in Python 3.11. The removal was decided in :pep:`594`.
1313

14+
Encoding and decoding in the uu format can instead be achieved using
15+
:func:`codecs.encode` and :func:`codecs.decode`, specifying ``"uu"``
16+
as the encoding.
17+
1418
The last version of Python that provided the :mod:`!uu` module was
1519
`Python 3.12 <https://docs.python.org/3.12/library/uu.html>`_.

Doc/using/configure.rst

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,6 +1087,32 @@ Libraries options
10871087

10881088
.. versionadded:: 3.10
10891089

1090+
.. option:: --with-curses=ncursesw|ncurses|curses
1091+
1092+
Designate a backend library for the :mod:`curses` and :mod:`curses.panel`
1093+
modules.
1094+
1095+
* ``ncursesw``: Use the wide-character ``libncursesw`` (and ``libpanelw``),
1096+
found via ``pkg-config``.
1097+
* ``ncurses``: Use ``libncurses`` (and ``libpanel``), found via
1098+
``pkg-config``.
1099+
* ``curses``: Use the system's native ``libcurses`` (and ``libpanel``), such
1100+
as on NetBSD or Solaris. It is built with wide-character support when the
1101+
library provides it.
1102+
1103+
Without this option (or with ``--with-curses=auto``, the default), Python
1104+
tries ``ncursesw`` and then ``ncurses``; the native ``curses`` is used only
1105+
when requested explicitly.
1106+
1107+
.. versionadded:: next
1108+
1109+
.. option:: --without-curses
1110+
1111+
Don't build the :mod:`curses` and :mod:`curses.panel` modules, even when a
1112+
curses library is present (built by default when one is found).
1113+
1114+
.. versionadded:: next
1115+
10901116
.. option:: --with-libm=STRING
10911117

10921118
Override ``libm`` math library to *STRING* (default is system-dependent).

Doc/whatsnew/3.16.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,17 @@ os
365365
(Contributed by Maurycy Pawłowski-Wieroński in :gh:`149464`.)
366366

367367

368+
pydoc
369+
-----
370+
371+
* Modernize the HTML output of :mod:`pydoc`. The pages generated by the
372+
:mod:`pydoc` HTTP server now use semantic HTML5 markup and a new style
373+
sheet based on the python-docs-theme used by `docs.python.org
374+
<https://docs.python.org/>`__, with dark mode support. Class members
375+
inherited from other classes are collapsed by default.
376+
(Contributed by Serhiy Storchaka in :gh:`153906`.)
377+
378+
368379
re
369380
--
370381

@@ -768,6 +779,15 @@ Build changes
768779

769780
(Contributed by Stefano Rivera in :gh:`131372`.)
770781

782+
* Add the :option:`--with-curses` :program:`configure` option to select the
783+
curses backend for the :mod:`curses` and :mod:`curses.panel` modules.
784+
In addition to ``ncursesw`` and ``ncurses``, it can now build against the
785+
system's native ``curses`` library (for example on NetBSD or Solaris), with
786+
wide-character support when the library provides it. :option:`--without-curses`
787+
excludes the modules from the build.
788+
789+
(Contributed by Serhiy Storchaka in :gh:`136687`.)
790+
771791

772792
C API changes
773793
=============

0 commit comments

Comments
 (0)