Skip to content

Commit b8635b3

Browse files
authored
Merge branch 'main' into fix-gh-149335
2 parents ae82f72 + cb3b4b9 commit b8635b3

414 files changed

Lines changed: 154872 additions & 24054 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: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -573,9 +573,9 @@ Lib/shutil.py @giampaolo
573573
Lib/test/test_shutil.py @giampaolo
574574

575575
# Site
576-
Lib/site.py @FFY00
577-
Lib/test/test_site.py @FFY00
578-
Doc/library/site.rst @FFY00
576+
Lib/site.py @FFY00 @warsaw
577+
Lib/test/test_site.py @FFY00 @warsaw
578+
Doc/library/site.rst @FFY00 @warsaw
579579

580580
# string.templatelib
581581
Doc/library/string.templatelib.rst @lysnikolaou @AA-Turner
@@ -586,10 +586,10 @@ Lib/test/test_string/test_templatelib.py @lysnikolaou @AA-Turner
586586
**/*sysconfig* @FFY00
587587

588588
# SQLite 3
589-
Doc/library/sqlite3.rst @berkerpeksag @erlend-aasland
590-
Lib/sqlite3/ @berkerpeksag @erlend-aasland
591-
Lib/test/test_sqlite3/ @berkerpeksag @erlend-aasland
592-
Modules/_sqlite/ @berkerpeksag @erlend-aasland
589+
Doc/library/sqlite3.rst @erlend-aasland
590+
Lib/sqlite3/ @erlend-aasland
591+
Lib/test/test_sqlite3/ @erlend-aasland
592+
Modules/_sqlite/ @erlend-aasland
593593

594594
# Subprocess
595595
Lib/subprocess.py @gpshead
@@ -622,9 +622,6 @@ Modules/_typesmodule.c @AA-Turner
622622
Lib/unittest/mock.py @cjw296
623623
Lib/test/test_unittest/testmock/ @cjw296
624624

625-
# Urllib
626-
**/*robotparser* @berkerpeksag
627-
628625
# Venv
629626
**/*venv* @vsajip @FFY00
630627

.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/mypy.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,11 @@ jobs:
6969
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7070
with:
7171
persist-credentials: false
72-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
72+
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
7373
with:
7474
python-version: "3.15"
75-
allow-prereleases: true
76-
cache: pip
77-
cache-dependency-path: Tools/requirements-dev.txt
78-
- run: pip install -r Tools/requirements-dev.txt
75+
activate-environment: true
76+
cache-dependency-glob: Tools/requirements-dev.txt
77+
- run: uv pip install -r Tools/requirements-dev.txt
7978
- run: python3 Misc/mypy/make_symlinks.py --symlink
80-
- run: mypy --config-file ${{ matrix.target }}/mypy.ini
79+
- run: mypy --num-workers 4 --config-file ${{ matrix.target }}/mypy.ini

.github/workflows/posix-deps-apt.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ apt-get -yq --no-install-recommends install \
2727
zlib1g-dev
2828

2929
# Workaround missing libmpdec-dev on ubuntu 24.04 by building mpdecimal
30-
# from source. ppa:ondrej/php (launchpad.net) are unreliable
30+
# from source. ppa:ondrej/php (launchpad.net) are unreliable
3131
# (https://status.canonical.com) so fetch the tarball directly
3232
# from the upstream host.
3333
# https://www.bytereef.org/mpdecimal/

.github/workflows/reusable-macos.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@ jobs:
3838
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
3939
- name: Install Homebrew dependencies
4040
run: |
41-
brew install pkg-config openssl@3.5 xz gdbm tcl-tk@9 make
42-
# Because alternate versions are not symlinked into place by default:
43-
brew link --overwrite tcl-tk@9
41+
brew bundle --file=Misc/Brewfile
42+
brew install make
4443
- name: Configure CPython
4544
run: |
4645
MACOSX_DEPLOYMENT_TARGET=10.15 \
@@ -55,15 +54,15 @@ jobs:
5554
--prefix=/opt/python-dev \
5655
--with-openssl="$(brew --prefix openssl@3.5)"
5756
- name: Build CPython
58-
if : ${{ inputs.free-threading || inputs.os != 'macos-15-intel' }}
57+
if : ${{ inputs.free-threading || inputs.os != 'macos-26-intel' }}
5958
run: gmake -j8
6059
- name: Build CPython for compiler warning check
61-
if : ${{ !inputs.free-threading && inputs.os == 'macos-15-intel' }}
60+
if : ${{ !inputs.free-threading && inputs.os == 'macos-26-intel' }}
6261
run: set -o pipefail; gmake -j8 --output-sync 2>&1 | tee compiler_output_macos.txt
6362
- name: Display build info
6463
run: make pythoninfo
6564
- name: Check compiler warnings
66-
if : ${{ !inputs.free-threading && inputs.os == 'macos-15-intel' }}
65+
if : ${{ !inputs.free-threading && inputs.os == 'macos-26-intel' }}
6766
run: >-
6867
python3 Tools/build/check_warnings.py
6968
--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: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,29 @@ Sentinel objects
1414

1515
.. c:function:: int PySentinel_Check(PyObject *o)
1616
17-
Return true if *o* is a :class:`sentinel` object. The :class:`sentinel` type
18-
does not allow subclasses, so this check is exact.
17+
Return true if *o* is a :class:`sentinel` object or a subtype.
18+
The :class:`sentinel` type does not currently allow subclasses,
19+
so this check is exact.
20+
Future Python versions may choose to allow subtyping.
21+
This function always succeeds.
1922
2023
.. versionadded:: 3.15
2124
22-
.. c:function:: PyObject* PySentinel_New(const char *name, const char *module_name)
25+
.. c:function:: int PySentinel_CheckExact(PyObject *o)
26+
27+
Return true if *o* is a :class:`sentinel` object, but not a subtype.
28+
The :class:`sentinel` type does not currently allow subclasses.
29+
Future Python versions may choose to allow subtyping.
30+
This function always succeeds.
31+
32+
.. versionadded:: 3.15
33+
34+
.. c:function:: PyObject* PySentinel_New(const char *name, const char *module_name, const char *repr)
2335
2436
Return a new :class:`sentinel` object with :attr:`~sentinel.__name__` set to
2537
*name* and :attr:`~sentinel.__module__` set to *module_name*.
2638
*name* must not be ``NULL``. If *module_name* is ``NULL``, :attr:`~sentinel.__module__`
27-
is set to ``None``.
39+
is set to ``None``. If *repr* is ``NULL``, ``repr()`` returns :attr:`~sentinel.__name__`.
2840
Return ``NULL`` with an exception set on failure.
2941
3042
For pickling to work, *module_name* must be the name of an importable

Doc/c-api/slots.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ Definition slots
77

88
To define :ref:`module objects <moduleobjects>` and
99
:ref:`classes <creating-heap-types>` using the C API, you may use
10-
an array of *slots* -- essentally, key-value pairs that describe features
10+
an array of *slots* -- essentially, key-value pairs that describe features
1111
of the object to create.
1212
This decouples the data from the structures used at runtime, allowing CPython
13-
-- and other Python C API implementations -- to update the stuctures without
13+
-- and other Python C API implementations -- to update the structures without
1414
breaking backwards compatibility.
1515

1616
This section documents slots in general.

0 commit comments

Comments
 (0)