Skip to content

Commit 7e8fb0c

Browse files
Merge branch 'main' of https://github.com/python/cpython into static-const-string
2 parents 0f79668 + fd76eb5 commit 7e8fb0c

File tree

909 files changed

+14918
-8350
lines changed

Some content is hidden

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

909 files changed

+14918
-8350
lines changed

.github/CODEOWNERS

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,16 @@ Python/pythonrun.c @iritkatriel
5353
/Lib/html/ @ezio-melotti
5454
/Lib/_markupbase.py @ezio-melotti
5555
/Lib/test/test_html*.py @ezio-melotti
56+
/Tools/scripts/*html5* @ezio-melotti
5657

5758
# Import (including importlib).
5859
# Ignoring importlib.h so as to not get flagged on
5960
# all pull requests that change the emitted
6061
# bytecode.
6162
**/*import*.c @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw
6263
**/*import*.py @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw
64+
**/importlib/resources/* @jaraco @warsaw @brettcannon
65+
**/importlib/metadata/* @jaraco @warsaw
6366

6467
# Dates and times
6568
**/*datetime* @pganssle @abalkin
@@ -95,7 +98,7 @@ Lib/ast.py @isidentical
9598

9699
# Mock
97100
/Lib/unittest/mock.py @cjw296
98-
/Lib/unittest/test/testmock/* @cjw296
101+
/Lib/test/test_unittest/testmock/* @cjw296
99102

100103
# SQLite 3
101104
**/*sqlite* @berkerpeksag @erlend-aasland

.github/workflows/build_msi.yml

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,48 +5,27 @@ on:
55
push:
66
branches:
77
- 'main'
8-
- '3.11'
9-
- '3.10'
10-
- '3.9'
11-
- '3.8'
12-
- '3.7'
8+
- '3.*'
139
paths:
1410
- 'Tools/msi/**'
1511
pull_request:
1612
branches:
1713
- 'main'
18-
- '3.11'
19-
- '3.10'
20-
- '3.9'
21-
- '3.8'
22-
- '3.7'
14+
- '3.*'
2315
paths:
2416
- 'Tools/msi/**'
2517

2618
permissions:
2719
contents: read
2820

2921
jobs:
30-
build_win32:
31-
name: 'Windows (x86) Installer'
22+
build:
23+
name: Windows Installer
3224
runs-on: windows-latest
25+
strategy:
26+
matrix:
27+
type: [x86, x64, arm64]
3328
steps:
3429
- uses: actions/checkout@v3
3530
- name: Build CPython installer
36-
run: .\Tools\msi\build.bat -x86
37-
38-
build_win_amd64:
39-
name: 'Windows (x64) Installer'
40-
runs-on: windows-latest
41-
steps:
42-
- uses: actions/checkout@v3
43-
- name: Build CPython installer
44-
run: .\Tools\msi\build.bat -x64
45-
46-
build_win_arm64:
47-
name: 'Windows (ARM64) Installer'
48-
runs-on: windows-latest
49-
steps:
50-
- uses: actions/checkout@v3
51-
- name: Build CPython installer
52-
run: .\Tools\msi\build.bat -arm64
31+
run: .\Tools\msi\build.bat -${{ matrix.type }}

.github/workflows/doc.yml

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ on:
2323
paths:
2424
- 'Doc/**'
2525
- 'Misc/**'
26+
- '.github/workflows/doc.yml'
2627

