Skip to content

Commit 347c6e2

Browse files
authored
Merge branch 'main' into compiler_error_handling
2 parents 9f47ab6 + 932822c commit 347c6e2

133 files changed

Lines changed: 3911 additions & 1499 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: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -268,13 +268,13 @@ jobs:
268268
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
269269
# supported by important vendors such as AWS-LC.
270270
- { name: openssl, version: 1.1.1w }
271-
- { name: openssl, version: 3.0.21 }
272-
- { name: openssl, version: 3.4.6 }
273-
- { name: openssl, version: 3.5.7 }
274-
- { name: openssl, version: 3.6.3 }
275-
- { name: openssl, version: 4.0.1 }
271+
- { name: openssl, version: 3.0.22 }
272+
- { name: openssl, version: 3.4.7 }
273+
- { name: openssl, version: 3.5.8 }
274+
- { name: openssl, version: 3.6.4 }
275+
- { name: openssl, version: 4.0.2 }
276276
## AWS-LC
277-
- { name: aws-lc, version: 5.0.0 }
277+
- { name: aws-lc, version: 5.5.0 }
278278
env:
279279
SSLLIB_VER: ${{ matrix.ssllib.version }}
280280
MULTISSL_DIR: ${{ github.workspace }}/multissl
@@ -379,7 +379,7 @@ jobs:
379379
needs: build-context
380380
if: needs.build-context.outputs.run-ubuntu == 'true'
381381
env:
382-
OPENSSL_VER: 3.5.7
382+
OPENSSL_VER: 3.5.8
383383
PYTHONSTRICTEXTENSIONBUILD: 1
384384
steps:
385385
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
@@ -487,7 +487,7 @@ jobs:
487487
matrix:
488488
os: [ubuntu-26.04]
489489
env:
490-
OPENSSL_VER: 3.5.7
490+
OPENSSL_VER: 3.5.8
491491
PYTHONSTRICTEXTENSIONBUILD: 1
492492
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
493493
steps:

.github/workflows/reusable-san.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ permissions:
1717

1818
env:
1919
FORCE_COLOR: 1
20-
OPENSSL_VER: 3.5.7
20+
OPENSSL_VER: 3.5.8
2121

2222
jobs:
2323
build-san-reusable:

.github/workflows/reusable-ubuntu.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
runs-on: ${{ inputs.os }}
3636
timeout-minutes: 60
3737
env:
38-
OPENSSL_VER: 3.5.7
38+
OPENSSL_VER: 3.5.8
3939
PYTHONSTRICTEXTENSIONBUILD: 1
4040
TERM: linux
4141
steps:

Doc/Makefile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ help:
3232
@echo "Please use \`make <target>' where <target> is one of"
3333
@echo " clean to remove build files"
3434
@echo " venv to create a venv with necessary tools"
35+
@echo " lock to regenerate the pinned dependencies in $(REQUIREMENTS)"
3536
@echo " html to make standalone HTML files"
3637
@echo " gettext to generate POT files"
3738
@echo " htmlview to open the index page built by the html target in your browser"
@@ -185,6 +186,19 @@ venv:
185186
echo "The venv has been created in the $(VENVDIR) directory"; \
186187
fi
187188

189+
.PHONY: lock
190+
lock:
191+
# Dependencies have a 14 day cooldown period to mitigate supply chain attacks,
192+
# except for sphinx_linklint and python-docs-theme, which are maintained by
193+
# core team members.
194+
uv pip compile requirements.txt \
195+
--exclude-newer P14D \
196+
--exclude-newer-package sphinx_linklint=PT0S \
197+
--exclude-newer-package python-docs-theme=PT0S \
198+
--no-cache --output-file $(REQUIREMENTS) \
199+
--python-version 3.12 --universal \
200+
--custom-compile-command="make lock"
201+
188202
.PHONY: dist-no-html
189203
dist-no-html: dist-text dist-epub dist-texinfo
190204

