Skip to content

Commit afc6ab3

Browse files
committed
Merge remote-tracking branch 'origin/3.14' into HEAD
# Conflicts: # Lib/test/datetimetester.py
2 parents 68e5b60 + 25a53d9 commit afc6ab3

150 files changed

Lines changed: 3078 additions & 499 deletions

File tree

Some content is hidden

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

.github/workflows/build.yml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -240,16 +240,16 @@ jobs:
240240
strategy:
241241
fail-fast: false
242242
matrix:
243-
# macos-26 is Apple Silicon, macos-15-intel is Intel.
244-
# macos-15-intel only runs tests against the GIL-enabled CPython.
243+
# macos-26 is Apple Silicon, macos-26-intel is Intel.
244+
# macos-26-intel only runs tests against the GIL-enabled CPython.
245245
os:
246246
- macos-26
247-
- macos-15-intel
247+
- macos-26-intel
248248
free-threading:
249249
- false
250250
- true
251251
exclude:
252-
- os: macos-15-intel
252+
- os: macos-26-intel
253253
free-threading: true
254254
uses: ./.github/workflows/reusable-macos.yml
255255
with:
@@ -378,7 +378,7 @@ jobs:
378378
with:
379379
persist-credentials: false
380380
- name: Build and test
381-
run: ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
381+
run: JAVA_HOME="${JAVA_HOME_21_X64:-$JAVA_HOME_21_arm64}" ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
382382

383383
build-ios:
384384
name: iOS
@@ -543,10 +543,6 @@ jobs:
543543
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
544544
- name: Install dependencies
545545
run: sudo ./.github/workflows/posix-deps-apt.sh
546-
- name: Set up GCC-10 for ASAN
547-
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
548-
with:
549-
version: 10
550546
- name: Configure OpenSSL env vars
551547
run: |
552548
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"

.github/workflows/reusable-docs.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ name: Reusable Docs
33
on:
44
workflow_call:
55
workflow_dispatch:
6+
# Pushes to CPython branches seed the pip caches under the exact keys every
7+
# docs PR restores from. Without a branch-scoped copy, each PR saves a
8+
# duplicate into its own refs/pull/N/merge scope that nothing else can read.
9+
push:
10+
branches:
11+
- main
12+
- '3.*'
13+
paths:
14+
- 'Doc/pylock.toml'
15+
- 'Doc/requirements.txt'
16+
- '.github/workflows/reusable-docs.yml'
617

718
permissions:
819
contents: read

.github/workflows/reusable-macos.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ jobs:
5656
--prefix=/opt/python-dev \
5757
--with-openssl="$(brew --prefix openssl@3.0)"
5858
- name: Build CPython
59-
if : ${{ inputs.free-threading || inputs.os != 'macos-15-intel' }}
59+
if : ${{ inputs.free-threading || inputs.os != 'macos-26-intel' }}
6060
run: gmake -j8
6161
- name: Build CPython for compiler warning check
62-
if : ${{ !inputs.free-threading && inputs.os == 'macos-15-intel' }}
62+
if : ${{ !inputs.free-threading && inputs.os == 'macos-26-intel' }}
6363
run: set -o pipefail; gmake -j8 --output-sync 2>&1 | tee compiler_output_macos.txt
6464
- name: Display build info
6565
run: make pythoninfo
6666
- name: Check compiler warnings
67-
if : ${{ !inputs.free-threading && inputs.os == 'macos-15-intel' }}
67+
if : ${{ !inputs.free-threading && inputs.os == 'macos-26-intel' }}
6868
run: >-
6969
python3 Tools/build/check_warnings.py
7070
--compiler-output-file-path=compiler_output_macos.txt

.readthedocs.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,21 @@ build:
1111
os: ubuntu-24.04
1212
tools:
1313
python: "3"
14+
apt_packages:
15+
- jq
1416

1517
jobs:
16-
post_checkout:
18+
post_system_dependencies:
1719
# https://docs.readthedocs.com/platform/stable/guides/build/skip-build.html#skip-builds-based-on-conditions
1820
#
19-
# Cancel building pull requests when there aren't changes in the Doc
21+
# Cancel building pull requests when there are no changes in the Doc
2022
# directory or RTD configuration, or if we can't cleanly merge the base
2123
# branch.
2224
- |
2325
set -eEux;
2426
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ];
2527
then
26-
base_branch=3.14;
28+
base_branch=$(wget -qO- "https://api.github.com/repos/python/cpython/pulls/$READTHEDOCS_VERSION" | jq -er ".base.ref");
2729
git fetch --depth=50 origin $base_branch:origin-$base_branch;
2830
for attempt in $(seq 10);
2931
do

Android/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ any packages it needs.
3131
The script also requires the following commands to be on the `PATH`:
3232

3333
* `curl`
34-
* `java` (or set the `JAVA_HOME` environment variable)
34+
* `java` (or set the `JAVA_HOME` environment variable).
35+
Java versions 17 and 21 are supported.
3536