2728
permissions:
2829
contents: read
@@ -35,6 +36,38 @@ jobs:
3536
- uses: actions/checkout@v3
3637
- name: Register Sphinx problem matcher
3738
run: echo "::add-matcher::.github/problem-matchers/sphinx.json"
39+
- name: 'Set up Python'
40+
uses: actions/setup-python@v4
41+
with:
42+
python-version: '3'
43+
cache: 'pip'
44+
cache-dependency-path: 'Doc/requirements.txt'
45+
- name: 'Install build dependencies'
46+
run: make -C Doc/ venv
47+
- name: 'Check documentation'
48+
run: make -C Doc/ check
49+
- name: 'Build HTML documentation'
50+
run: make -C Doc/ SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" html
51+
- name: 'Upload'
52+
uses: actions/upload-artifact@v3
53+
with:
54+
name: doc-html
55+
path: Doc/build/html
56+
57+
# Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release
58+
doctest:
59+
name: 'Doctest'
60+
runs-on: ubuntu-latest
61+
steps:
62+
- uses: actions/checkout@v3
63+
- name: Register Sphinx problem matcher
64+
run: echo "::add-matcher::.github/problem-matchers/sphinx.json"
65+
- uses: actions/cache@v3
66+
with:
67+
path: ~/.cache/pip
68+
key: ubuntu-doc-${{ hashFiles('Doc/requirements.txt') }}
69+
restore-keys: |
70+
ubuntu-doc-
3871
- name: 'Install Dependencies'
3972
run: sudo ./.github/workflows/posix-deps-apt.sh && sudo apt-get install wamerican
4073
- name: 'Configure CPython'
@@ -43,17 +76,6 @@ jobs:
4376
run: make -j4
4477
- name: 'Install build dependencies'
4578
run: make -C Doc/ PYTHON=../python venv
46-
# Run "check doctest html" as 3 steps to get a more readable output
47-
# in the web UI
48-
- name: 'Check documentation'
49-
run: make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going" check
5079
# Use "xvfb-run" since some doctest tests open GUI windows
5180
- name: 'Run documentation doctest'
52-
run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going" doctest
53-
- name: 'Build HTML documentation'
54-
run: make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going" html
55-
- name: 'Upload'
56-
uses: actions/upload-artifact@v3
57-
with:
58-
name: doc-html
59-
path: Doc/build/html
81+
run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" doctest

.github/workflows/project-updater.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Update GH projects
2+
3+
on:
4+
issues:
5+
types:
6+
- opened
7+
- labeled
8+
9+
jobs:
10+
add-to-project:
11+
name: Add to the Release and Deferred Blocker project
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/add-to-project@v0.1.0
15+
with:
16+
project-url: https://github.com/orgs/python/projects/2
17+
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
18+
labeled: release-blocker, deferred-blocker
19+
label-operator: OR

.github/workflows/regen-abidump.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
set -ex
2+
3+
export DEBIAN_FRONTEND=noninteractive
4+
./.github/workflows/posix-deps-apt.sh
5+
apt-get install -yq abigail-tools python3
6+
export CFLAGS="-g3 -O0"
7+
./configure --enable-shared && make
8+
make regen-abidump
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Verify bundled pip and setuptools
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- 'Lib/ensurepip/_bundled/**'
8+
- '.github/workflows/verify-ensurepip-wheels.yml'
9+
- 'Tools/scripts/verify_ensurepip_wheels.py'
10+
pull_request:
11+
paths:
12+
- 'Lib/ensurepip/_bundled/**'
13+
- '.github/workflows/verify-ensurepip-wheels.yml'
14+
- 'Tools/scripts/verify_ensurepip_wheels.py'
15+
16+
permissions:
17+
contents: read
18+
19+
jobs:
20+
verify:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v3
24+
- uses: actions/setup-python@v4
25+
with:
26+
python-version: '3'
27+
- name: Compare checksums of bundled pip and setuptools to ones published on PyPI
28+
run: ./Tools/scripts/verify_ensurepip_wheels.py

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,6 @@ Python/frozen_modules/MANIFEST
150150
# Ignore ./python binary on Unix but still look into ./Python/ directory.
151151
/python
152152
!/Python/
153+
154+
# main branch only: ABI files are not checked/maintained
155+
Doc/data/python*.abi