Doc/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
# Skip if downstream redistributors haven't installed them
4343
_OPTIONAL_EXTENSIONS = (
44-
'linklint.ext',
44+
'sphinx_linklint.ext',
4545
'notfound.extension',
4646
'sphinxext.opengraph',
4747
'sphinxcontrib.rsvgconverter',

Doc/library/os.rst

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4577,16 +4577,17 @@ Naturally, they are all only available on Linux.
45774577
- :const:`time.CLOCK_BOOTTIME` (Since Linux 3.15 for timerfd_create)
45784578

45794579
If *clockid* is :const:`time.CLOCK_REALTIME`, a settable system-wide
4580-
real-time clock is used. If system clock is changed, timer setting need
4581-
to be updated. To cancel timer when system clock is changed, see
4580+
real-time clock is used. If the system clock is changed, the timer setting
4581+
needs to be updated. To cancel the timer when the system clock is changed, see
45824582
:const:`TFD_TIMER_CANCEL_ON_SET`.
45834583

45844584
If *clockid* is :const:`time.CLOCK_MONOTONIC`, a non-settable monotonically
45854585
increasing clock is used. Even if the system clock is changed, the timer
45864586
setting will not be affected.
45874587

4588-
If *clockid* is :const:`time.CLOCK_BOOTTIME`, same as :const:`time.CLOCK_MONOTONIC`
4589-
except it includes any time that the system is suspended.
4588+
If *clockid* is :const:`time.CLOCK_BOOTTIME`, it is the same as
4589+
:const:`time.CLOCK_MONOTONIC` except it includes any time that the system
4590+
is suspended.
45904591

45914592
The file descriptor's behaviour can be modified by specifying a *flags* value.
45924593
Any of the following variables may be used, combined using bitwise OR
@@ -4597,8 +4598,8 @@ Naturally, they are all only available on Linux.
45974598

45984599
If :const:`TFD_NONBLOCK` is not set as a flag, :func:`read` blocks until
45994600
the timer expires. If it is set as a flag, :func:`read` doesn't block, but
4600-
If there hasn't been an expiration since the last call to read,
4601-
:func:`read` raises :class:`OSError` with ``errno`` is set to
4601+
if there hasn't been an expiration since the last call to read,
4602+
:func:`read` raises :class:`OSError` with ``errno`` set to
46024603
:const:`errno.EAGAIN`.
46034604

46044605
:const:`TFD_CLOEXEC` is always set by Python automatically.
@@ -4613,7 +4614,7 @@ Naturally, they are all only available on Linux.
46134614
.. versionadded:: 3.13
46144615

46154616

4616-
.. function:: timerfd_settime(fd, /, *, flags=flags, initial=0.0, interval=0.0)
4617+
.. function:: timerfd_settime(fd, /, *, flags=0, initial=0.0, interval=0.0)
46174618

46184619
Alter a timer file descriptor's internal timer.
46194620
This function operates the same interval timer as :func:`timerfd_settime_ns`.
@@ -4628,12 +4629,11 @@ Naturally, they are all only available on Linux.
46284629
- :const:`TFD_TIMER_CANCEL_ON_SET`
46294630

46304631
The timer is disabled by setting *initial* to zero (``0``).
4631-
If *initial* is equal to or greater than zero, the timer is enabled.
4632+
If *initial* is greater than zero, the timer is enabled.
46324633
If *initial* is less than zero, it raises an :class:`OSError` exception
4633-
with ``errno`` set to :const:`errno.EINVAL`
4634+
with ``errno`` set to :const:`errno.EINVAL`.
46344635

46354636
By default the timer will fire when *initial* seconds have elapsed.
4636-
(If *initial* is zero, timer will fire immediately.)
46374637

46384638
However, if the :const:`TFD_TIMER_ABSTIME` flag is set,
46394639
the timer will fire when the timer's clock
@@ -4644,13 +4644,13 @@ Naturally, they are all only available on Linux.
46444644
If *interval* is greater than zero, the timer fires every time *interval*
46454645
seconds have elapsed since the previous expiration.
46464646
If *interval* is less than zero, it raises :class:`OSError` with ``errno``
4647-
set to :const:`errno.EINVAL`
4647+
set to :const:`errno.EINVAL`.
46484648

46494649
If the :const:`TFD_TIMER_CANCEL_ON_SET` flag is set along with
46504650
:const:`TFD_TIMER_ABSTIME` and the clock for this timer is
46514651
:const:`time.CLOCK_REALTIME`, the timer is marked as cancelable if the
46524652
real-time clock is changed discontinuously. Reading the descriptor is
4653-
aborted with the error ECANCELED.
4653+
aborted with the error :const:`errno.ECANCELED`.
46544654

46554655
Linux manages system clock as UTC. A daylight-savings time transition is
46564656
done by changing time offset only and doesn't cause discontinuous system

Doc/library/turtle.rst

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
**Source code:** :source:`Lib/turtle.py`
99

1010
.. testsetup:: default
11+
:skipif: _tkinter is None
1112

1213
from turtle import *
1314
turtle = Turtle()
1415

1516
.. testcleanup::
17+
:skipif: _tkinter is None
1618

1719
import os
1820
os.remove("my_drawing.ps")
@@ -510,6 +512,7 @@ Turtle motion
510512
turtle is headed. Do not change the turtle's heading.
511513

512514
.. doctest::
515+
:skipif: _tkinter is None
513516
:hide:
514517

515518
>>> turtle.goto(0, 0)
@@ -852,6 +855,7 @@ Turtle motion
852855
last *n* stamps.
853856

854857
.. doctest::
858+
:skipif: _tkinter is None
855859

856860
>>> for i in range(8):
857861
... unused_stamp_id = turtle.stamp()
@@ -1409,8 +1413,11 @@ More drawing control
14091413
font. If *move* is true, the pen is moved to the bottom-right corner of the
14101414
text. By default, *move* is ``False``.
14111415

1412-
>>> turtle.write("Home = ", True, align="center")
1413-
>>> turtle.write((0,0), True)
1416+
.. doctest::
1417+
:skipif: _tkinter is None
1418+
1419+
>>> turtle.write("Home = ", True, align="center")
1420+
>>> turtle.write((0,0), True)
14141421

14151422

14161423
Turtle state
@@ -1447,12 +1454,15 @@ Visibility
14471454

14481455
Return ``True`` if the Turtle is shown, ``False`` if it's hidden.
14491456

1450-
>>> turtle.hideturtle()
1451-
>>> turtle.isvisible()
1452-
False
1453-
>>> turtle.showturtle()
1454-
>>> turtle.isvisible()
1455-
True
1457+
.. doctest::
1458+
:skipif: _tkinter is None
1459+
1460+
>>> turtle.hideturtle()
1461+
>>> turtle.isvisible()
1462+
False
1463+
>>> turtle.showturtle()
1464+
>>> turtle.isvisible()
1465+
True
14561466

14571467

14581468
Appearance
@@ -1983,6 +1993,9 @@ Window control
19831993
method, one can make visible those parts of a drawing which were outside the
19841994
canvas before.
19851995

1996+
.. doctest::
1997+
:skipif: _tkinter is None
1998+
19861999
>>> screen.screensize()
19872000
(400, 300)
19882001
>>> screen.screensize(2000,1500)

Doc/pylock.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile Doc/requirements.txt --exclude-newer P14D --exclude-newer-package linklint=PT0S --exclude-newer-package python-docs-theme=PT0S --exclude-newer-package pygments=PT0S --no-cache --output-file Doc/pylock.toml --python-version 3.12 --universal
2+
# make lock
33
lock-version = "1.0"
44
created-by = "uv"
55
requires-python = ">=3.12"
@@ -119,12 +119,6 @@ version = "3.1.6"
119119
sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", upload-time = 2025-03-05T20:05:02Z, size = 245115, hashes = { sha256 = "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" } }
120120
wheels = [{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", upload-time = 2025-03-05T20:05:00Z, size = 134899, hashes = { sha256 = "85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" } }]
121121

122-
[[packages]]
123-
name = "linklint"
124-
version = "1.0.1"
125-
sdist = { url = "https://files.pythonhosted.org/packages/62/22/c65a97b2192c3c317c472058bf52d7ca88e421998fa8d5c183b2280ab5d4/linklint-1.0.1.tar.gz", upload-time = 2026-06-09T12:30:47Z, size = 22412, hashes = { sha256 = "10201b4366edecfbeb3281883aff857dbe77d40bb56f16f212d372f597342d5f" } }
126-
wheels = [{ url = "https://files.pythonhosted.org/packages/7b/d8/b2f1708f55f4dd5358b48d28be07ff8e0dadd6d23e41ead2ed1424e90256/linklint-1.0.1-py3-none-any.whl", upload-time = 2026-06-09T12:30:46Z, size = 12828, hashes = { sha256 = "c931f110482f1d17808aa2df78b116adc44d7a14e9e79922c57bf9a7cba40a2d" } }]
127-
128122
[[packages]]
129123
name = "markupsafe"
130124
version = "2.1.5"
@@ -190,6 +184,12 @@ version = "8.2.3"
190184
sdist = { url = "https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz", upload-time = 2025-03-02T22:31:59Z, size = 8321876, hashes = { sha256 = "398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348" } }
191185
wheels = [{ url = "https://files.pythonhosted.org/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl", upload-time = 2025-03-02T22:31:56Z, size = 3589741, hashes = { sha256 = "4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3" } }]
192186

187+
[[packages]]
188+
name = "sphinx-linklint"
189+
version = "2.0.0"
190+
sdist = { url = "https://files.pythonhosted.org/packages/f6/99/f9947b30fd11e782855a13de1aac7d08634edba1c193a0ee01bf5338531c/sphinx_linklint-2.0.0.tar.gz", upload-time = 2026-08-25T12:47:33Z, size = 23297, hashes = { sha256 = "e7ea4d3b1bd83665e9c2ab9fd92c6c645c805956d2e8ca6b0f528f3a9638910d" } }
191+
wheels = [{ url = "https://files.pythonhosted.org/packages/d7/3d/6b96af48e139357e1e041a710d943c4bb79ad149c7aab074df784b4395ec/sphinx_linklint-2.0.0-py3-none-any.whl", upload-time = 2026-08-25T12:47:32Z, size = 13390, hashes = { sha256 = "12aa64f3b3faaa6e8a979a7d1f2c38617866652b670e3d19fa0f60a6ce3657ef" } }]
192+
193193
[[packages]]
194194
name = "sphinx-notfound-page"
195195
version = "1.0.4"

Doc/requirements.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,12 @@ pygments>=2.21
1313

1414
blurb
1515

16-
sphinxext-opengraph~=0.13.0
16+
sphinx-linklint
1717
sphinx-notfound-page~=1.0.0
18+
sphinxext-opengraph~=0.13.0
1819

1920
# The theme used by the documentation is stored separately, so we need
2021
# to install that as well.
2122
python-docs-theme>=2023.3.1,!=2023.7
2223

23-
linklint
24-
2524
-c constraints.txt

Doc/tools/removed-ids.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ deprecations/index.html: pending-removal-in-python-3-16
1616
deprecations/index.html: c-api-pending-removal-in-python-3-15
1717
deprecations/index.html: c-api-pending-removal-in-python-3-16
1818

19+
tutorial/modules.html: packages-in-multiple-directories
20+
1921
# Removed libmpdec
2022
using/configure.html: cmdoption-with-system-libmpdec
2123

0 commit comments

Comments
 (0)