3637

3738
## Building

Doc/c-api/buffer.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,9 @@ readonly, format
263263

264264
.. c:macro:: PyBUF_WRITEABLE
265265
266-
This is a :term:`soft deprecated` alias to :c:macro:`PyBUF_WRITABLE`.
266+
This is an alias to :c:macro:`PyBUF_WRITABLE`.
267+
268+
.. soft-deprecated:: 3.13
267269

268270
.. c:macro:: PyBUF_FORMAT
269271

Doc/c-api/bytes.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,11 @@ called with a non-bytes parameter.
180180
.. c:function:: void PyBytes_Concat(PyObject **bytes, PyObject *newpart)
181181
182182
Create a new bytes object in *\*bytes* containing the contents of *newpart*
183-
appended to *bytes*; the caller will own the new reference. The reference to
184-
the old value of *bytes* will be stolen. If the new object cannot be
185-
created, the old reference to *bytes* will still be discarded and the value
186-
of *\*bytes* will be set to ``NULL``; the appropriate exception will be set.
183+
appended to *bytes*; the caller will own the new reference.
184+
The reference to the old value of *bytes* will be ":term:`stolen <steal>`".
185+
If the new object cannot be created, the old reference to *bytes* will still
186+
be "stolen", the value of *\*bytes* will be set to ``NULL``, and
187+
the appropriate exception will be set.
187188
188189
.. note::
189190
If *newpart* implements the buffer protocol, then the buffer

Doc/c-api/code.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,16 @@ bound into a function.
214214
215215
.. c:function:: PyObject *PyCode_Optimize(PyObject *code, PyObject *consts, PyObject *names, PyObject *lnotab_obj)
216216
217-
This is a :term:`soft deprecated` function that does nothing.
217+
This is a function that does nothing.
218218
219219
Prior to Python 3.10, this function would perform basic optimizations to a
220220
code object.
221221
222222
.. versionchanged:: 3.10
223223
This function now does nothing.
224224
225+
.. soft-deprecated:: 3.13
226+
225227
226228
.. _c_codeobject_flags:
227229

Doc/c-api/dict.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ Dictionary Objects
8989
9090
Insert *val* into the dictionary *p* with a key of *key*. *key* must be
9191
:term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return
92-
``0`` on success or ``-1`` on failure. This function *does not* steal a
93-
reference to *val*.
92+
``0`` on success or ``-1`` on failure.
93+
This function *does not* ":term:`steal`" a reference to *val*.
9494
9595
.. note::
9696

Doc/c-api/exceptions.rst

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,8 @@ Querying the error indicator
503503
504504
.. warning::
505505
506-
This call steals a reference to *exc*, which must be a valid exception.
506+
This call ":term:`steals <steal>`" a reference to *exc*,
507+
which must be a valid exception.
507508
508509
.. versionadded:: 3.12
509510
@@ -641,7 +642,8 @@ Querying the error indicator
641642
642643
Set the exception info, as known from ``sys.exc_info()``. This refers
643644
to an exception that was *already caught*, not to an exception that was
644-
freshly raised. This function steals the references of the arguments.
645+
freshly raised. This function ":term:`steals <steal>`" the references
646+
of the arguments.
645647
To clear the exception state, pass ``NULL`` for all three arguments.
646648
This function is kept for backwards compatibility. Prefer using
647649
:c:func:`PyErr_SetHandledException`.
@@ -658,8 +660,8 @@ Querying the error indicator
658660
.. versionchanged:: 3.11
659661
The ``type`` and ``traceback`` arguments are no longer used and
660662
can be NULL. The interpreter now derives them from the exception
661-
instance (the ``value`` argument). The function still steals
662-
references of all three arguments.
663+
instance (the ``value`` argument). The function still
664+
":term:`steals <steal>`" references of all three arguments.
663665
664666
665667
Signal Handling
@@ -851,7 +853,7 @@ Exception Objects
851853
852854
Set the context associated with the exception to *ctx*. Use ``NULL`` to clear
853855
it. There is no type check to make sure that *ctx* is an exception instance.
854-
This steals a reference to *ctx*.
856+
This ":term:`steals <steal>`" a reference to *ctx*.
855857
856858
857859
.. c:function:: PyObject* PyException_GetCause(PyObject *ex)
@@ -866,7 +868,8 @@ Exception Objects
866868
867869
Set the cause associated with the exception to *cause*. Use ``NULL`` to clear
868870
it. There is no type check to make sure that *cause* is either an exception
869-
instance or ``None``. This steals a reference to *cause*.
871+
instance or ``None``.
872+
This ":term:`steals <steal>`" a reference to *cause*.
870873
871874
The :attr:`~BaseException.__suppress_context__` attribute is implicitly set
872875
to ``True`` by this function.

0 commit comments

Comments
 (0)