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

Appearance settings

Commit 4443237

Browse filesBrowse files
authored
Merge branch 'main' into queue-shutdown
2 parents 0de7836 + 70185de commit 4443237
Copy full SHA for 4443237

File tree

Expand file treeCollapse file tree

175 files changed

+6619
-1282
lines changed
Filter options

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner
Expand file treeCollapse file tree

175 files changed

+6619
-1282
lines changed

‎.github/workflows/build.yml

Copy file name to clipboardExpand all lines: .github/workflows/build.yml
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ jobs:
111111
run: make smelly
112112
- name: Check limited ABI symbols
113113
run: make check-limited-abi
114+
- name: Check for unsupported C global variables
115+
if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
116+
run: make check-c-globals
114117

115118
build_win32:
116119
name: 'Windows (x86)'

‎Doc/c-api/gcsupport.rst

Copy file name to clipboardExpand all lines: Doc/c-api/gcsupport.rst
+33Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,36 @@ garbage collection runs.
228228
Returns the current state, 0 for disabled and 1 for enabled.
229229
230230
.. versionadded:: 3.10
231+
232+
233+
Querying Garbage Collector State
234+
--------------------------------
235+
236+
The C-API provides the following interface for querying information about
237+
the garbage collector.
238+
239+
.. c:function:: void PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void *arg)
240+
241+
Run supplied *callback* on all live GC-capable objects. *arg* is passed through to
242+
all invocations of *callback*.
243+
244+
.. warning::
245+
If new objects are (de)allocated by the callback it is undefined if they
246+
will be visited.
247+
248+
Garbage collection is disabled during operation. Explicitly running a collection
249+
in the callback may lead to undefined behaviour e.g. visiting the same objects
250+
multiple times or not at all.
251+
252+
.. versionadded:: 3.12
253+
254+
.. c:type:: int (*gcvisitobjects_t)(PyObject *object, void *arg)
255+
256+
Type of the visitor function to be passed to :c:func:`PyUnstable_GC_VisitObjects`.
257+
*arg* is the same as the *arg* passed to ``PyUnstable_GC_VisitObjects``.
258+
Return ``0`` to continue iteration, return ``1`` to stop iteration. Other return
259+
values are reserved for now so behavior on returning anything else is undefined.
260+
261+
.. versionadded:: 3.12
262+
263+

‎Doc/c-api/init.rst

Copy file name to clipboardExpand all lines: Doc/c-api/init.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ Process-wide parameters
513513
program name is ``'/usr/local/bin/python'``, the prefix is ``'/usr/local'``. The
514514
returned string points into static storage; the caller should not modify its
515515
value. This corresponds to the :makevar:`prefix` variable in the top-level
516-
:file:`Makefile` and the ``--prefix`` argument to the :program:`configure`
516+
:file:`Makefile` and the :option:`--prefix` argument to the :program:`configure`
517517
script at build time. The value is available to Python code as ``sys.prefix``.
518518
It is only useful on Unix. See also the next function.
519519

‎Doc/c-api/intro.rst

Copy file name to clipboardExpand all lines: Doc/c-api/intro.rst
+5-5Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ used by extension writers. Structure member names do not have a reserved prefix.
7878

7979
The header files are typically installed with Python. On Unix, these are
8080
located in the directories :file:`{prefix}/include/pythonversion/` and
81-
:file:`{exec_prefix}/include/pythonversion/`, where :envvar:`prefix` and
82-
:envvar:`exec_prefix` are defined by the corresponding parameters to Python's
81+
:file:`{exec_prefix}/include/pythonversion/`, where :option:`prefix <--prefix>` and
82+
:option:`exec_prefix <--exec-prefix>` are defined by the corresponding parameters to Python's
8383
:program:`configure` script and *version* is
8484
``'%d.%d' % sys.version_info[:2]``. On Windows, the headers are installed
85-
in :file:`{prefix}/include`, where :envvar:`prefix` is the installation
85+
in :file:`{prefix}/include`, where ``prefix`` is the installation
8686
directory specified to the installer.
8787

