Skip to content

Commit 5c71bc1

Browse files
authored
Merge branch 'main' into gh-149816-96
2 parents c2b7dbe + 1d4e965 commit 5c71bc1

483 files changed

Lines changed: 10419 additions & 5855 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: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,16 +206,16 @@ jobs:
206206
strategy:
207207
fail-fast: false
208208
matrix:
209-
# macos-26 is Apple Silicon, macos-15-intel is Intel.
210-
# macos-15-intel only runs tests against the GIL-enabled CPython.
209+
# macos-26 is Apple Silicon, macos-26-intel is Intel.
210+
# macos-26-intel only runs tests against the GIL-enabled CPython.
211211
os:
212212
- macos-26
213-
- macos-15-intel
213+
- macos-26-intel
214214
free-threading:
215215
- false
216216
- true
217217
exclude:
218-
- os: macos-15-intel
218+
- os: macos-26-intel
219219
free-threading: true
220220
uses: ./.github/workflows/reusable-macos.yml
221221
with:

.github/workflows/reusable-macos.yml

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

.github/workflows/reusable-windows.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ permissions:
2222

2323
env:
2424
FORCE_COLOR: 1
25-
IncludeUwp: >-
26-
true
2725

2826
jobs:
2927
build:

.github/workflows/stale.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ jobs:
2121
uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
2222
with:
2323
repo-token: ${{ secrets.GITHUB_TOKEN }}
24-
stale-pr-message: 'This PR is stale because it has been open for 30 days with no activity.'
24+
stale-pr-message: 'This PR is stale because it has been open for 90 days with no activity.'
2525
stale-pr-label: 'stale'
2626
days-before-issue-stale: -1
27-
days-before-pr-stale: 30
27+
days-before-pr-stale: 90
2828
days-before-close: -1
2929
ascending: true
3030
operations-per-run: 120

Doc/c-api/import.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -393,11 +393,6 @@ Importing Modules
393393
394394
Make all imports lazy by default.
395395
396-
.. c:enumerator:: PyImport_LAZY_NONE
397-
398-
Disable lazy imports entirely. Even explicit ``lazy`` statements become
399-
eager imports.
400-
401396
.. versionadded:: 3.15
402397
403398
.. c:function:: PyObject* PyImport_CreateModuleFromInitfunc(PyObject *spec, PyObject* (*initfunc)(void))

Doc/c-api/sentinel.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ Sentinel objects
3131
3232
.. versionadded:: 3.15
3333
34-
.. c:function:: PyObject* PySentinel_New(const char *name, const char *module_name)
34+
.. c:function:: PyObject* PySentinel_New(const char *name, const char *module_name, const char *repr)
3535
3636
Return a new :class:`sentinel` object with :attr:`~sentinel.__name__` set to
3737
*name* and :attr:`~sentinel.__module__` set to *module_name*.
3838
*name* must not be ``NULL``. If *module_name* is ``NULL``, :attr:`~sentinel.__module__`
39-
is set to ``None``.
39+
is set to ``None``. If *repr* is ``NULL``, ``repr()`` returns :attr:`~sentinel.__name__`.
4040
Return ``NULL`` with an exception set on failure.
4141
4242
For pickling to work, *module_name* must be the name of an importable

Doc/c-api/threads.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -736,10 +736,10 @@ Low-level APIs
736736
.. c:function:: PyObject* PyThreadState_GetDict()
737737
738738
Return a dictionary in which extensions can store thread-specific state
739-
information. Each extension should use a unique key to use to store state in
739+
information. Each extension should use a unique key to store a state in
740740
the dictionary. It is okay to call this function when no :term:`thread state`
741741
is :term:`attached <attached thread state>`. If this function returns
742-
``NULL``, no exception has been raised and the caller should assume no
742+
``NULL`` and no exception has been raised, then the caller should assume no
743743
thread state is attached.
744744
745745

Doc/data/refcounts.dat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2040,6 +2040,7 @@ PySeqIter_New:PyObject*:seq:0:
20402040
PySentinel_New:PyObject*::+1:
20412041
PySentinel_New:const char*:name::
20422042
PySentinel_New:const char*:module_name::
2043+
PySentinel_New:const char*:repr::
20432044

20442045
PySequence_Check:int:::
20452046
PySequence_Check:PyObject*:o:0:

Doc/library/ctypes.rst

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ used to wrap these libraries in pure Python.
1414

1515
.. include:: ../includes/optional-module.rst
1616

17+
.. warning::
18+
19+
:mod:`!ctypes` provides low-level access to native libraries and the
20+
process's memory, bypassing Python's safety mechanisms and allowing
21+
execution of arbitrary native code.
22+
Incorrect use can corrupt data and objects, reveal sensitive information,
23+
cause crashes, or otherwise compromise the running process.
24+
1725

1826
.. _ctypes-ctypes-tutorial:
1927

@@ -198,10 +206,8 @@ argument values::
198206
OSError: exception: access violation reading 0x00000020
199207
>>>
200208

201-
There are, however, enough ways to crash Python with :mod:`!ctypes`, so you
202-
should be careful anyway. The :mod:`faulthandler` module can be helpful in
203-
debugging crashes (e.g. from segmentation faults produced by erroneous C library
204-
calls).
209+
The :mod:`faulthandler` module can help debug crashes,
210+
such as segmentation faults produced by erroneous C library calls.
205211

206212
``None``, integers, bytes objects and (unicode) strings are the only native
207213
Python objects that can directly be used as parameters in these function calls.

Doc/library/dataclasses.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ Module contents
418418
:func:`!astuple` raises :exc:`TypeError` if *obj* is not a dataclass
419419
instance.
420420

421-
.. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False, module=None, decorator=dataclass)
421+
.. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False, module=None, qualname=None, decorator=dataclass)
422422

423423
Creates a new dataclass with name *cls_name*, fields as defined
424424
in *fields*, base classes as given in *bases*, and initialized
@@ -434,6 +434,9 @@ Module contents
434434
of the dataclass is set to that value.
435435
By default, it is set to the module name of the caller.
436436

437+
If *qualname* is defined, the :attr:`~type.__qualname__` attribute of the dataclass
438+
is set to that value. By default, it is set to the value passed to *cls_name*.
439+
437440
The *decorator* parameter is a callable that will be used to create the dataclass.
438441
It should take the class object as a first argument and the same keyword arguments
439442
as :deco:`dataclass`. By default, the :deco:`dataclass`
@@ -464,6 +467,8 @@ Module contents
464467

465468
.. versionadded:: 3.14
466469
Added the *decorator* parameter.
470+
.. versionadded:: next
471+
Added the *qualname* parameter.
467472

468473
.. function:: replace(obj, /, **changes)
469474

0 commit comments

Comments
 (0)