Skip to content

Commit 070ec61

Browse files
authored
Merge branch 'main' into gh-121291-enum-flag-mixin-operators
2 parents a908741 + b0da7c7 commit 070ec61

458 files changed

Lines changed: 15049 additions & 6340 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/CODEOWNERS

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ Tools/cases_generator/ @markshannon
223223
Python/assemble.c @markshannon @iritkatriel
224224
Python/codegen.c @markshannon @iritkatriel
225225
Python/compile.c @markshannon @iritkatriel
226-
Python/flowgraph.c @markshannon @iritkatriel
226+
Python/flowgraph.c @markshannon @iritkatriel @eclips4
227227
Python/instruction_sequence.c @iritkatriel
228228
Python/symtable.c @JelleZijlstra @carljm
229229

@@ -598,6 +598,12 @@ Doc/library/tomllib.rst @encukou @hauntsaninja
598598
Lib/test/test_tomllib/ @encukou @hauntsaninja
599599
Lib/tomllib/ @encukou @hauntsaninja
600600

601+
# Turtle
602+
Doc/library/turtle.rst @StanFromIreland
603+
Doc/library/turtle-star.png @StanFromIreland
604+
Lib/test/test_turtle.py @StanFromIreland
605+
Lib/turtle.py @StanFromIreland
606+
601607
# Typing
602608
Doc/library/typing.rst @JelleZijlstra @AlexWaygood
603609
Lib/test/test_typing.py @JelleZijlstra @AlexWaygood
@@ -620,6 +626,12 @@ Lib/test/test_unittest/testmock/ @cjw296
620626
# Weakref
621627
**/*weakref* @kumaraditya303
622628

629+
# Zlib
630+
Doc/library/zlib.rst @StanFromIreland
631+
Lib/compression/zlib.py @StanFromIreland
632+
Lib/test/test_zlib.py @StanFromIreland
633+
Modules/_zlibmodule.c @StanFromIreland
634+
623635
# Zipfile.Path
624636
Lib/test/test_zipfile/_path/ @jaraco
625637
Lib/zipfile/_path/ @jaraco

.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/about.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ and now maintained as an independent project.
1010
.. _reStructuredText: https://docutils.sourceforge.io/rst.html
1111
.. _Sphinx: https://www.sphinx-doc.org/
1212

13-
.. In the online version of these documents, you can submit comments and suggest
13+
.. In the online version of this documentation, you can submit comments and suggest
1414
changes directly on the documentation pages.
1515
1616
Development of the documentation and its toolchain is an entirely volunteer

Doc/c-api/import.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ Importing Modules
146146
alternatives.
147147
148148
.. versionchanged:: 3.15
149-
``__cached__`` is no longer set.
149+
The ``__cached__`` attribute is no longer set.
150150
151151
152152
.. c:function:: PyObject* PyImport_ExecCodeModuleEx(const char *name, PyObject *co, const char *pathname)
@@ -170,7 +170,7 @@ Importing Modules
170170
:class:`~importlib.machinery.ModuleSpec` for alternatives.
171171
172172
.. versionchanged:: 3.15
173-
``__cached__`` no longer set.
173+
The ``__cached__`` attribute no longer set.
174174
175175
176176
.. c:function:: PyObject* PyImport_ExecCodeModuleWithPathnames(const char *name, PyObject *co, const char *pathname, const char *cpathname)

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/faq/design.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,8 @@ tuples, but not lists, can be used as keys. Note, however, that a tuple is
430430
only hashable if all of its elements are hashable.
431431

432432

433+
.. _how-are-lists-implemented:
434+
433435
How are lists implemented in CPython?
434436
-------------------------------------
435437

@@ -445,6 +447,10 @@ cleverness is applied to improve the performance of appending items repeatedly;
445447
when the array must be grown, some extra space is allocated so the next few
446448
times don't require an actual resize.
447449

450+
See :ref:`time-complexity` for the costs of the various list operations.
451+
452+
453+
.. _how-are-dictionaries-implemented:
448454

449455
How are dictionaries implemented in CPython?
450456
--------------------------------------------
@@ -462,6 +468,8 @@ internal array where the value will be stored. Assuming that you're storing
462468
keys that all have different hash values, this means that dictionaries take
463469
constant time -- *O*\ (1), in Big-O notation -- to retrieve a key.
464470

471+
See :ref:`time-complexity` for the costs of the various dictionary operations.
472+
465473

466474
Why must dictionary keys be immutable?
467475
--------------------------------------

Doc/faq/programming.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1136,7 +1136,7 @@ What is the most efficient way to concatenate many strings together?
11361136
:class:`str` and :class:`bytes` objects are immutable, therefore concatenating
11371137
many strings together is inefficient as each concatenation creates a new
11381138
object. In the general case, the total runtime cost is quadratic in the
1139-
total string length.
1139+
total string length. See :ref:`time-complexity` for more information.
11401140

11411141
To accumulate many :class:`str` objects, the recommended idiom is to place
11421142
them into a list and call :meth:`str.join` at the end::

0 commit comments

Comments
 (0)