8888
To include the headers, place both directories (if different) on your compiler's
8989
search path for includes. Do *not* place the parent directories on the search
9090
path and then use ``#include <pythonX.Y/Python.h>``; this will break on
9191
multi-platform builds since the platform independent headers under
92-
:envvar:`prefix` include the platform specific headers from
93-
:envvar:`exec_prefix`.
92+
:option:`prefix <--prefix>` include the platform specific headers from
93+
:option:`exec_prefix <--exec-prefix>`.
9494

9595
C++ users should note that although the API is defined entirely using C, the
9696
header files properly declare the entry points to be ``extern "C"``. As a result,

‎Doc/library/__main__.rst

Copy file name to clipboardExpand all lines: Doc/library/__main__.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ one mentioned below are preferred.
259259

260260
See :mod:`venv` for an example of a package with a minimal ``__main__.py``
261261
in the standard library. It doesn't contain a ``if __name__ == '__main__'``
262-
block. You can invoke it with ``python3 -m venv [directory]``.
262+
block. You can invoke it with ``python -m venv [directory]``.
263263

264264
See :mod:`runpy` for more details on the :option:`-m` flag to the
265265
interpreter executable.

‎Doc/library/asyncio-task.rst

Copy file name to clipboardExpand all lines: Doc/library/asyncio-task.rst
-3Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -814,9 +814,6 @@ Waiting Primitives
814814
Raises :exc:`TimeoutError` if the timeout occurs before
815815
all Futures are done.
816816

817-
.. versionchanged:: 3.10
818-
Removed the *loop* parameter.
819-
820817
Example::
821818

822819
for coro in as_completed(aws):

‎Doc/library/base64.rst

Copy file name to clipboardExpand all lines: Doc/library/base64.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ The modern interface provides:
5858
This allows an application to e.g. generate URL or filesystem safe Base64
5959
strings. The default is ``None``, for which the standard Base64 alphabet is used.
6060

61-
May assert or raise a a :exc:`ValueError` if the length of *altchars* is not 2. Raises a
61+
May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2. Raises a
6262
:exc:`TypeError` if *altchars* is not a :term:`bytes-like object`.
6363

6464

‎Doc/library/concurrent.futures.rst

Copy file name to clipboardExpand all lines: Doc/library/concurrent.futures.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ ThreadPoolExecutor Example
202202
'http://www.cnn.com/',
203203
'http://europe.wsj.com/',
204204
'http://www.bbc.co.uk/',
205-
'http://some-made-up-domain.com/']
205+
'http://nonexistant-subdomain.python.org/']
206206

207207
# Retrieve a single page and report the URL and contents
208208
def load_url(url, timeout):

‎Doc/library/dataclasses.rst

Copy file name to clipboardExpand all lines: Doc/library/dataclasses.rst
+5-1Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ Module contents
389389
:func:`astuple` raises :exc:`TypeError` if ``obj`` is not a dataclass
390390
instance.
391391

392-
.. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False)
392+
.. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False, module=None)
393393

394394
Creates a new dataclass with name ``cls_name``, fields as defined
395395
in ``fields``, base classes as given in ``bases``, and initialized
@@ -401,6 +401,10 @@ Module contents
401401
``match_args``, ``kw_only``, ``slots``, and ``weakref_slot`` have
402402
the same meaning as they do in :func:`dataclass`.
403403

404+
If ``module`` is defined, the ``__module__`` attribute
405+
of the dataclass is set to that value.
406+
By default, it is set to the module name of the caller.
407+
404408
This function is not strictly required, because any Python
405409
mechanism for creating a new class with ``__annotations__`` can
406410
then apply the :func:`dataclass` function to convert that class to

‎Doc/library/dis.rst