Doc/c-api/call.rst

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,6 @@ Vectorcall Support API
144144
However, the function ``PyVectorcall_NARGS`` should be used to allow
145145
for future extensions.
146146
147-
This function is not part of the :ref:`limited API <stable>`.
148-
149147
.. versionadded:: 3.8
150148
151149
.. c:function:: vectorcallfunc PyVectorcall_Function(PyObject *op)
@@ -158,8 +156,6 @@ Vectorcall Support API
158156
This is mostly useful to check whether or not *op* supports vectorcall,
159157
which can be done by checking ``PyVectorcall_Function(op) != NULL``.
160158
161-
This function is not part of the :ref:`limited API <stable>`.
162-
163159
.. versionadded:: 3.8
164160
165161
.. c:function:: PyObject* PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict)
@@ -172,8 +168,6 @@ Vectorcall Support API
172168
It does not check the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag
173169
and it does not fall back to ``tp_call``.
174170
175-
This function is not part of the :ref:`limited API <stable>`.
176-
177171
.. versionadded:: 3.8
178172
179173
@@ -256,8 +250,6 @@ please see individual documentation for details.
256250
Return the result of the call on success, or raise an exception and return
257251
*NULL* on failure.
258252
259-
This function is not part of the :ref:`limited API <stable>`.
260-
261253
.. versionadded:: 3.9
262254
263255
@@ -343,8 +335,6 @@ please see individual documentation for details.
343335
Return the result of the call on success, or raise an exception and return
344336
*NULL* on failure.
345337
346-
This function is not part of the :ref:`limited API <stable>`.
347-
348338
.. versionadded:: 3.9
349339
350340
@@ -357,8 +347,6 @@ please see individual documentation for details.
357347
Return the result of the call on success, or raise an exception and return
358348
*NULL* on failure.
359349
360-
This function is not part of the :ref:`limited API <stable>`.
361-
362350
.. versionadded:: 3.9
363351
364352
@@ -372,8 +360,6 @@ please see individual documentation for details.
372360
Return the result of the call on success, or raise an exception and return
373361
*NULL* on failure.
374362
375-
This function is not part of the :ref:`limited API <stable>`.
376-
377363
.. versionadded:: 3.9
378364
379365
.. c:function:: PyObject* PyObject_VectorcallDict(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwdict)
@@ -388,8 +374,6 @@ please see individual documentation for details.
388374
already has a dictionary ready to use for the keyword arguments,
389375
but not a tuple for the positional arguments.
390376
391-
This function is not part of the :ref:`limited API <stable>`.
392-
393377
.. versionadded:: 3.9
394378
395379
.. c:function:: PyObject* PyObject_VectorcallMethod(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames)
@@ -410,8 +394,6 @@ please see individual documentation for details.
410394
Return the result of the call on success, or raise an exception and return
411395
*NULL* on failure.
412396
413-
This function is not part of the :ref:`limited API <stable>`.
414-
415397
.. versionadded:: 3.9
416398
417399

Doc/c-api/init_config.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -735,9 +735,8 @@ PyConfig
735735
736736
* ``"utf-8"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero.
737737
* ``"ascii"`` if Python detects that ``nl_langinfo(CODESET)`` announces
738-
the ASCII encoding (or Roman8 encoding on HP-UX), whereas the
739-
``mbstowcs()`` function decodes from a different encoding (usually
740-
Latin1).
738+
the ASCII encoding, whereas the ``mbstowcs()`` function
739+
decodes from a different encoding (usually Latin1).
741740
* ``"utf-8"`` if ``nl_langinfo(CODESET)`` returns an empty string.
742741
* Otherwise, use the :term:`locale encoding`:
743742
``nl_langinfo(CODESET)`` result.

Doc/c-api/structures.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,6 @@ There are these calling conventions:
321321
or possibly ``NULL`` if there are no keywords. The values of the keyword
322322
arguments are stored in the *args* array, after the positional arguments.
323323
324-
This is not part of the :ref:`limited API <stable>`.
325-
326324
.. versionadded:: 3.7
327325
328326

Doc/c-api/sys.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ Operating System Utilities
2121
2222
Return true (nonzero) if the standard I/O file *fp* with name *filename* is
2323
deemed interactive. This is the case for files for which ``isatty(fileno(fp))``
24-
is true. If the global flag :c:data:`Py_InteractiveFlag` is true, this function
24+
is true. If the :c:member:`PyConfig.interactive` is non-zero, this function
2525
also returns true if the *filename* pointer is ``NULL`` or if the name is equal to
2626
one of the strings ``'<stdin>'`` or ``'???'``.
2727
28+
This function must not be called before Python is initialized.
29+
2830
2931
.. c:function:: void PyOS_BeforeFork()
3032

0 commit comments

Comments
 (0)