Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit765c2de

Browse files
authored
Merge branch 'main' into python_tokenizer
2 parents73af4bb +cfa517d commit765c2de

File tree

269 files changed

+18390
-7879
lines changed

Some content is hidden

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

269 files changed

+18390
-7879
lines changed

‎.github/CODEOWNERS‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ configure* @erlend-aasland @corona10
2222
**/*hamt*@1st1
2323
Objects/set*@rhettinger
2424
Objects/dict*@methane@markshannon
25+
Objects/typevarobject.c@JelleZijlstra
2526
Objects/type*@markshannon
2627
Objects/codeobject.c@markshannon
2728
Objects/frameobject.c@markshannon
@@ -33,6 +34,7 @@ Python/flowgraph.c @markshannon @iritkatriel
3334
Python/ast_opt.c@isidentical
3435
Lib/test/test_patma.py@brandtbucher
3536
Lib/test/test_peepholer.py@brandtbucher
37+
Lib/test/test_type_*.py@JelleZijlstra
3638

3739
# Exceptions
3840
Lib/traceback.py@iritkatriel

‎.github/dependabot.yml‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,10 @@ updates:
1212
update-types:
1313
-"version-update:semver-minor"
1414
-"version-update:semver-patch"
15+
-package-ecosystem:"pip"
16+
directory:"/Tools/clinic/"
17+
schedule:
18+
interval:"monthly"
19+
labels:
20+
-"skip issue"
21+
-"skip news"

‎.github/workflows/build.yml‎

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
timeout-minutes:10
3737
outputs:
3838
run_tests:${{ steps.check.outputs.run_tests }}
39+
run_hypothesis:${{ steps.check.outputs.run_hypothesis }}
3940
steps:
4041
-uses:actions/checkout@v3
4142
-name:Check for source changes
@@ -61,6 +62,17 @@ jobs:
6162
git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qvE '(\.rst$|^Doc|^Misc)' && echo "run_tests=true" >> $GITHUB_OUTPUT ||true
6263
fi
6364
65+
# Check if we should run hypothesis tests
66+
GIT_BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}
67+
echo $GIT_BRANCH
68+
if $(echo "$GIT_BRANCH" | grep -q -w '3\.\(8\|9\|10\|11\)'); then
69+
echo "Branch too old for hypothesis tests"
70+
echo "run_hypothesis=false" >> $GITHUB_OUTPUT
71+
else
72+
echo "Run hypothesis tests"
73+
echo "run_hypothesis=true" >> $GITHUB_OUTPUT
74+
fi
75+
6476
check_generated_files:
6577
name:'Check if generated files are up to date'
6678
runs-on:ubuntu-latest
@@ -291,6 +303,92 @@ jobs:
291303
-name:SSL tests
292304
run:./python Lib/test/ssltests.py
293305

306+
test_hypothesis:
307+
name:"Hypothesis Tests on Ubuntu"
308+
runs-on:ubuntu-20.04
309+
timeout-minutes:60
310+
needs:check_source
311+
if:needs.check_source.outputs.run_tests == 'true' && needs.check_source.outputs.run_hypothesis == 'true'
312+
env:
313+
OPENSSL_VER:1.1.1t
314+
PYTHONSTRICTEXTENSIONBUILD:1
315+
steps:
316+
-uses:actions/checkout@v3
317+
-name:Register gcc problem matcher
318+
run:echo "::add-matcher::.github/problem-matchers/gcc.json"
319+
-name:Install Dependencies
320+
run:sudo ./.github/workflows/posix-deps-apt.sh
321+
-name:Configure OpenSSL env vars
322+
run:|
323+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
324+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
325+
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
326+
-name:'Restore OpenSSL build'
327+
id:cache-openssl
328+
uses:actions/cache@v3
329+
with:
330+
path:./multissl/openssl/${{ env.OPENSSL_VER }}
331+
key:${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
332+
-name:Install OpenSSL
333+
if:steps.cache-openssl.outputs.cache-hit != 'true'
334+
run:python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
335+
-name:Add ccache to PATH
336+
run:|
337+
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
338+
-name:Configure ccache action
339+
uses:hendrikmuhs/ccache-action@v1.2
340+
-name:Setup directory envs for out-of-tree builds
341+
run:|
342+
echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV
343+
echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
344+
-name:Create directories for read-only out-of-tree builds
345+
run:mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
346+
-name:Bind mount sources read-only
347+
run:sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
348+
-name:Configure CPython out-of-tree
349+
working-directory:${{ env.CPYTHON_BUILDDIR }}
350+
run:../cpython-ro-srcdir/configure --with-pydebug --with-openssl=$OPENSSL_DIR
351+
-name:Build CPython out-of-tree
352+
working-directory:${{ env.CPYTHON_BUILDDIR }}
353+
run:make -j4
354+
-name:Display build info
355+
working-directory:${{ env.CPYTHON_BUILDDIR }}
356+
run:make pythoninfo
357+
-name:Remount sources writable for tests
358+
# some tests write to srcdir, lack of pyc files slows down testing
359+
run:sudo mount $CPYTHON_RO_SRCDIR -oremount,rw
360+
-name:Setup directory envs for out-of-tree builds
361+
run:|
362+
echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
363+
-name:"Create hypothesis venv"
364+
working-directory:${{ env.CPYTHON_BUILDDIR }}
365+
run:|
366+
VENV_LOC=$(realpath -m .)/hypovenv
367+
VENV_PYTHON=$VENV_LOC/bin/python
368+
echo "HYPOVENV=${VENV_LOC}" >> $GITHUB_ENV
369+
echo "VENV_PYTHON=${VENV_PYTHON}" >> $GITHUB_ENV
370+
./python -m venv $VENV_LOC && $VENV_PYTHON -m pip install -U hypothesis
371+
-name:"Run tests"
372+
working-directory:${{ env.CPYTHON_BUILDDIR }}
373+
run:|
374+
# Most of the excluded tests are slow test suites with no property tests
375+
#
376+
# (GH-104097) test_sysconfig is skipped because it has tests that are
377+
# failing when executed from inside a virtual environment.
378+
${{ env.VENV_PYTHON }} -m test \
379+
-W \
380+
-o \
381+
-j4 \
382+
-x test_asyncio \
383+
-x test_multiprocessing_fork \
384+
-x test_multiprocessing_forkserver \
385+
-x test_multiprocessing_spawn \
386+
-x test_concurrent_futures \
387+
-x test_socket \
388+
-x test_subprocess \
389+
-x test_signal \
390+
-x test_sysconfig
391+
294392
295393
build_asan:
296394
name:'Address sanitizer'

‎.github/workflows/mypy.yml‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Workflow to run mypy on select parts of the CPython repo
2+
name:mypy
3+
4+
on:
5+
push:
6+
branches:
7+
-main
8+
pull_request:
9+
paths:
10+
-"Tools/clinic/**"
11+
-".github/workflows/mypy.yml"
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents:read
16+
17+
env:
18+
PIP_DISABLE_PIP_VERSION_CHECK:1
19+
FORCE_COLOR:1
20+
TERM:xterm-256color# needed for FORCE_COLOR to work on mypy on Ubuntu, see https://github.com/python/mypy/issues/13817
21+
22+
concurrency:
23+
group:${{ github.workflow }}-${{ github.head_ref || github.run_id }}
24+
cancel-in-progress:true
25+
26+
jobs:
27+
mypy:
28+
name:Run mypy on Tools/clinic/
29+
runs-on:ubuntu-latest
30+
timeout-minutes:10
31+
steps:
32+
-uses:actions/checkout@v3
33+
-uses:actions/setup-python@v4
34+
with:
35+
python-version:"3.x"
36+
cache:pip
37+
cache-dependency-path:Tools/clinic/requirements-dev.txt
38+
-run:pip install -r Tools/clinic/requirements-dev.txt
39+
-run:mypy --config-file Tools/clinic/mypy.ini

‎Doc/c-api/frame.rst‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,38 @@ See also :ref:`Reflection <reflection>`.
130130
.. c:function:: int PyFrame_GetLineNumber(PyFrameObject *frame)
131131
132132
Return the line number that *frame* is currently executing.
133+
134+
135+
136+
Internal Frames
137+
---------------
138+
139+
Unless using:pep:`523`, you will not need this.
140+
141+
..c:struct:: _PyInterpreterFrame
142+
143+
The interpreter's internal frame representation.
144+
145+
..versionadded::3.11
146+
147+
..c:function:: PyObject*PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);
148+
149+
Return a:term:`strong reference` to the code object for the frame.
150+
151+
..versionadded::3.12
152+
153+
154+
..c:function::intPyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);
155+
156+
Return the byte offset into the last executed instruction.
157+
158+
..versionadded::3.12
159+
160+
161+
..c:function::intPyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);
162+
163+
Return the currently executing line number, or -1 if there is no line number.
164+
165+
..versionadded::3.12
166+
167+

‎Doc/howto/clinic.rst‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,9 @@ All Argument Clinic converters accept the following arguments:
775775
because:pep:`8` mandates that the Python library may not use
776776
annotations.
777777

778+
``unused``
779+
Wrap the argument with:c:macro:`Py_UNUSED` in the impl function signature.
780+
778781
In addition, some converters accept additional arguments. Here is a list
779782
of these arguments, along with their meanings:
780783

‎Doc/howto/logging.rst‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,7 @@ The flow of log event information in loggers and handlers is illustrated in the
418418
following diagram.
419419

420420
..image::logging_flow.png
421+
:class:invert-in-dark-mode
421422

422423
Loggers
423424
^^^^^^^

‎Doc/library/ast.rst‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,6 +1724,7 @@ Function and class definitions
17241724
body=[
17251725
FunctionDef(
17261726
name='f',
1727+
typeparams=[],
17271728
args=arguments(
17281729
posonlyargs=[],
17291730
args=[
@@ -1847,6 +1848,7 @@ Function and class definitions
18471848
body=[
18481849
ClassDef(
18491850
name='Foo',
1851+
typeparams=[],
18501852
bases=[
18511853
Name(id='base1', ctx=Load()),
18521854
Name(id='base2', ctx=Load())],
@@ -1885,6 +1887,7 @@ Async and await
18851887
body=[
18861888
AsyncFunctionDef(
18871889
name='f',
1890+
typeparams=[],
18881891
args=arguments(
18891892
posonlyargs=[],
18901893
args=[],

‎Doc/library/asyncio-task.rst‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,8 @@ Running Tasks Concurrently
527527
and there is no running event loop.
528528

529529

530+
.. _eager-task-factory:
531+
530532
Eager Task Factory
531533
==================
532534

@@ -1174,8 +1176,17 @@ Task Object
11741176

11751177
Return the coroutine object wrapped by the:class:`Task`.
11761178

1179+
..note::
1180+
1181+
This will return ``None`` for Tasks which have already
1182+
completed eagerly. See the:ref:`Eager Task Factory<eager-task-factory>`.
1183+
11771184
..versionadded::3.8
11781185

1186+
..versionchanged::3.12
1187+
1188+
Newly added eager task execution means result may be ``None``.
1189+
11791190
..method::get_context()
11801191

11811192
Return the:class:`contextvars.Context` object

‎Doc/library/atexit.rst‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ at interpreter termination time they will be run in the order ``C``, ``B``,
2020
program is killed by a signal not handled by Python, when a Python fatal
2121
internal error is detected, or when:func:`os._exit` is called.
2222

23+
**Note:** The effect of registering or unregistering functions from within
24+
a cleanup function is undefined.
25+
2326
..versionchanged::3.7
2427
When used with C-API subinterpreters, registered functions
2528
are local to the interpreter they were registered in.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp