Skip to content

Commit 3a8a5b6

Browse files
authored
Merge branch 'main' into fix-forkserver-sigkill-race
2 parents 853d372 + 7715c92 commit 3a8a5b6

262 files changed

Lines changed: 24296 additions & 16183 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.

‎.gitattributes‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ Modules/_testinternalcapi/test_cases.c.h generated
102102
Modules/_testinternalcapi/test_targets.h generated
103103
PC/python3dll.c generated
104104
Parser/parser.c generated
105+
Parser/parser_invalid.c generated
105106
Parser/token.c generated
106107
Programs/test_frozenmain.h generated
107108
Python/Python-ast.c generated

‎.github/CODEOWNERS‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ Python/optimizer_symbols.c @markshannon @tomasr8 @Fidget-Spinner
302302

303303
# Parser, Lexer, and Grammar
304304
Grammar/python.gram @pablogsal @lysnikolaou
305+
Grammar/invalid.gram @pablogsal @lysnikolaou
305306
Lib/test/test_peg_generator/ @pablogsal @lysnikolaou
306307
Lib/test/test_tokenize.py @pablogsal @lysnikolaou
307308
Lib/tokenize.py @pablogsal @lysnikolaou

‎.github/VULNERABILITY_REPORT.yml‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ body:
5151
- "3.15"
5252
- "3.16"
5353
- "CPython main branch"
54-
validations:
55-
required: true
5654
- type: textarea
5755
id: patch
5856
attributes:

‎.github/workflows/reusable-test-lazy-imports-all.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ jobs:
6464
- name: Verify excluded tests still need exclusion
6565
run: |
6666
set -euo pipefail
67+
# Failures are expected here, don't report them to the job summary
68+
unset GITHUB_STEP_SUMMARY
6769
unexpected_passes=()
6870
while IFS= read -r test_name; do
6971
[ -n "$test_name" ] || continue

‎.gitignore‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,19 @@ Lib/test/data/*
7272
/_bootstrap_python
7373
/Makefile
7474
/Makefile.pre
75-
/iOSTestbed.*
76-
Apple/iOS/Frameworks/
77-
Apple/iOS/Resources/Info.plist
78-
Apple/testbed/build
75+
/AppleTestbed.*
76+
Platforms/Apple/iOS/Frameworks/*
77+
Platforms/Apple/iOS/Resources/Info.plist
7978
Platforms/Apple/testbed/Python*.xcframework/*/bin
8079
Platforms/Apple/testbed/Python*.xcframework/*/include
8180
Platforms/Apple/testbed/Python*.xcframework/*/lib
8281
Platforms/Apple/testbed/Python*.xcframework/*/Python*.framework
83-
Apple/testbed/*Testbed.xcodeproj/project.xcworkspace
84-
Apple/testbed/*Testbed.xcodeproj/xcuserdata
82+
Platforms/Apple/tvOS/Frameworks/*
83+
Platforms/Apple/tvOS/Resources/Info.plist
84+
Platforms/Apple/visionOS/Frameworks/*
85+
Platforms/Apple/visionOS/Resources/Info.plist
86+
Platforms/Apple/watchOS/Frameworks/*
87+
Platforms/Apple/watchOS/Resources/Info.plist
8588
Mac/Makefile
8689
Mac/PythonLauncher/Info.plist
8790
Mac/PythonLauncher/Makefile

‎Doc/builtins/functions.rst‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,10 @@ are always available. They are listed here in alphabetical order.
354354
consists of a single expression, or ``'single'`` if it consists of a single
355355
interactive statement (in the latter case, expression statements that
356356
evaluate to something other than ``None`` will be printed).
357+
It can also be ``'func_type'`` if *source* consists of a
358+
function type signature, for example ``(int) -> str``; see
359+
:func:`ast.parse` for more information. This mode requires passing
360+
:data:`ast.PyCF_ONLY_AST` in *flags*.
357361

358362
The optional arguments *flags* and *dont_inherit* control which
359363
:ref:`compiler options <ast-compiler-flags>` should be activated
@@ -427,6 +431,9 @@ are always available. They are listed here in alphabetical order.
427431
``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable
428432
support for top-level ``await``, ``async for``, and ``async with``.
429433

434+
.. versionchanged:: 3.8
435+
Added support for ``mode='func_type'``.
436+
430437
.. versionchanged:: 3.12
431438
:exc:`SyntaxError` is raised instead of :exc:`ValueError` when null bytes
432439
are encountered in *source*.

‎Doc/c-api/code.rst‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,12 @@ bound into a function.
9494
9595
.. c:function:: int PyCode_Addr2Line(PyCodeObject *co, int byte_offset)
9696
97-
Return the line number of the instruction that occurs on or before ``byte_offset`` and ends after it.
98-
If you just need the line number of a frame, use :c:func:`PyFrame_GetLineNumber` instead.
97+
Return the line number of the instruction that occurs on or before
98+
``byte_offset`` and ends after it. This may be ``O(N)`` in the number of
99+
instructions in the code object, so it is not performant for iterating over
100+
all the line numbers in a code object.
99101
100-
For efficiently iterating over the line numbers in a code object, use :pep:`the API described in PEP 626
101-
<0626#out-of-process-debuggers-and-profilers>`.
102+
If you just need the line number of a frame, use :c:func:`PyFrame_GetLineNumber` instead.
102103
103104
.. c:function:: int PyCode_Addr2Location(PyObject *co, int byte_offset, int *start_line, int *start_column, int *end_line, int *end_column)
104105

‎Doc/conf.py‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,13 @@
8686
.. |python_x_dot_y_literal| replace:: ``python{version}``
8787
.. |python_x_dot_y_t_literal| replace:: ``python{version}t``
8888
.. |python_x_dot_y_t_literal_config| replace:: ``python{version}t-config``
89+
.. |python_x_dot_y_exe_literal| replace:: ``python{version}.exe``
90+
.. |python_x_dot_y_t_exe_literal| replace:: ``python{version}t.exe``
91+
.. |python_xy_dll_literal| replace:: ``python{v.major}{v.minor}.dll``
92+
.. |py_v_x_dot_y_literal| replace:: ``py -V:{version}``
93+
.. |py_v_x_dot_y_t_literal| replace:: ``py -V:{version}t``
94+
.. |x_dot_y_literal| replace:: ``{version}``
95+
.. |x_dot_y_64_literal| replace:: ``{version}-64``
8996
.. |x_dot_y_b2_literal| replace:: ``{version}.0b2``
9097
.. |applications_python_version_literal| replace:: ``/Applications/Python {version}/``
9198
.. |usr_local_bin_python_x_dot_y_literal| replace:: ``/usr/local/bin/python{version}``

‎Doc/deprecations/pending-removal-in-3.19.rst‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Pending removal in Python 3.19
22
------------------------------
33

4+
* :mod:`builtins`:
5+
6+
* Passing a complex number as the *real* or *imag* argument in the
7+
:func:`complex` constructor is now deprecated; it should only be passed
8+
as a single positional argument.
9+
(Contributed by Serhiy Storchaka in :gh:`109218`.)
10+
411
* :mod:`ctypes`:
512

613
* Implicitly switching to the MSVC-compatible struct layout by setting

‎Doc/deprecations/pending-removal-in-future.rst‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,6 @@ although there is currently no date scheduled for their removal.
3535
* Support for ``__complex__()`` method returning a strict subclass of
3636
:class:`complex`: these methods will be required to return an instance of
3737
:class:`complex`.
38-
* Passing a complex number as the *real* or *imag* argument in the
39-
:func:`complex` constructor is now deprecated; it should only be passed
40-
as a single positional argument.
41-
(Contributed by Serhiy Storchaka in :gh:`109218`.)
4238

4339
* :mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants are
4440
deprecated and replaced by :data:`calendar.JANUARY` and

0 commit comments

Comments
 (0)