Skip to content

Commit 010eecc

Browse files
Merge branch '3.13' into backport-bd13cc0-3.13
2 parents 73d767b + a2864ec commit 010eecc

130 files changed

Lines changed: 2071 additions & 487 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.

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ Lib/test/xmltestdata/* noeol
3333
Lib/venv/scripts/common/activate text eol=lf
3434
Lib/venv/scripts/posix/* text eol=lf
3535

36+
# Prevent GitHub's web conflict editor from converting LF to CRLF
37+
*.rst text eol=lf
38+
3639
# CRLF files
3740
[attr]dos text eol=crlf
3841

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ Lib/ast.py @isidentical
171171
**/*multiprocessing* @gpshead
172172

173173
# SQLite 3
174-
**/*sqlite* @berkerpeksag @erlend-aasland
174+
**/*sqlite* @erlend-aasland
175175

176176
# subprocess
177177
/Lib/subprocess.py @gpshead

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ jobs:
291291
# Keep 1.1.1w in our list despite it being upstream EOL and otherwise
292292
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
293293
# supported by important vendors such as AWS-LC.
294-
openssl_ver: [1.1.1w, 3.0.19, 3.3.6, 3.4.4, 3.5.5, 3.6.1]
294+
openssl_ver: [1.1.1w, 3.0.20, 3.3.7, 3.4.5, 3.5.6, 3.6.2]
295295
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
296296
env:
297297
OPENSSL_VER: ${{ matrix.openssl_ver }}
@@ -366,7 +366,7 @@ jobs:
366366
needs: build-context
367367
if: needs.build-context.outputs.run-ubuntu == 'true'
368368
env:
369-
OPENSSL_VER: 3.0.18
369+
OPENSSL_VER: 3.0.20
370370
PYTHONSTRICTEXTENSIONBUILD: 1
371371
steps:
372372
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -473,7 +473,7 @@ jobs:
473473
matrix:
474474
os: [ubuntu-24.04]
475475
env:
476-
OPENSSL_VER: 3.0.18
476+
OPENSSL_VER: 3.0.20
477477
PYTHONSTRICTEXTENSIONBUILD: 1
478478
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
479479
steps:

.github/workflows/reusable-san.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,15 @@ jobs:
4040
# Install clang
4141
wget https://apt.llvm.org/llvm.sh
4242
chmod +x llvm.sh
43+
sudo ./llvm.sh 20
44+
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 100
45+
sudo update-alternatives --set clang /usr/bin/clang-20
46+
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 100
47+
sudo update-alternatives --set clang++ /usr/bin/clang++-20
4348
4449
if [ "${SANITIZER}" = "TSan" ]; then
45-
sudo ./llvm.sh 17 # gh-121946: llvm-18 package is temporarily broken
46-
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-17 100
47-
sudo update-alternatives --set clang /usr/bin/clang-17
48-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-17 100
49-
sudo update-alternatives --set clang++ /usr/bin/clang++-17
5050
# Reduce ASLR to avoid TSan crashing
5151
sudo sysctl -w vm.mmap_rnd_bits=28
52-
else
53-
sudo ./llvm.sh 20
5452
fi
5553
5654
- name: Sanitizer option setup

.github/workflows/reusable-ubuntu.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
matrix:
2626
os: [ubuntu-24.04, ubuntu-24.04-arm]
2727
env:
28-
OPENSSL_VER: 3.0.18
28+
OPENSSL_VER: 3.0.20
2929
PYTHONSTRICTEXTENSIONBUILD: 1
3030
TERM: linux
3131
steps:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ Tools/unicode/data/
137137
/.ccache
138138
/cross-build/
139139
/jit_stencils*.h
140+
/jit_unwind_info*.h
140141
/platform
141142
/profile-clean-stamp
142143
/profile-run-stamp

Android/android.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,13 @@ def make_build_python(context):
213213
def unpack_deps(host, prefix_dir, cache_dir):
214214
os.chdir(prefix_dir)
215215
deps_url = "https://github.com/beeware/cpython-android-source-deps/releases/download"
216-
for name_ver in ["bzip2-1.0.8-3", "libffi-3.4.4-3", "openssl-3.0.19-1",
217-
"sqlite-3.50.4-0", "xz-5.4.6-1"]:
216+
for name_ver in [
217+
"bzip2-1.0.8-3",
218+
"libffi-3.4.4-3",
219+
"openssl-3.0.20-0",
220+
"sqlite-3.50.4-0",
221+
"xz-5.4.6-1"
222+
]:
218223
filename = f"{name_ver}-{host}.tar.gz"
219224
out_path = download(f"{deps_url}/{name_ver}/{filename}", cache_dir)
220225
shutil.unpack_archive(out_path)

Doc/c-api/dict.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Dictionary Objects
118118
* If the key is present, set *\*result* to a new :term:`strong reference`
119119
to the value and return ``1``.
120120
* If the key is missing, set *\*result* to ``NULL`` and return ``0``.
121-
* On error, raise an exception and return ``-1``.
121+
* On error, raise an exception, set *\*result* to ``NULL`` and return ``-1``.
122122
123123
.. versionadded:: 3.13
124124

Doc/howto/descriptor.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1636,7 +1636,7 @@ by member descriptors:
16361636
class Member:
16371637

16381638
def __init__(self, name, clsname, offset):
1639-
'Emulate PyMemberDef in Include/structmember.h'
1639+
'Emulate PyMemberDef in Include/descrobject.h'
16401640
# Also see descr_new() in Objects/descrobject.c
16411641
self.name = name
16421642
self.clsname = clsname

Doc/library/ast.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,18 +268,25 @@ Root nodes
268268
Literals
269269
^^^^^^^^
270270

271-
.. class:: Constant(value)
271+
.. class:: Constant(value, kind)
272272

273273
A constant value. The ``value`` attribute of the ``Constant`` literal contains the
274274
Python object it represents. The values represented can be instances of :class:`str`,
275275
:class:`bytes`, :class:`int`, :class:`float`, :class:`complex`, and :class:`bool`,
276276
and the constants :data:`None` and :data:`Ellipsis`.
277277

278+
The ``kind`` attribute is an optional string. For string literals with a
279+
``u`` prefix, ``kind`` is set to ``'u'``. For all other
280+
constants, ``kind`` is ``None``.
281+
278282
.. doctest::
279283

280284
>>> print(ast.dump(ast.parse('123', mode='eval'), indent=4))
281285
Expression(
282286
body=Constant(value=123))
287+
>>> print(ast.dump(ast.parse("u'hello'", mode='eval'), indent=4))
288+
Expression(
289+
body=Constant(value='hello', kind='u'))
283290

284291

285292
.. class:: FormattedValue(value, conversion, format_spec)

0 commit comments

Comments
 (0)