Skip to content

Commit c9176ae

Browse files
Merge branch 'python:main' into gh-151818-fix-list-append-double-free
2 parents f3a6786 + 8270ae5 commit c9176ae

3 files changed

Lines changed: 61 additions & 30 deletions

File tree

.readthedocs.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,21 @@ build:
1111
os: ubuntu-24.04
1212
tools:
1313
python: "3"
14+
apt_packages:
15+
- jq
1416

1517
jobs:
16-
post_checkout:
18+
post_system_dependencies:
1719
# https://docs.readthedocs.com/platform/stable/guides/build/skip-build.html#skip-builds-based-on-conditions
1820
#
19-
# Cancel building pull requests when there aren't changes in the Doc
21+
# Cancel building pull requests when there are no changes in the Doc
2022
# directory or RTD configuration, or if we can't cleanly merge the base
2123
# branch.
2224
- |
2325
set -eEux;
2426
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ];
2527
then
26-
base_branch=main;
28+
base_branch=$(wget -qO- "https://api.github.com/repos/python/cpython/pulls/$READTHEDOCS_VERSION" | jq -er ".base.ref");
2729
git fetch --depth=50 origin $base_branch:origin-$base_branch;
2830
for attempt in $(seq 10);
2931
do

Doc/glossary.rst

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -96,21 +96,24 @@ Glossary
9696
:meth:`~object.__aexit__` methods. Introduced by :pep:`492`.
9797

9898
asynchronous generator
99-
A function which returns an :term:`asynchronous generator iterator`. It
100-
looks like a coroutine function defined with :keyword:`async def` except
101-
that it contains :keyword:`yield` expressions for producing a series of
102-
values usable in an :keyword:`async for` loop.
103-
104-
Usually refers to an asynchronous generator function, but may refer to an
105-
*asynchronous generator iterator* in some contexts. In cases where the
106-
intended meaning isn't clear, using the full terms avoids ambiguity.
99+
Informally used to mean either an :term:`asynchronous generator
100+
function` or an :term:`asynchronous generator iterator`, depending on
101+
context. The formal terms :term:`asynchronous generator function` and
102+
:term:`asynchronous generator iterator` are uncommon in practice;
103+
"asynchronous generator" alone is almost always sufficient.
104+
105+
asynchronous generator function
106+
A function which returns an :term:`asynchronous generator iterator`.
107+
It looks like a coroutine function defined with :keyword:`async def`
108+
except that it contains :keyword:`yield` expressions for producing a
109+
series of values usable in an :keyword:`async for` loop. See :pep:`525`.
107110

108111
An asynchronous generator function may contain :keyword:`await`
109112
expressions as well as :keyword:`async for`, and :keyword:`async with`
110113
statements.
111114

112115
asynchronous generator iterator
113-
An object created by an :term:`asynchronous generator` function.
116+
An object created by an :term:`asynchronous generator function`.
114117

115118
This is an :term:`asynchronous iterator` which when called using the
116119
:meth:`~object.__anext__` method returns an awaitable object which will execute
@@ -641,23 +644,33 @@ Glossary
641644
.. index:: single: generator
642645

643646
generator
644-
A function which returns a :term:`generator iterator`. It looks like a
645-
normal function except that it contains :keyword:`yield` expressions
646-
for producing a series of values usable in a for-loop or that can be
647-
retrieved one at a time with the :func:`next` function.
647+
Informally used to mean either a :term:`generator function` or a
648+
:term:`generator iterator`, depending on context. The formal terms
649+
:term:`generator function` and :term:`generator iterator` are uncommon
650+
in practice; "generator" alone is almost always sufficient.
648651

649-
Usually refers to a generator function, but may refer to a
650-
*generator iterator* in some contexts. In cases where the intended
651-
meaning isn't clear, using the full terms avoids ambiguity.
652+
.. index:: single: generator function
653+
654+
generator function
655+
A function which returns a :term:`generator` object. It looks like a
656+
normal function except that it contains :keyword:`yield` expressions
657+
for producing a series of values usable in a :keyword:`for`\-loop or
658+
that can be retrieved one at a time with the :func:`next` function.
659+
See :ref:`yieldexpr`.
652660

653661
generator iterator
654-
An object created by a :term:`generator` function.
662+
An object created by a :term:`generator function` or a
663+
:term:`generator expression`.
655664

656665
Each :keyword:`yield` temporarily suspends processing, remembering the
657-
execution state (including local variables and pending
658-
try-statements). When the *generator iterator* resumes, it picks up where
659-
it left off (in contrast to functions which start fresh on every
660-
invocation).
666+
execution state (including local variables and pending try-statements).
667+
When the *generator iterator* resumes, it picks up where it left off
668+
(in contrast to functions which start fresh on every invocation).
669+
670+
Generator iterators also implement the :meth:`~generator.send` method
671+
to send a value into the suspended generator, and the
672+
:meth:`~generator.throw` method to raise an exception at the point
673+
where the generator was paused. See :ref:`generator-methods`.
661674

662675
.. index:: single: generator expression
663676

Doc/library/dialog.rst

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,31 @@ The :mod:`!tkinter.simpledialog` module contains convenience classes and
1515
functions for creating simple modal dialogs to get a value from the user.
1616

1717

18-
.. function:: askfloat(title, prompt, **kw)
19-
askinteger(title, prompt, **kw)
20-
askstring(title, prompt, **kw)
18+
.. function:: askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None)
19+
askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None)
20+
askstring(title, prompt, *, initialvalue=None, show=None, parent=None)
2121
22-
The above three functions provide dialogs that prompt the user to enter a value
23-
of the desired type.
22+
Prompt the user to enter a value of the desired type and return it, or
23+
``None`` if the dialog is cancelled.
24+
25+
*title* is the dialog title and *prompt* the message shown above the entry.
26+
*initialvalue* is the value initially placed in the entry.
27+
*parent* is the window over which the dialog is shown.
28+
:func:`askinteger` and :func:`askfloat` also accept *minvalue* and
29+
*maxvalue*, which bound the accepted value.
30+
:func:`askstring` also accepts *show*, a character used to mask the entered
31+
text, for example ``'*'`` to hide a password.
2432

2533
.. class:: Dialog(parent, title=None)
2634

2735
The base class for custom dialogs.
36+
Instantiating it shows the dialog modally and returns once the user closes
37+
it; the entered value is then available in the :attr:`!result` attribute.
38+
39+
.. attribute:: result
40+
41+
The value produced by :meth:`apply`, or ``None`` if the dialog was
42+
cancelled.
2843

2944
.. method:: body(master)
3045

@@ -46,7 +61,8 @@ functions for creating simple modal dialogs to get a value from the user.
4661

4762
.. method:: apply()
4863

49-
Process the data entered by the user.
64+
Process the data entered by the user, for example by storing it in the
65+
:attr:`!result` attribute.
5066
Called after :meth:`validate` succeeds and just before the dialog is
5167
destroyed.
5268
The default implementation does nothing; override it to act on or store

0 commit comments

Comments
 (0)