Copy file name to clipboardExpand all lines: Doc/library/dis.rst
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ the following command can be used to display the disassembly of
5757
2 0 RESUME 0
5858
<BLANKLINE>
5959
3 2 LOAD_GLOBAL 1 (NULL + len)
60-
14 LOAD_FAST 0 (alist)
61-
16 CALL 1
62-
26 RETURN_VALUE
60+
12 LOAD_FAST 0 (alist)
61+
14 CALL 1
62+
24 RETURN_VALUE
6363

6464
(The "2" is a line number).
6565

‎Doc/library/importlib.metadata.rst

Copy file name to clipboardExpand all lines: Doc/library/importlib.metadata.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ something into it:
7373

7474
.. code-block:: shell-session
7575
76-
$ python3 -m venv example
76+
$ python -m venv example
7777
$ source example/bin/activate
7878
(example) $ python -m pip install wheel
7979

‎Doc/library/inspect.rst

Copy file name to clipboardExpand all lines: Doc/library/inspect.rst
+26-2Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,8 +1440,8 @@ code execution::
14401440
pass
14411441

14421442

1443-
Current State of Generators and Coroutines
1444-
------------------------------------------
1443+
Current State of Generators, Coroutines, and Asynchronous Generators
1444+
--------------------------------------------------------------------
14451445

14461446
When implementing coroutine schedulers and for other advanced uses of
14471447
generators, it is useful to determine whether a generator is currently
@@ -1476,6 +1476,22 @@ generator to be determined easily.
14761476

14771477
.. versionadded:: 3.5
14781478

1479+
.. function:: getasyncgenstate(agen)
1480+
1481+
Get current state of an asynchronous generator object. The function is
1482+
intended to be used with asynchronous iterator objects created by
1483+
:keyword:`async def` functions which use the :keyword:`yield` statement,
1484+
but will accept any asynchronous generator-like object that has
1485+
``ag_running`` and ``ag_frame`` attributes.
1486+
1487+
Possible states are:
1488+
* AGEN_CREATED: Waiting to start execution.
1489+
* AGEN_RUNNING: Currently being executed by the interpreter.
1490+
* AGEN_SUSPENDED: Currently suspended at a yield expression.
1491+
* AGEN_CLOSED: Execution has completed.
1492+
1493+
.. versionadded:: 3.12
1494+
14791495
The current internal state of the generator can also be queried. This is
14801496
mostly useful for testing purposes, to ensure that internal state is being
14811497
updated as expected:
@@ -1507,6 +1523,14 @@ updated as expected:
15071523

15081524
.. versionadded:: 3.5
15091525

1526+
.. function:: getasyncgenlocals(agen)
1527+
1528+
This function is analogous to :func:`~inspect.getgeneratorlocals`, but
1529+
works for asynchronous generator objects created by :keyword:`async def`
1530+
functions which use the :keyword:`yield` statement.
1531+
1532+
.. versionadded:: 3.12
1533+
15101534

15111535
.. _inspect-module-co-flags:
15121536

‎Doc/library/os.rst

Copy file name to clipboardExpand all lines: Doc/library/os.rst
+63Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2188,6 +2188,69 @@ features:
21882188
Accepts a :term:`path-like object`.
21892189

21902190

2191+
.. function:: listdrives()
2192+
2193+
Return a list containing the names of drives on a Windows system.
2194+
2195+
A drive name typically looks like ``'C:\\'``. Not every drive name
2196+
will be associated with a volume, and some may be inaccessible for
2197+
a variety of reasons, including permissions, network connectivity
2198+
or missing media. This function does not test for access.
2199+
2200+
May raise :exc:`OSError` if an error occurs collecting the drive
2201+
names.
2202+
2203+
.. audit-event:: os.listdrives "" os.listdrives
2204+
2205+
.. availability:: Windows
2206+
2207+
.. versionadded:: 3.12
2208+
2209+
2210+
.. function:: listmounts(volume)
2211+
2212+
Return a list containing the mount points for a volume on a Windows
2213+
system.
2214+
2215+
*volume* must be represented as a GUID path, like those returned by
2216+
:func:`os.listvolumes`. Volumes may be mounted in multiple locations
2217+
or not at all. In the latter case, the list will be empty. Mount
2218+
points that are not associated with a volume will not be returned by
2219+
this function.
2220+
2221+
The mount points return by this function will be absolute paths, and
2222+
may be longer than the drive name.
2223+
2224+
Raises :exc:`OSError` if the volume is not recognized or if an error
2225+
occurs collecting the paths.
2226+
2227+
.. audit-event:: os.listmounts volume os.listmounts
2228+
2229+
.. availability:: Windows
2230+
2231+
.. versionadded:: 3.12
2232+
2233+
2234+
.. function:: listvolumes()
2235+
2236+
Return a list containing the volumes in the system.
2237+
2238+
Volumes are typically represented as a GUID path that looks like
2239+
``\\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\``. Files can
2240+
usually be accessed through a GUID path, permissions allowing.
2241+
However, users are generally not familiar with them, and so the
2242+
recommended use of this function is to retrieve mount points
2243+
using :func:`os.listmounts`.
2244+
2245+
May raise :exc:`OSError` if an error occurs collecting the volumes.
2246+
2247+
.. audit-event:: os.listvolumes "" os.listvolumes
2248+
2249+
.. availability:: Windows
2250+
2251+
.. versionadded:: 3.12
2252+
2253+
21912254
.. function:: lstat(path, *, dir_fd=None)
21922255

21932256
Perform the equivalent of an :c:func:`lstat` system call on the given path.

‎Doc/library/pdb.rst

Copy file name to clipboardExpand all lines: Doc/library/pdb.rst
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ of the debugger is::
5858
:file:`pdb.py` can also be invoked as a script to debug other scripts. For
5959
example::
6060

61-
python3 -m pdb myscript.py
61+
python -m pdb myscript.py
6262

6363
When invoked as a script, pdb will automatically enter post-mortem debugging if
6464
the program being debugged exits abnormally. After post-mortem debugging (or
@@ -72,7 +72,7 @@ useful than quitting the debugger upon program's exit.
7272

7373
.. versionadded:: 3.7
7474
:file:`pdb.py` now accepts a ``-m`` option that execute modules similar to the way
75-
``python3 -m`` does. As with a script, the debugger will pause execution just
75+
``python -m`` does. As with a script, the debugger will pause execution just
7676
before the first line of the module.
7777

7878

‎Doc/library/subprocess.rst

Copy file name to clipboardExpand all lines: Doc/library/subprocess.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1622,7 +1622,7 @@ that.
16221622
It is safe to set these to false on any Python version. They will have no
16231623
effect on older versions when unsupported. Do not assume the attributes are
16241624
available to read. Despite their names, a true value does not indicate that the
1625-
corresponding function will be used, only that that it may be.
1625+
corresponding function will be used, only that it may be.
16261626

16271627
Please file issues any time you have to use these private knobs with a way to
16281628
reproduce the issue you were seeing. Link to that issue from a comment in your

‎Doc/library/sys.rst

Copy file name to clipboardExpand all lines: Doc/library/sys.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1323,7 +1323,7 @@ always available.
13231323

13241324
A string giving the site-specific directory prefix where the platform
13251325
independent Python files are installed; on Unix, the default is
1326-
``'/usr/local'``. This can be set at build time with the ``--prefix``
1326+
:file:`/usr/local`. This can be set at build time with the :option:`--prefix`
13271327
argument to the :program:`configure` script. See
13281328
:ref:`installation_paths` for derived paths.
13291329

‎Doc/library/threading.rst

Copy file name to clipboardExpand all lines: Doc/library/threading.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ The instance's values will be different for separate threads.
272272
A class that represents thread-local data.
273273

274274
For more details and extensive examples, see the documentation string of the
275-
:mod:`_threading_local` module.
275+
:mod:`_threading_local` module: :source:`Lib/_threading_local.py`.
276276

277277

278278
.. _thread-objects:

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.