Skip to content

Commit f65f858

Browse files
committed
Merge remote-tracking branch 'origin/main' into windows-2025-vs2026
2 parents 24f787a + 157f271 commit f65f858

File tree

163 files changed

+16770
-15769
lines changed

Some content is hidden

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

163 files changed

+16770
-15769
lines changed

.github/CODEOWNERS

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,12 @@ Python/jit.c @brandtbucher @savannahostrowski @diegorusso
292292
Tools/jit/ @brandtbucher @savannahostrowski @diegorusso
293293
InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-Turner
294294

295+
# Lazy imports (PEP 810)
296+
Objects/lazyimportobject.c @twouters @DinoV @pablogsal
297+
Include/internal/pycore_lazyimportobject.h @twouters @DinoV @pablogsal
298+
Lib/test/test_import/test_lazy_imports.py @twouters @DinoV @pablogsal
299+
Lib/test/test_import/data/lazy_imports/ @twouters @DinoV @pablogsal
300+
295301
# Micro-op / μop / Tier 2 Optimiser
296302
Python/optimizer.c @markshannon @Fidget-Spinner
297303
Python/optimizer_analysis.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
@@ -418,6 +424,7 @@ Lib/test/test_dataclasses/ @ericvsmith
418424

419425
# Dates and times
420426
Doc/**/*time.rst @pganssle @abalkin
427+
Doc/library/datetime-* @pganssle
421428
Doc/library/zoneinfo.rst @pganssle
422429
Include/datetime.h @pganssle @abalkin
423430
Include/internal/pycore_time.h @pganssle @abalkin
@@ -467,8 +474,9 @@ Lib/test/test_functools.py @rhettinger
467474
Modules/_functoolsmodule.c @rhettinger
468475

469476
# Garbage collector
470-
Modules/gcmodule.c @pablogsal
471-
Doc/library/gc.rst @pablogsal
477+
Modules/gcmodule.c @pablogsal
478+
Doc/library/gc.rst @pablogsal
479+
InternalDocs/garbage_collector.md @pablogsal
472480

473481
# Gettext
474482
Doc/library/gettext.rst @tomasr8

.github/ISSUE_TEMPLATE/documentation.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ body:
88
> [!NOTE]
99
> Trivial changes (for example typos) don’t require an issue before opening a PR.
1010
- type: textarea
11+
id: description
1112
attributes:
1213
label: "Documentation"
13-
description: "A clear and concise description of the issue."
14+
description: "A clear and concise description of the issue. Include a link to the page."
1415
validations:
1516
required: true

.github/workflows/build.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,11 +242,18 @@ jobs:
242242
# BOLT currently crashes during instrumentation on aarch64
243243
- os: ubuntu-24.04-arm
244244
bolt: true
245+
include:
246+
# Enable CPU-intensive tests on ARM (default build only)
247+
- os: ubuntu-24.04-arm
248+
bolt: false
249+
free-threading: false
250+
test-opts: '-u cpu'
245251
uses: ./.github/workflows/reusable-ubuntu.yml
246252
with:
247253
bolt-optimizations: ${{ matrix.bolt }}
248254
free-threading: ${{ matrix.free-threading }}
249255
os: ${{ matrix.os }}
256+
test-opts: ${{ matrix.test-opts || '' }}
250257

251258
build-ubuntu-ssltests-openssl:
252259
name: 'Ubuntu SSL tests with OpenSSL'

.github/workflows/reusable-ubuntu.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ on:
1717
description: OS to run the job
1818
required: true
1919
type: string
20+
test-opts:
21+
description: Extra options to pass to the test runner via TESTOPTS
22+
required: false
23+
type: string
24+
default: ''
2025

2126
env:
2227
FORCE_COLOR: 1
@@ -111,4 +116,6 @@ jobs:
111116
run: sudo mount "$CPYTHON_RO_SRCDIR" -oremount,rw
112117
- name: Tests
113118
working-directory: ${{ env.CPYTHON_BUILDDIR }}
114-
run: xvfb-run make ci
119+
run: xvfb-run make ci EXTRATESTOPTS="${TEST_OPTS}"
120+
env:
121+
TEST_OPTS: ${{ inputs.test-opts }}

Android/android.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def make_build_python(context):
208208
def unpack_deps(host, prefix_dir):
209209
os.chdir(prefix_dir)
210210
deps_url = "https://github.com/beeware/cpython-android-source-deps/releases/download"
211-
for name_ver in ["bzip2-1.0.8-3", "libffi-3.4.4-3", "openssl-3.0.18-0",
211+
for name_ver in ["bzip2-1.0.8-3", "libffi-3.4.4-3", "openssl-3.0.19-1",
212212
"sqlite-3.50.4-0", "xz-5.4.6-1", "zstd-1.5.7-1"]:
213213
filename = f"{name_ver}-{host}.tar.gz"
214214
download(f"{deps_url}/{name_ver}/{filename}")

Apple/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ def unpack_deps(
316316
for name_ver in [
317317
"BZip2-1.0.8-2",
318318
"libFFI-3.4.7-2",
319-
"OpenSSL-3.0.18-1",
319+
"OpenSSL-3.0.19-1",
320320
"XZ-5.6.4-2",
321321
"mpdecimal-4.0.0-2",
322322
"zstd-1.5.7-1",

Doc/c-api/datetime.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ macros.
3030

3131
This is not compatible with subinterpreters.
3232

33+
.. versionchanged:: 3.15
34+
35+
This macro is now thread safe.
36+
3337
.. c:type:: PyDateTime_CAPI
3438
3539
Structure containing the fields for the datetime C API.
@@ -44,6 +48,11 @@ macros.
4448

4549
This variable is only available once :c:macro:`PyDateTime_IMPORT` succeeds.
4650

51+
.. versionchanged:: 3.15
52+
53+
This variable should not be accessed directly as direct access is not thread-safe.
54+
Use :c:func:`PyDateTime_IMPORT` instead.
55+
4756
.. c:type:: PyDateTime_Date
4857
4958
This subtype of :c:type:`PyObject` represents a Python date object.

Doc/c-api/dict.rst

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
.. _dictobjects:
44

5-
Dictionary Objects
5+
Dictionary objects
66
------------------
77

88
.. index:: pair: object; dictionary
@@ -444,7 +444,7 @@ Dictionary Objects
444444
.. versionadded:: 3.12
445445
446446
447-
Dictionary View Objects
447+
Dictionary view objects
448448
^^^^^^^^^^^^^^^^^^^^^^^
449449
450450
.. c:function:: int PyDictViewSet_Check(PyObject *op)
@@ -490,7 +490,58 @@ Dictionary View Objects
490490
always succeeds.
491491
492492
493-
Ordered Dictionaries
493+
Frozen dictionary objects
494+
^^^^^^^^^^^^^^^^^^^^^^^^^
495+
496+
.. versionadded:: next
497+
498+
499+
.. c:var:: PyTypeObject PyFrozenDict_Type
500+
501+
This instance of :c:type:`PyTypeObject` represents the Python frozen
502+
dictionary type.
503+
This is the same object as :class:`frozendict` in the Python layer.
504+
505+
506+
.. c:function:: int PyAnyDict_Check(PyObject *p)
507+
508+
Return true if *p* is a :class:`dict` object, a :class:`frozendict` object,
509+
or an instance of a subtype of the :class:`!dict` or :class:`!frozendict`
510+
type.
511+
This function always succeeds.
512+
513+
514+
.. c:function:: int PyAnyDict_CheckExact(PyObject *p)
515+
516+
Return true if *p* is a :class:`dict` object or a :class:`frozendict` object,
517+
but not an instance of a subtype of the :class:`!dict` or
518+
:class:`!frozendict` type.
519+
This function always succeeds.
520+
521+
522+
.. c:function:: int PyFrozenDict_Check(PyObject *p)
523+
524+
Return true if *p* is a :class:`frozendict` object or an instance of a
525+
subtype of the :class:`!frozendict` type.
526+
This function always succeeds.
527+
528+
529+
.. c:function:: int PyFrozenDict_CheckExact(PyObject *p)
530+
531+
Return true if *p* is a :class:`frozendict` object, but not an instance of a
532+
subtype of the :class:`!frozendict` type.
533+
This function always succeeds.
534+
535+
536+
.. c:function:: PyObject* PyFrozenDict_New(PyObject *iterable)
537+
538+
Return a new :class:`frozendict` from an iterable, or ``NULL`` on failure
539+
with an exception set.
540+
541+
Create an empty dictionary if *iterable* is ``NULL``.
542+
543+
544+
Ordered dictionaries
494545
^^^^^^^^^^^^^^^^^^^^
495546
496547
Python's C API provides interface for :class:`collections.OrderedDict` from C.

Doc/conf.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,6 @@
227227
# Temporary undocumented names.
228228
# In future this list must be empty.
229229
nitpick_ignore += [
230-
# Do not error nit-picky mode builds when _SubParsersAction.add_parser cannot
231-
# be resolved, as the method is currently undocumented. For context, see
232-
# https://github.com/python/cpython/pull/103289.
233-
('py:meth', '_SubParsersAction.add_parser'),
234230
# Attributes/methods/etc. that definitely should be documented better,
235231
# but are deferred for now:
236232
('py:attr', '__wrapped__'),

Doc/faq/programming.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1852,6 +1852,8 @@ to the object:
18521852
13891296
18531853

18541854

1855+
.. _faq-identity-with-is:
1856+
18551857
When can I rely on identity tests with the *is* operator?
18561858
---------------------------------------------------------
18571859

0 commit comments

Comments
 (0)